初步尝试从AWS下载SRA原始数据
希望所有学员都可以站在生信技能树的舞台上发光发热!
追随生信技能树的脚步,学习生信已经有半年多了。看了哔哩哔哩上的视频,也跑了健明老师的代码。以为自己起码入门了,但是真正分析感兴趣的数据集时才发现还差得远。
从GEO下载测序原始数据,一般会选择用prefetch下载SRA文件然后用fastq-dump转为fastq文件,或者直接去ENA网站(https://www.ebi.ac.uk/ena/browser/home)直接下载fastq文件,或者使用SRA Explorer(https://sra-explorer.info/#)给的脚本去下载。大部分的数据下载都可以通过上面的方法解决。
最近想下载单细胞scATAC-seq数据如SRR11448442学习它的一般分析流程,发现作者上传ENA的数据只有fastq1和fastq2,而这个分析需要的fastq文件要三个或四个,所以这个方式下载的文件不全。
然后,我又去GEO看了看,测试发现下载的SRA是可以转为4 个fastq文件。
prefetch SRR11448442 -O `pwd` && echo "** SRR11448442.sra done **"
time fastq-dump --gzip --split-files -A SRR11448442 SRR11448442.sra && echo "** SRR11448442.sra to fastq done **"
## 得到下面四个文件
## [3.9G] SRR11448442_1.fastq.gz
## [2.3G] SRR11448442_2.fastq.gz
## [3.9G] SRR11448442_3.fastq.gz
## [1.2G] SRR11448442_4.fastq.gz
同时发现,作者上传的原始数据就是四个fastq文件,就想能不能直接下载这四个文件,但是作者并没有给出http/https的链接。
说实话,拿到这样的文件路径是有点懵的,网上直接谷歌并没有搜到相关的具体操作的资料。通过查阅NCBI的数据下载方法,找到一个解决办法,可以通过AWS下载,经过几番折腾,终于成功下载数据到本地,在这里特别感谢NCBI的工作人员Inna的帮助,第二天就给我回了邮件。
后面我也碰到了作者只上传了bam文件且sra只能转为两个fastq的情况,也是通过这种方式下载到bam数据,然后用10 x genomics的bamtofastq转为fastq文件,貌似10x genomics也建议上传bam文件(https://kb.10xgenomics.com/hc/en-us/articles/360024716391-What-format-of-10x-Genomics-data-should-I-submit-to-NCBI-GEO-SRA-)。
特别感谢生信技能树和Jimmy大神的日常知识分享和帮助,所以也将这个分享给大家,一起学习,减少走坑,下面是具体的操作方法。
1. 注册亚马逊AWS的账号
网址:https://aws.amazon.com/cn/cli/
按照要求一步步填写信息来注册,需要信用卡,因为我没有信用卡,这里感谢我同学路姐的帮忙。
注册完了记得激活。
新用户可以有12个月的AWS免费套餐,具体怎么免费,大家可以通过这个网址https://aws.amazon.com/cn/premiumsupport/knowledge-center/what-is-free-tier/去了解。
设置邮箱免费套餐使用量提醒。具体费用,查看“账单”就可以。
2. 访问S3
https://link.zhihu.com/?target=https%3A//s3.console.aws.amazon.com/s3/home%3Fregion%3Dap-northeast-2
3. 安全凭证
4. 添加用户
5. 下载客户端
Windows:https://docs.amazonaws.cn/cli/latest/userguide/install-cliv2-windows.html
Mac:https://docs.amazonaws.cn/cli/latest/userguide/install-cliv2-mac.html
6. 在终端进行配置
aws configure
## AWS Access Key ID [None]: 填写下载的csv文件的访问密钥ID
## ID AWS Secret Access Key [None]: 填写下载的csv文件的私有访问密钥
## Default region name [None]: 这里填写第2步中访问S3的网页后缀,例如ap-northeast-2
## Default output format [None]: json
## 查看自己云空间里面的文件
aws as ls
7. 创建储存桶
1) 选择访问S3
2) 创建储存桶
AWS的区域要选择美国东部(弗吉尼亚北部)us-east-1,最开始没有注意这一点,导致数据无法传输到我的储存桶,后来发现NCBI有说明这一点,详见下图。
8. 云数据传递
1)选择要传递的数据
要登录NCBI账户,用自己的邮箱注册即可。
https://www.ncbi.nlm.nih.gov/Traces/study/?acc=PRJNA616263&o=acc_s%3Aa
2)输入自己的储存桶
3)添加S3存储桶策略
回到前面的AWS网站建的储存桶。
4)添加刚刚修改的储存桶
5)选择源文件类型
NCBI会让你确认是否传输这个数据,如果一旦确认了,是不可以中间终止的。
6)传输文件
然后,你会收到NCBI的邮件,告诉你收到你的请求,一旦传输完成,会发邮件告诉你。
9. 下载数据到本地
## 在终端进行
### 查看储存桶中的数据
aws s3 ls s3://dat08
### 下载数据到本地,速度有1M/s
aws s3 sync s3://dat08/ /Users/data/
数据下载完了之后,可以将AWS上的储存桶清空和删除,节约空间。
建议不要反复刷新储存桶,会使用流量,避免收费。
尽量不要选择这种方法去下载数据,可能会收费,优先考虑常用方法下载数据。
10. 参考资料
https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html
https://www.ncbi.nlm.nih.gov/sra/docs/sra-aws-download/
https://www.ncbi.nlm.nih.gov/sra/docs/data-delivery/
https://blog.csdn.net/qq_20291997/article/details/109849020
https://zhuanlan.zhihu.com/p/232043608