• bioperl 自动化下载genbank 中的序列


    当我们想要从genbank 中下载序列的时候,总需要点击右上角的download 按钮,选择对应的格式,然后通过浏览器进行下载,这样反复的点击很费时间了

    其实可以通过bioperl 自动化的完成下载;

    代码如下:

    #!/usr/bin/env perl
    use Bio::SeqIO;
    use Bio::DB::GenBank;
    
    
    my ($acc, $out_dir) = @ARGV;
    
    die "Usage:perl $0 <acc_number> <out_dir>
    " if scalar @ARGV != 2;
    
    
    system qq{mkdir -p $out_dir} if not -d $out_dir;
    
    my $seq_obj = retriev_seq($acc);
    
    download_seq($seq_obj, 'fasta',   qq{>$out_dir/sequence.fasta});
    download_seq($seq_obj, 'genbank', qq{>$out_dir/sequence.gb});
    
    
    sub retriev_seq
    {
        my $acc = shift;
        my $db_obj  = Bio::DB::GenBank->new;
        my $seq_obj = $db_obj->get_Seq_by_acc($acc);
    
        return $seq_obj;
    }
    
    sub download_seq
    {
        my $seq_obj = shift;
        my $fmt     = shift;
        my $out     = shift;
    
        my $seqio_obj = Bio::SeqIO->new(-file => $out, 
                                      -format => $fmt );
    
        $seqio_obj->write_seq($seq_obj);
    }

     这个脚本接受两个参数,第一个参数为 序列对应的编号,第二个参数为输出的目录

    以 https://www.ncbi.nlm.nih.gov/nuccore/NC_024541.1 为例:

    通过浏览器下载是这个样子的:

    点击Send 按钮,在弹出的对话框中选择下载的序列的区间,对应的格式

     通过脚本下载是这个样子的,首先得到序列对应的编号,如下图所示:

    然后运行下面的命令:

    perl download_reference.pl NC_024541 ./

     这样通过序列对应的编号就可以自动化的下载对应的序列了

    其实,bioperl 当中还提供了其他的检索序列的方式,比如按照 gi号,功能非常强大。

    参考资料:

    http://bioperl.org/howtos/Beginners_HOWTO.html

  • 相关阅读:
    设计模式--策略模式
    安装PLSQLDeveloper
    oracle11g数据库安装
    tcp和udp的头部信息
    多线程之间实现通讯
    并发编程之多线程线程安全
    多线程快速入门
    帝国cms定时自动执行刷新任务插件DoTimeRepage
    华为S5700交换机初始化和配置SSH和TELNET远程登录方法
    织梦php7数据库备份无结果BUG修复方法
  • 原文地址:https://www.cnblogs.com/xudongliang/p/7001289.html
Copyright © 2020-2023  润新知