perl生物信息高手来围观了啊。
时间:2011-03-22
来源:互联网
use strict;
use warnings;
use Bio::SeqIO;
open(FH,">>reverse_exact_out.txt");
my $seqi = Bio::SeqIO->new(-file => 'exact_out.txt', -format=>'fasta');
while ( my $seq = $seqi->next_seq) {
my $id = $seq->id;
my $sseq=$seq->revcom ;
print "$id\n";
print FH "$sseq\n"; # This is what you need
}
close FH;
高手帮我看下这个提取反向互补序列的程序问题出在哪里了啊???
文件附件里,将它反向输出,格式不变!请各位指点迷津!

t.rar (12.13 KB)
作者: aids260 发布时间: 2011-03-22
$seq->revcom是干活的,建立一个新的object。
$sseq是它的引用,而不是序列阿...
再把序列提出来,程序内添加my $out=$sseq->seq;
#!/usr/bin/perl
use strict;
use warnings;
use Bio::SeqIO;
#use IO::String;
open(FH,">>reverse_exact_out.txt");
my $seqi = Bio::SeqIO->new(-file => 'exact_out.txt', -format=>'fasta');
while ( my $seq = $seqi->next_seq) {
my $id = $seq->id;
my $sseq=$seq->revcom;
my $out=$sseq->seq;
print "$id\n";
print FH "$out\n";
}
close FH;
作者: chenhao392 发布时间: 2011-03-22
回复 aids260
以后兄弟问问题时能否将测试数据摘个片断做个附件发上来啊。没人会为了帮人再去找测试的数据的。也给想学perl生物信息处理的人一个方便。
作者: aef25u 发布时间: 2011-03-22
好的,兄弟你说的很对!我记住了啊
作者: aids260 发布时间: 2011-03-22
作者: chenhao392 发布时间: 2011-03-22
楼主,短消息看不见你的附件,另外,post出来这样大家都能看见,说不定对后人也有帮助..
楼主说,
2011-03-22
aids260 2011-03-22 09:00
你好,我输出之后格式都变了! 成了一行了
里边有很多行的
fasta格式,在附件里,麻烦帮我看看!
我回复:
这一行是不是很长啊?
你每隔多少个序列加个换行符,把它切了就是了.....
又及,
我看到附件了,可惜是rar格式的,ubuntu打不开。
想帮帮忙只是以前得到过许多人的帮助,现在有机会,回报CU一下而已,不带这样的,切个序列还要我写..
我吃晚饭去了...
作者: chenhao392 发布时间: 2011-03-22
回复 aids260
001Rev.pl
- #!/usr/bin/perl
- use Bio::SeqIO;
- $in = Bio::SeqIO->new(-format => 'fasta', -file =>'t.fa');
- $out = Bio::SeqIO->new(-format => 'fasta', -file =>'>out.fa');
- while(my $seq = $in->next_seq) {
- my $re_seq=$seq->revcom;
- $out->write_seq($re_seq);
- }
002Rev.pl
- #!/usr/bin/perl
- my ( $format1, $format2, $fin ) = ( $ARGV[0], $ARGV[1], $ARGV[2] )
- || die "[Usage: perl Rev.pl format1 format2 input >output]";
-
- use Bio::SeqIO;
- $in = Bio::SeqIO->new( -format => $format1, -file => $fin );
- $out = Bio::SeqIO->new( -format => $format2 );
- while ( my $seq = $in->next_seq ) {
- my $re_seq = $seq->revcom;
- $out->write_seq($re_seq);
- }
作者: aef25u 发布时间: 2011-03-22
呵呵,不好意思不知道你用的是unbuntu.
作者: aids260 发布时间: 2011-03-22
- #!/usr/bin/perl -w
- use strict;
-
- use Bio::Seq;
- use Bio::SeqIO;
-
- my $seq_obj=Bio::SeqIO->new(
- -file=>'t.fa',
- -format=>"fasta");
-
- my $out_obj=Bio::SeqIO->new(
- -format=>"fasta");
-
- while(my $seq=$seq_obj->next_seq){
-
- my $out=Bio::Seq->new(
- -display_id=>$seq->id,
- -seq=> $seq->revcom->seq
- );
-
- $out_obj->write_seq($out);
- }
作者: masylichu 发布时间: 2011-03-22
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28