perl 利用管道读取压缩文件内容
2016-01-15 16:09
302 查看
perl的文件句柄不仅支持普通文件, 还支持管道,今天需要统计一个fastq文件中的序列数和碱基数,而NGS的fastq文件一般都是gzip压缩的,所以
需要读取压缩文件中的内容,代码如下:
直接利用linux中的管道, 这样可以方便的读取压缩文件中的内容
需要读取压缩文件中的内容,代码如下:
my ($fastq) = @ARGV: my ($reads, $bases) = cal_sequence_info($fastq); print qq{$reads\t$bases\n}; sub cal_sequence_info { my $fastq = shift; my $file_handle = $fastq =~ /gz$/ ? qq{$fastq} : qq{gzip -dc $fastq |}; open FASTQ, $file_handle or die "Can't open $fastq\n"; my ($reads, $bases); while (my $readid = <FASTQ>) { my $quality = <FASTQ>; my $comment = <FASTQ>; my $sequence = <FASTQ>; chomp($sequence); $reads++; $bases += length $sequence; } close FASTQ; return ($reads, $bases); }
直接利用linux中的管道, 这样可以方便的读取压缩文件中的内容
相关文章推荐
- jQuery迭代器
- StringUtils的简单学习
- js 获取人员年龄(x岁x月x天)
- 新手必备的常用代码片段整理(一)
- 关于java继承的一道题,你能答对吗?
- UITextField 的左视图 --用户名和密码框的标志
- Java DOM 解析 XML详解
- 慢牛系列四:好玩的React Native
- 机器学习模型的选择
- Codeforces Round #338 (Div.2)
- JBoss 安装与环境变量配置
- Openstack中数据库Galera/mysql 集群备忘笔记
- HP pavilion安装Ubuntu14.04后,无线不能使用解决方案
- Go 定时器和断续器
- 使用Python和shell脚本打包ipa
- Spark学习之数据读取与保存(4)
- 40 个很有用的 Mac OS X Shell 脚本和终端命令
- Spark学习之数据读取与保存(4)
- Codeforce 题目614AA. Link/Cut Tree(水题,坑精度啊)
- shell中使用php命令