SRA数据下载

0.简介

主要讲如何通过利用aspera快速下载sra数据。

1.数据搜寻

一般大多数还是习惯在NCBI上检索数据,比如我随便搜索一个拟南芥的SRA数据。

SRR627952:


但是一般下载还是在EBI上下,EBI和NCBI SRA号是通用的。EBI下载界面比NCBI人性化很多,(2023年更新:NCBI现在也进化了很多),但重点是EBI可以直接通过Aspera快速下载。


最后还要判断是单端数据还是双端数据,这点很重要。单端是single。

2.获取Aspera下载链接

首先是要获取这个fastq数据在EBI的存储地址,一个perl脚本搞定:

perl get_sra_address.pl

-i SRA号

-l SRA号 list

-s 单端数据要加 -s

-a 下载数据目标地址,默认是当前目录(.)

两种使用方法

1.第一种你只下一个数据,只有一个SRA号,以单端数据SRR627952为例:

perl get_sra_address.pl -i SRR627952 -s

2.你有很多SRA号,这样一个一个输入就不方便,那么你可以将所有SRA号写入一个list文件

perl get_sra_address.pl -l list.txt

注意这个list只能都是单端数据或者都是双端数据,都是单端加 -s,双端不用加

具体脚本如下,如果Aspera的安装地址不是默认,那么要自行修改代码的$key部分

3.下载

得到下载链接后直接下载就可以了

ascp -QT -l 200m -P 33001 -i /ceph/houyinguang/.aspera/connect/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:/vol1/fastq/SRR627/SRR627952/SRR627952.fastq.gz .

#get_sra_address.pl

#get_sra_address.pl
#!/usr/bin/perl

use strict;
use warnings;
use Getopt::Long;
my ($in,$list,$help);
my $address=".";
our $single;
GetOptions(
        "in=s" =>\$in,
	"list=s" =>\$list,
	'single!' => \$single,
	'address=s' =>\$address,
	"help|h" =>\&USAGE,
)or USAGE();


sub USAGE{
my $usage=<<"USAGE";
USAGE:
$0
输入sra号获得ascp下载地址


-i 单独输入一个sra号


-l 输入sra号列表


-a 数据下载地址 (.)


-s single 输入的是单端测序数据


USAGE
print $usage;
exit;
}


if($in){
  getaddress($in); 
}
if($list){
	open LI,"$list"or die "Cannot find the specified list file"; 
	while(my $line =<LI>){
		chomp($line);
		getaddress($line)
		
	}
}




sub getaddress{
my $id=$_[0];
my $key='~/.aspera/connect/etc/asperaweb_id_dsa.openssh';
my $len=length($id);
my $six=substr($id,0,6);
my $sub=$len-9;
my $n=substr($id,-$sub,$sub);
my $m=3-$sub;
my $a='0' x $m;


if($single){
	if($len == 9){
		print "ascp -QT -l 200m -P 33001 -k1 -i $key era-fasp\@fasp.sra.ebi.ac.uk:/vol1/fastq/$six/$id/$id.fastq.gz $address\n";
	}elsif($len >9){
		print "ascp -QT -l 200m -P 33001 -k1 -i $key era-fasp\@fasp.sra.ebi.ac.uk:/vol1/fastq/$six/$a$n/$id/$id.fastq.gz $address\n";
	}
}else{
	if($len == 9){
		print "ascp -QT -l 200m -P 33001 -k1 -i $key era-fasp\@fasp.sra.ebi.ac.uk:/vol1/fastq/$six/$id/$id\_1.fastq.gz $address\n";
		print "ascp -QT -l 200m -P 33001 -k1 -i $key era-fasp\@fasp.sra.ebi.ac.uk:/vol1/fastq/$six/$id/$id\_2.fastq.gz $address\n";
	}elsif($len >9){
		print "ascp -QT -l 200m -P 33001 -k1 -i $key era-fasp\@fasp.sra.ebi.ac.uk:/vol1/fastq/$six/$a$n/$id/$id\_1.fastq.gz $address\n";
		print "ascp -QT -l 200m -P 33001 -k1 -i $key era-fasp\@fasp.sra.ebi.ac.uk:/vol1/fastq/$six/$a$n/$id/$id\_2.fastq.gz $address\n";
	}
}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值