2021-2-3-利用anaconda+prefetch+aspera从NCBI的SRA数据库中下载原始测序数据
记录下下载过程,为自己和后人避坑。
1.Conda连接不上镜像源问题
首先是anaconda安装软件或创建环境时遇到的问题。即使换完清华源和其他镜像源以后依旧报错。
CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsi
尝试了很多方法:换源,删除.condarc中的default等,都不行。最后尝试了镜像源中,将https改为为http! 成功了。奇怪的是另一台服务器我用的conda完全一样的配置,用https也可以。这种事情很神奇,也有可能就是网络的问题。
具体可参考:
Anaconda建立新的环境,出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url ...... 解决过程
Anaconda3-更换为清华源后依旧报错CondaHTTPError: HTTP 000 CONNECTION FAILED
2. aspera不能再独立使用
aspera下载速度很快,网上很多教程统统用不了,原因就是ncbi的ftp中的sra/sra-instant已经移除了。所以,当你看到类似的教程: ascp -v -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh -k 1 -T -l 200m anonftp@ftp.ncbi.nlm.nih.gov:/sra/sra-instant/reads/ByRun/sra/SRR/SRR949/SRR949627/SRR949627.sra ~/data/,请忽略它。
我尝试了其他几个ftp站点,也找不到sra-instant地址。
3.使用prefetch搭配aspera
退而求其次的方法,就是用prefetch。但需要注意prefetch和aspera的版本,最新版本的prefetch用不了aspera。
我这里安装sratools 2.9.6 ,可以源码下载,解压即可(已编译)。也可以用conda指定版本:
conda install sra-tools=2.9.6 -y
aspera的安装,同样可源码,下载地址:IBM Aspera Connect
我这里选择3.10.1.0,解压sh运行即可,默认安装在家目录以隐藏目录存在:


也可用anaconda安装:
conda install -c hcc aspera-cli
#可指定版本
conda install -c hcc aspera-cli=3.7.7
4. prefetch下载方法
安装好以后,直接用prefetch下载单个sra文件,或者下载文件列表。最好指定下载目录,prefetch默认下载在home/user/ncbi/public/sra中(会自动新建),home目录空间太小,不建议。
#单个sra
prefetch SRR8956151 -O ./
# 批量
prefetch --option-file SRR_Acc_List.txt -O ./
SRR_Acc_List.txt文件的寻找也比较麻烦:

prefetch会自动调用aspera的ascp。

下载的速度还是很快的,一个文件一分钟左右:

虽然prefetch会自动调用ascp,但由于网速等原因,有时也会出现timeout,特别是大文件下载,出现类似process failed while waiting process - ascp failed with 1的错误,这时最好是指定ascp:
prefetch -t ascp -a "/home/user/.aspera/connect/bin/ascp|/home/user/.aspera/connect/etc/asperaweb_id_dsa.openssh" --option-file SRR_Acc_List.txt -O ./
https://www.jianshu.com/p/d1abdced8bcd
https://www.jianshu.com/p/ee1119a4e79d
https://www.jianshu.com/p/709924001d5d
https://www.jianshu.com/p/f16ed4c79739
2021-2-3-利用anaconda+prefetch+aspera从NCBI的SRA数据库中下载原始测序数据的更多相关文章
- 利用session_set_save_handler()函数将session保存到MySQL数据库中
PHP保存session默认的是采用的文件的方式来保存的,这仅仅在文件的空间开销很小的windows上是可以采用的,但是如果我们采用uinx或者是liux上的文件系统的时候,这样的文件系统的文件空间开 ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- 利用JDBC连接Eclipse和mySQL5.1.26数据库
初学JDBC,看了看书,自己动手的时候还是有很多地方有问题,最终终于解决了实现了数据库的连接.现将整个步骤描述如下: 环境:mySQL5.1.26(win 32bit), Eclipse JavaEE ...
- 在C#应用程序中,利用表值参数过滤重复,批量向数据库导入数据,并且返回重复数据
在很多情况下,应用程序都需要实现excel数据导入功能,数据如果只有几十条,或上百条,甚至上千条,速度还好. 但是不仅如此,如果客户提供给你的excel本身存在着重复数据,或是excel中的某些数据已 ...
- 在oracle中存入date类型数据遇到的问题及其解决方法(利用java.sql.date和Timestamp)
转自:https://blog.csdn.net/ShadowerWArden/article/details/80652377 1. 使用JDBC操作Oracle数据库时,使用java.sql.Da ...
- 利用Anaconda安装python后,如何安装opencv-python
利用Anaconda安装python后,想要安装opencv-python,但发现利用opencv-python的官方教程,没法实现opencv的安装 还好看到了另外一篇博客的方法,试一下,果然凑效 ...
- 【python数据分析】利用Anaconda在window上搭建数据分析环境
由于在进行数据分析过程中,需要安装一些第三方库,导致python总会报一些错误,现将通过利用Anaconda搭建数据分析环境,已测可用. 1.到官网上下载python:https://www.pyth ...
- 利用Anaconda软件安装opencv模块
先说明我安装opencv环境的原因:因为我Anaconda中创建了tensorflow和pytorch虚拟环境,想在每个虚拟环境下都安装opencv模块,这样在后期进行代码调试的时候更加便捷,以下是我 ...
- 《利用python进行数据分析》读书笔记--第十一章 金融和经济数据应用(一)
自2005年开始,python在金融行业中的应用越来越多,这主要得益于越来越成熟的函数库(NumPy和pandas)以及大量经验丰富的程序员.许多机构发现python不仅非常适合成为交互式的分析环境, ...
随机推荐
- Java:锁笔记
Java:锁笔记 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 1. Java 锁之公平锁和非公平锁 公平锁 是指多个线程按照申请锁的顺序来获取锁,类似于排队买 ...
- UltraSoft - Alpha - 测试报告
遇到的bug bug:在vue.config.js里配置proxy,并修改请求的url后仍无法连接到后端. 解决: url最后忘了'/',导致和后端不匹配,会有404.500等错误. 后端服务未打开或 ...
- 字符串与模式匹配算法(三):KMP算法
一.KMP算法介绍 KMP算法与前面的MP算法一脉相承,都是充分利用先前匹配的过程中已经得到的结果来避免频繁回溯.回顾一下MP算法,如下图的模式串偏移,当前模式字符串P的左端的p0与目标字符串T中tj ...
- 跟着老猫来搞GO,集跬步而致千里
上次博客中,老猫已经和大家同步了如何搭建相关的GO语言的开发环境,相信在车上的小伙伴应该都已经搞定了环境了.那么本篇开始,我们就来熟悉GO语言的基础语法.本篇搞定之后,其实期待大家可以和老猫一样,能够 ...
- loto仪器_如何模拟输出凸轮轴和曲轴波形_用任意波形信号源SIG852?
loto仪器_如何模拟输出凸轮轴和曲轴波形_用任意波形信号源SIG852? 在汽车传感器的波形检测应用中,有时候需要模拟各种汽车传感器的输出信号,用来驱动和监测对应的执行机构或者电路是否正常,这其中, ...
- 黑客是如何利用DNS域传送漏洞进行渗透与攻击的?
一.DNS域传送 DNS :Domain Name System 一个保存IP地址和域名相互映射关系的分布式数据库,重要的互联网基础设施,默认使用的TCP/UDP端口号是53 常见DNS记录类型: 1 ...
- 【java+selenium3】隐式等待+显式等待 (七)
一.隐式等待 -- implicitlyWait 调用方式:driver.manage().timeouts().implicitlyWait(long time, TimeUnit unit); / ...
- requestAnimationFrame 执行机制探索
1.什么是 requestAnimationFrame window.requestAnimationFrame() 告诉浏览器--你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更 ...
- dart系列之:dart语言中的特殊操作符
dart系列之:dart语言中的特殊操作符 目录 简介 普通操作符 类型测试操作符 条件运算符 级联符号 类中的自定义操作符 总结 简介 有运算就有操作符,dart中除了普通的算术运算的操作符之外,还 ...
- 12组-Alpha冲刺-1/6
一.基本情况 队名:字节不跳动 组长博客:https://www.cnblogs.com/147258369k/p/15526363.html 小组人数:10人 二.冲刺概况汇报 侯钦凯 过去两天完成 ...