5 老师好,我才开始接触生信。我先在NCBI下载了大豆的G基因的fasta文件。然后和水稻基因序列进行blastn对比得到了result2.txt 的文件结果。再通过Perl脚本运行得到evalue值小于e-5的基因ID名称文件。前面都能运行。现在我需要用Bioperl利用得到的符合条件的基因ID名称文件查找各ID对应的序列,但是网上的我试了很久,一直不行,老师能帮我看看嘛?

attachments-2018-10-7H2qnwBB5bcab04e145a4.jpg

attachments-2018-10-qQ4rhOUH5bcab0842cf11.jpg

请先 登录 后评论

1 个回答

omicsgene - 生物信息
擅长:重测序,遗传进化,转录组,GWAS

你写的脚本不对:

这里有个根据ID,提取序列的脚本,你可以参考一下:

#script www.omicsclass.com
die "perl $0 <id><fa><OUT>" unless(@ARGV==3);
use Bio::SeqIO;
use Bio::Seq;
my$in  = Bio::SeqIO->new(-file => "$ARGV[1]" ,
                               -format => 'Fasta');
my$out = Bio::SeqIO->new(-file => ">$ARGV[2]" ,
                               -format => 'Fasta');
my%keep=();
open IN ,"$ARGV[0]" or die "$!";
while(<IN>){
        chomp;
        next if /^#/;
        my@tmp=split(/\s+/);
$keep{"$tmp[1].1"}=1; #注意这里加了.1 注意转录本ID与基因ID对应
}
close(IN);
while ( my $seq = $in->next_seq() ) {
            my($id,$sequence,$desc)=($seq->id,$seq->seq,$seq->desc);
            if( exists $keep{$id}){
            $out->write_seq($seq); 
    }     
}
$in->close();
$out->close();


不会写脚本,可以用下工具:https://www.omicsclass.com/article/64

请先 登录 后评论
  • 1 关注
  • 0 收藏,3753 浏览
  • 憧憬未来 提出于 2018-10-20 12:35

相似问题