php 统计fasta 序列长度和GC含量
2015-12-08 12:24
761 查看
最近php7的消息铺天盖地, 忍不住想尝试下。星期天看了下语法, 写个小脚本练下手;
这个脚本读取fasta 文件, 输出序列的长度和GC含量;
这个脚本读取fasta 文件, 输出序列的长度和GC含量;
<?php $fasta = "test.fasta"; $meta = array(); $meta = parse_fasta($fasta); write_res($meta); function parse_fasta($fasta) { $meta = array(); $file_handle = fopen($fasta, 'r'); $id = ''; $seq = ''; while (!feof($file_handle)) { $line = fgets($file_handle); $line = preg_replace("/\s+$/", "", $line); if (preg_match("/^>/", $line)) { if ($id) { $meta[$id] = $seq; $id = $line; $seq = ''; } else { $id = $line; } } else { $seq .= $line; } } $meta[$id] = $seq; fclose($file_handle); return $meta; } function write_res($meta) { foreach ($meta as $key => $value) { $len = cal_length($value); $gc = cal_gc($value); echo "$key\t$value\t$len\t$gc\n"; } } function cal_length($seq) { return strlen($seq); } function cal_gc($seq) { $gc = array(); preg_match_all("/G|C|g|c/", $seq, $gc); return count($gc[0]) / strlen($seq); } ?>
相关文章推荐
- thinkphp对文件的上传,删除,下载操作
- PHP7正式版测试,性能惊艳!
- C#与PHP接口交互,通过Post方式
- yii2的基础操作
- 帝国CMS模板内,用PHP调用模板标签
- php 错误级别
- PHP 类的private protected public 详解
- thinkphp之性能调试
- 学习php设计模式 php实现命令模式(command)
- 学习php设计模式 php实现合成模式(composite)
- 在Windows上部署NTP Server
- ThinkPHP 自动验证实例
- php7 初体验 - windows下安装和性能测试
- Laravel PHP 开发环境配置
- 如何使用GDB调试PHP程序
- thinkphp中的_initialize方法
- PHP MPDF中文乱码的解决方式
- php+snoopy 数据采集
- php+smarty ,smarty 缓存
- PHP使用MPDF类生成PDF的方法