24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2026级博士研究生招生报考通知(长期有效)
查看: 623  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

硫酸铜oO

新虫 (初入文坛)

[交流] 用perl程序将fq文件的序列行反向输出已有4人参与

本人实属perl小小白一枚
现遇到生信方面的一个问题
需要将fastq文件中含序列的行做反向处理,其他行不动,最后输出
这里有师兄帮我写的代码
但是在Linux下运行总是提示错误
大牛能否帮忙一看,小小白不胜感激!
首次接触木虫,金币为0,攒了金币后会送给帮助我的牛牛们!
大谢~

举个栗子
@HWI-ST833:306:C7AYCACXX:1:1101:1491:2080#0/1
CGCTGAGAATGAGCCCCGTGTGGTTGGTGCGCGGACACGCACTGCCTGCGTAACTAGAGGGAGCTGACGGATGACGCCCCCGCGCCACGCCGCT
+
CCCFFFFFHHHGHJJJJJFHGIJHIJJDGHHIJJIHIJHHGFFEEEEEED?BDDEDDDDDDBDDDDDDDDBBDDDBDDDDDDDDDDDDDDDDDD

这是fq文件的某条数据,需要取出第二行(序列行),反向(TCGCCGCA……AAGAGTCGC),其他行不动,输出酱紫的:
@HWI-ST833:306:C7AYCACXX:1:1101:1491:2080#0/1
TCGCCGCA……AAGAGTCGC
+
CCCFFFFFHHHGHJJJJJFHGIJHIJJDGHHIJJIHIJHHGFFEEEEEED?BDDEDDDDDDBDDDDDDDDBBDDDBDDDDDDDDDDDDDDDDDD


代码如下:
#!/usr/bin/perl
use warnings;
open (FASTQ,'XXX.fastq');
while (<FASTQ> ) {
        my $tmp1=$_;
        chomp($tmp2);
        my $tmp2=<FASTQ>;
        chomp($tmp2);
        my @seq=split//,$tmp2;
        @seq=reverse @seq;
        my $s=join"",@seq;
        my $tmp3=<FASTQ>;
        chomp($tmp3);
        my $tmp4=<FASTQ>;
        chomp($tmp4);
        my @quality=split//,$tmp4;
        @quality=reverse @quality;
        my $q=join"",@quality;
        print "$tmp1\n$s\n$tmp3\n$q\n";
}
close FASTQ;

Linux提示的错误:
Name "main::tmp2" used only once: possible typo at reverse.pl line 6.
readline() on closed filehandle FASTQ at reverse.pl line 4.


感谢牛牛的帮助~~
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

568329311

禁虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
本帖内容被屏蔽

3楼2015-10-03 20:46:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

568329311

禁虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
本帖内容被屏蔽

2楼2015-10-03 20:40:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

土豆-小飞虫

新虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
我想问问,怎么打开FQ格式的文件,7G
4楼2015-10-13 20:04:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

glssg

木虫 (正式写手)

不安于现在而又安于现在
5楼2015-10-14 08:04:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见