perl中如何输出指定ID对应的双端fastq文件

perl中如何输出指定ID对应的双端fastq文件

这篇文章主要介绍“perl中如何输出指定ID对应的双端fastq文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“perl中如何输出指定ID对应的双端fastq文件”文章能帮助大家解决问题。

给一个fastqID列表,输出指定ID对应的双端fastq文件:

perl中如何输出指定ID对应的双端fastq文件

perl get_fq_by_id.pl <id><fq1><fq2><OUT1><OUT2>

给一个fastqID列表,输出指定ID对应的双端fastq文件:

die"perl$0<id><fq1><fq2><OUT1><OUT2>"unless(@ARGV==5);useBio::SeqIO;useBio::Seq;openmy$FQ1,"zcat$ARGV[1]|"ordie"$!";openmy$FQ2,"zcat$ARGV[2]|"ordie"$!";my$fq1=Bio::SeqIO->new(-fh=>$FQ1,-format=>'fastq');my$fq2=Bio::SeqIO->new(-fh=>$FQ2,-format=>'fastq');openmy$GZ1,"|gzip>$ARGV[3]"ordie$!;openmy$GZ2,"|gzip>$ARGV[4]"ordie$!;my$fqo1=Bio::SeqIO->new(-fh=>$GZ1,-format=>'fastq');my$fqo2=Bio::SeqIO->new(-fh=>$GZ2,-format=>'fastq');my%keep=();openIN,"$ARGV[0]"ordie"$!";while(<IN>){chomp;nextif/^#/;my@tmp=split(/\s+/);$keep{$tmp[0]}=1;}close(IN);my$i=0;while(my$obj1=$fq1->next_seq()andmy$obj2=$fq2->next_seq()){my$id1=$obj1->id;my$id2=$obj2->id;#print"$id1,$id2\n";#die;if(exists$keep{$id1}orexists$keep{$id2}){$fqo1->write_seq($obj1);$fqo2->write_seq($obj2);}}$fq1->close();$fq2->close();$GZ1->close();$GZ2->close();

关于“perl中如何输出指定ID对应的双端fastq文件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注恰卡编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

发布于 2022-03-17 21:16:28
收藏
分享
海报
0 条评论
28
上一篇:R语言如何根据ID列表取对应列的数据 下一篇:context标量上下文与列表上下文的方法
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码