从EBI下载ENA数据

接了任务,要从 http://www.ebi.ac.uk/ena/ 下载序列数据,本来直接全部导出 fasta 就好了,可惜网络不好,老是下到一半就挂掉。

于是写了这么个小脚本,用 Perl 的 LWP::Simple 来慢慢下载。

很简单,也可能有 bug。

#!/usr/bin/perl
# by lhtk : lhtk80t7@gmail.com
use strict;
use warnings;

use LWP::Simple;

# http://www.ebi.ac.uk/ena/data/view/FKKI010000001&display=fasta
# 浏览器上打开它,会直接返回文本类型的结果

my $s = $ARGV[0]; # start
my $e; # end 
die "不正确\n" unless (defined $s and $s > 0);

while ($s <= 1581707) {
    $e = $s + 1000; # 一批 1000 个,可以改
    if ($e > 1581707) {
        $e = 1581707;
    }
    my $url;
    if ($s == $e) {
        $url = sprintf "http://www.ebi.ac.uk/ena/data/view/FKKI01%07d&display=fasta", $s;
    } else {
        $url = sprintf "http://www.ebi.ac.uk/ena/data/view/FKKI01%07d-FKKI01%07d&display=fasta", $s, $e;
    }

    #print "$url\n"; # 测试
    #last if $n == 2;

    if (is_success( getprint($url) )) {
        print STDERR "$s - $e\n";
        $s = $e + 1;
    } else {
        sleep 1;
    }

}

然后从外部调用:

./xxx.pl 1 >>xxxxx.fa

存个档,备忘。

转载于:https://my.oschina.net/u/727594/blog/796479

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值