新闻详情

新闻详情

首页 / 资讯中心 / 详情

Aspera与prefetch:SRA/ENA原始测序数据高速下载

发布时间:2026/10/1 19:17:21来源:尧图网络
Aspera与prefetch:SRA/ENA原始测序数据高速下载
做宏基因组或者转录组的人大概都经历过这种时刻文章里给的GSE号找到了样本列表也列出来了兴冲冲点开下载链接然后盯着一个几十GB的fastq文件在浏览器里以几百KB/s的速度爬。一晚上过去进度条走了一半网断了一次从头再来。更离谱的是有时候拿到的根本不是原始reads而是一张整理好的表达矩阵白白浪费半天。这篇就聊透一件事怎么用aspera或prefetch把SRA或ENA数据库里的NGS测序原始数据快速、完整地拉到本地。关键词就四个——aspera、prefetch、SRA、ENA。写给自己复盘也给刚接手数据分析、还没建立自己下载流程的人当个参照。不管你是做转录组、宏基因组、ChIP-seq还是单细胞只要你要下原始reads这套东西都绕不开。下面从元数据梳理开始一路讲到下载完之后的格式转换中间踩过的坑全部摊开说。1. 下载之前先把元数据理清楚SRA、ENA与GEO的三角关系很多人一上手就栽在第一步不知道自己要下的东西存在哪儿也不知道该从哪个入口拿。结果就是反复试错下了一堆没用的中间文件。这一步花十分钟理清能省掉后面几小时的返工。1.1 三个库各自装了什么别找错门GEO、SRA、ENA这三个名字经常混着用但它们装的东西完全不一样。GEO是文章层面的归档一个GSE对应一篇文章的整个实验设计下面是若干个GSM样本。它主要存的是处理后的数据——表达矩阵、甲基化beta值、peak calling结果这类。你想复现文章的分析流程GEO就够你想从原始reads重新比对、重新定量GEO里的东西是不够的。SRA存的是原始reads归档是国际核酸序列数据库协作体系里的测序读段部分。它的组织层级是SRP研究→ SRX实验→ SRR运行一个SRX可能拆成好几个SRR比如同一个文库跑了多个lane每个lane就是一个独立的run。ENA是同一批数据的另一份归档入口最大的价值在于它直接提供fastq.gz文件的下载链接和对应的MD5值。这一点非常关键SRA给你的是压缩过的.sra容器文件你得再跑一遍工具才能还原成fastqENA直接给你fastq省掉一层转换。维度GEOSRAENA主要存什么处理后矩阵、元数据原始reads.sra容器原始readsfastq.gz直链编号层级GSE → GSMSRP → SRX → SRRPRJEB/PRJNA → ERR/SRR下载方式HTTP 直链prefetch / asperaHTTP/HTTPS / aspera是否需要格式转换否是需dump否拿到即为fastq.gz适用场景复现下游分析需要原始reads重跑流程需要原始reads且想省事我自己现在的习惯是能走ENA就走ENA。因为fastq直链加MD5校验这两点直接把流程里最容易出问题的两个环节解决了。只有在ENA没有对应条目、或者我确实需要.sra原始容器做归档时才回到SRA。1.2 从GSE到SRR三步锁定正确的下载号从一篇文章到一串SRR号路径是固定的但每一步都有人会走偏。第一步在GEO页面找到样本表格点进那个SRA Run Selector的入口。不要直接点页面上的Download按钮那个多半给你的是处理后的矩阵。第二步在Run Selector里看清每一列。这里有个坑一个GSM可能对应多个SRR。常见原因是同一个样本分多个lane测序或者做了技术重复。你要根据实验设计判断是把这些SRR合并当成一个样本还是分开处理。Run Selector里可以直接筛选比如只勾选某个GSM对应的行。第三步导出两个文件一个是SRA_Run_List.txt之类的元数据表一个是SRR_Acc_List.txt这样的纯accession列表。后面批量下载全靠这个列表。顺带说一句反过来的路径如果你只有SRR号想知道它属于哪个研究、什么物种、什么建库策略直接去ENA的filereport接口查一遍比在SRA页面上翻要快得多。这个接口后面第4节会详细讲。1.3 动手之前先算体积别把磁盘撑爆这一步经常被跳过但它是失败率最高的环节之一。跑了一晚上最后报错no space left on device非常打击人。给几个经验值方便快速估算双端150bp数据1000万条reads即1000万对压缩后的fastq.gz大约在3 GB 左右两个文件加起来。换算一下1 GB 压缩fastq.gz ≈ 300多万对PE150 reads。如果你拿到的是.sra文件体积通常比对应fastq.gz还要小一些因为它的压缩方式对冗余更友好。但要注意dump的时候解压出来是纯文本fastq体积会膨胀5到10倍所以磁盘要按解压后的量去留。这里最容易出事的是fasterq-dump。它虽然快但会在临时目录里生成中间文件峰值占用可能比最终输出还大。我的习惯是给临时目录单独留一块盘或者至少保证可用空间是预计输出的两倍以上。提示动手前用df -h和目标目录的du -sh各看一眼。别信应该够用这四个字。2. prefetch的适用场景与配置省心优先的默认路线prefetch是SRA Toolkit自带的下载命令几乎所有下载教程都会先教你用它。它确实好用但用久了你会发现它的定位是省心不是快。理解它到底做了什么比记住命令本身重要得多。2.1 prefetch背后到底做了哪几件事当你敲下prefetch SRR123456的时候工具链在背后做了这么一串事先根据accession去查询SRA的元数据索引确认这个run存在、大小多少、属于哪个容器然后按照它内部的一套分块规则把对应的.sra文件下载下来最后落到本地一个固定的缓存目录里。这个默认缓存目录在Linux上通常是~/ncbi/public/sra/。也就是说你下载的文件不会出现在当前工作目录而是跑到家目录下去了。很多人第一次用会懵我文件呢有三个参数值得记住--output-directory或-O指定输出目录但注意它和缓存机制的关系用之前最好测试一下。--prefetch-to-cwd这是最省心的一个直接让文件下到当前目录。我更推荐用这个。--max-size设置单个文件的大小上限默认有个阈值超过就会拒绝下载。遇到大样本必须调比如--max-size 100G。另外--progress可以打开进度显示不然长时间没输出很容易以为卡死了。prefetch和直接HTTP下载.sra的区别在于它会做校验、支持续传、能读取SRA侧的分块信息。代价是速度一般尤其跨区域访问的时候带宽利用率经常只有直连的一小部分。这也正是aspera存在的意义。2.2 vdb-config里值得改的几个开关SRA Toolkit的所有行为都受一份配置文件控制用vdb-config管理。它是交互式的直接敲vdb-config --interactive会进一个文本界面按提示走就行。几个我实际会改的地方缓存根目录。默认在家目录家目录往往是系统盘空间小。我会把它挪到数据盘。对应的是配置里repository/user/main/public/下面的root路径。改完之后所有prefetch和dump的中间文件都跟着走省得一个样本就把系统盘写满。传输方式。较新版本的SRA Toolkit在配置里提供了传输协议的选项可以选HTTPS或者Aspera。不同版本菜单层级不太一样有的在 transport 相关项下面如果你翻不到也不用纠结直接用ascp命令行下载更可控。输出格式相关选项。比如fastq-dump的默认输出是否拆分、是否gzip。这些我一般不在配置里改而是在命令行里显式指定因为命令行参数优先级更高也更清楚自己这次到底干了什么。用vdb-config --show可以把当前配置全部打印出来排查问题时很有用。改配置用--set格式是路径加值具体路径跟着版本走建议先用--show看一眼再改。2.3 断连、报错与重跑的处理方式prefetch最让人放心的一点是支持续传。网络断了、机器重启了重新敲一遍完全相同的命令它会接着上次的进度继续不会从头开始。这一点比裸HTTP下载强太多了。几个常见报错的含义提前知道能少查半天报错关键词大概率原因处理方式the requested object is not foundaccession写错或该run已撤回回ENA filereport核对一遍disk usage exceeded/max size样本超过默认大小阈值加--max-size 100G重跑network error/ 长时间无输出链路抖动或中断重跑同一条命令自动续传failed to lock上一次进程没退干净检查是否有残留进程清掉再跑no space left缓存盘满了换缓存目录或清理空间我得强调一下重跑同一条命令这件事。很多人遇到中断第一反应是删掉半截文件重新下这是纯粹的浪费。prefetch的设计就是让你重复执行它自己判断哪里没下完。还有一个细节如果一批样本里有几个特别大建议把大样本单独拎出来跑不要和一堆小样本混在同一个循环里。否则一个大文件卡住后面全排队等着。我一般会先按元数据表里的bytes列排个序大的单独处理。3. Aspera把速度拉满fasp协议与ascp参数拆解如果prefetch是省心路线aspera就是速度路线。在跨区域、高延迟的链路上它的优势不是一点点经常是几倍到几十倍的差距。但它的配置比prefetch麻烦参数也容易配错所以要把原理搞清楚。3.1 为什么ascp能跑得比HTTP快这么多要理解这个得先知道普通HTTP/FTP下载为什么慢。它们跑在TCP上而TCP有一套拥塞控制机制一旦检测到丢包就大幅降低发送速率然后慢慢往上爬。这个机制在局域网里没问题但在跨区域的长距离链路上数据包来回一趟的时延可能上百毫秒一旦丢一个包速率掉下来要很久才能恢复。结果就是明明你有千兆带宽实际只能跑出几十兆。链路越长、丢包越多损失越大。aspera用的是一套叫fasp的自有传输机制走UDP。它不依赖TCP那套丢包就减速的逻辑而是自己控制发送节奏遇到丢包只补发丢失的部分。所以在高延迟、有抖动的链路上它能明显跑得更快。这就是为什么同样的文件用ascp经常能看到几十MB/s而HTTP只有几MB/s。代价是它对参数敏感配错了会跑不满而且它依赖一个私钥文件做认证不同数据源用的密钥不一样。3.2 ascp命令行参数逐个拆解ascp的参数不多但每一个都有实际作用。以从ENA拉一个fastq.gz为例典型写法是这样ascp -QT -l 300m -P33001 \ -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh \ -k 1 \ era-faspfasp.sra.ebi.ac.uk:/vol1/fastq/SRR123/456/SRR123456/SRR123456_1.fastq.gz \ ./data/逐项说明参数作用实际取值建议-Q启用公平传输策略让速率自适应建议常开配合-l使用-T关闭传输加密减少CPU开销公开数据下载可以开追求吞吐时有用-l目标速率上限从100m起试跑满再加别一上来就写1g-P服务端口ENA和NCBI都用33001-i认证私钥路径见3.3节-k断点续传开关设成续传模式中断后重跑不用重下源地址用户名主机:路径用户名和主机随数据源变化目标本地目录或文件名目录要以/结尾关于-l有个经验它设的是上限不是保证值。设得比实际带宽高没意义设得太低又浪费。我一般先用-l 300m跑一个文件看实际速度如果能跑满就维持跑不满就往上加。如果是共享链路别把上限设得比自己可用带宽还高会影响同机器上其他任务。-T这个参数值得单独说。关闭加密后CPU占用会下降在下载量大、机器同时在跑别的东西时收益比较明显。不过如果你的场景对传输过程有额外的安全要求就别关按默认走。-k的取值我一般设成开启续传。有一次下载一个40GB的样本跑到90%的时候链路抖了一下如果不是开了续传那90%就白跑了。3.3 密钥、端口与并发度的实际取值密钥文件是aspera最容易卡住新人的地方。数据源方会提供对应的公钥你本地需要一份私钥。常见的做法是安装aspera connect客户端后密钥自动落在~/.aspera/connect/etc/下面文件名一般是asperaweb_id_dsa.openssh。两个注意点密钥文件权限要收紧chmod 600太开放的话有些实现会直接拒绝使用。不是所有源共用一个密钥。ENA和NCBI各自提供的密钥可能不同下载不通的时候先确认你用的密钥和目标是配套的。端口方面公开数据服务基本都用33001。如果你的环境对这个端口有限制那就得换回prefetch或其他方式这一点要提前确认清楚。并发是提升整体吞吐最有效的手段但不是把ascp的并发线程调高而是同时跑多个ascp进程。做法很简单把要下载的文件列表写成一个文本文件一行一个URL然后用xargs并行cat filelist.txt | xargs -n 1 -P 4 -I {} bash -c ascp -QT -l 200m -P33001 \ -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh \ -k 1 {} ./data/ -P 4表示同时跑4个任务。这里有个权衡单进程速率 × 并发数不要超过你链路的总带宽否则互相抢带宽反而整体更慢。我的经验是单进程设200m并发4个在千兆环境里基本能把带宽吃满如果链路是百兆级别那并发2个、单进程设50m就够了。注意并发数不是越多越好。超过链路上限之后每个连接的速率都会被压到很低重试概率反而上升。3.4 NCBI与ENA两个源的地址写法差异两个源的用户名、主机名和路径规则都不一样混用会直接报认证失败。从ENA下载fastq主机是fasp.sra.ebi.ac.uk用户名是era-fasp路径以/vol1/fastq/开头。整条URL长这样era-faspfasp.sra.ebi.ac.uk:/vol1/fastq/SRR123/456/SRR123456/SRR123456_1.fastq.gz注意路径里的SRR123/456/这两级目录它不是随便来的而是有固定的拼接规则。这个规则在第4节会讲清楚但我的建议是别自己拼用ENA的接口拿到准确路径省得拼错还查半天。从NCBI下载.sra主机是ftp.ncbi.nlm.nih.gov用户名是anonftp路径以SRA的归档结构走大致形如anonftpftp.ncbi.nlm.nih.gov:/sra/sra-instant/reads/ByRun/sra/SRR/SRR123/SRR123456/SRR123456.sra这里下载到的是.sra容器后续还要用fasterq-dump转换。两种方式怎么选我的判断是如果要的是fastq优先走ENA加aspera一步到位还有MD5可校验如果是要归档原始容器、或者ENA确实没有该条目走NCBI加aspera下.sra。4. 从ENA直接抓fastq跳过sra格式转换的捷径前面反复提到ENA能直接给fastq这一节就把具体操作方法讲透。这条路走顺之后你会发现整个下载环节能省掉至少三分之一的时间。4.1 用filereport接口一次拿到链接和MD5ENA提供了一个查询接口可以按accession批量返回文件的直接下载地址、大小和MD5。这是整条路线里最重要的一步。最简单的用法查单个runcurl -s https://www.ebi.ac.uk/ena/portal/api/filereport?accessionSRR123456resultread_runfieldsrun_accession,fastq_ftp,fastq_md5,fastq_bytesformattsv返回的是一个制表符分隔的表字段含义如下字段含义run_accessionrun号也就是SRR/ERR号fastq_ftpfastq文件的地址分号分隔双端就是两个fastq_md5与地址一一对应的MD5值fastq_bytes文件字节数用来预估体积和校验如果要一次查一批把accession用逗号连起来就行几十个以内基本没问题。更多的话建议分批或者用resultread_runaccession配合循环。这里有个我踩过的坑有些样本的fastq_ftp字段是空的。这通常意味着该run在ENA没有转成fastq或者原始提交的就是其他格式。这时候就只能回SRA去下.sra再转换。所以批量下载前先扫一眼有没有空字段比下到一半才发现强。4.2 路径拼接规则与批量下载脚本虽然我建议用接口拿路径但理解拼接规则有两个好处一是能快速判断接口返回的路径对不对二是偶尔手边只有一个run号时能直接拼。规则大致是这样ENA的fastq存放在/vol1/fastq/下面紧接着是accession的前三位字母加数字部分的前三位再下一级是数字部分的后三位然后是完整的accession目录最后才是文件名。文件名格式是{accession}_1.fastq.gz和{accession}_2.fastq.gz单端就只有{accession}.fastq.gz。不同长度的accession目录层数会略有差异短号可能少一层。这就是为什么我一直强调用接口拿路径——手工拼容易在层数上出错而接口返回的是权威结果。拿到filereport的结果之后批量下载脚本可以这样组织# 1. 拉取元数据 curl -s https://www.ebi.ac.uk/ena/portal/api/filereport?accessionSRR123456,SRR123457resultread_runfieldsrun_accession,fastq_ftp,fastq_md5formattsv meta.tsv # 2. 转成aspera可用的地址列表 tail -n 2 meta.tsv | cut -f2 | tr ; \n | grep -v ^$ | \ sed s|^|era-faspfasp.sra.ebi.ac.uk:/| urls.txt # 3. 并发下载 cat urls.txt | xargs -n 1 -P 4 -I {} bash -c ascp -QT -l 200m -P33001 \ -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh \ -k 1 {} ./data/ 注意第一步cut -f2之后要按分号拆因为双端样本的地址是用分号连在一起的。这是脚本里最容易漏的一步漏了就会把一个包含两个路径的字符串当成单个文件名。4.3 封装工具怎么选enaDataGet、ffq与kingfisher如果不想自己写脚本有几个现成的封装工具可以用各有各的适用面。enaDataGet是ENA官方提供的小工具用法极简enaDataGet -f fastq -d ./data SRR123456一句话就搞定它会自动去查接口、拿到地址、下载并校验。适合临时下几个样本的场景。缺点是不太好做大规模并发也不方便自定义速率参数。ffq走的是另一条路它负责查元数据把accession对应的下载地址整理出来给你具体下载动作还是你自己决定。适合那种我想先看清楚有哪些文件再自己控制怎么下的用法。kingfisher更像是一个统一入口把下载prefetch/aspera和转换fasterq-dump两件事串在一起一条命令从accession直接得到fastq。适合不想在中间环节花心思的人。至于网页版的sra-explorer这类工具适合快速看一眼有哪些文件、大概多大但真到批量下载还是得落回命令行。我的实际用法是零星几个样本用enaDataGet批量任务自己写脚本加aspera。这样既省事又可控。5. 下载失败的排查链路从卡在0%到MD5对不上下载这件事跑通一次不代表以后都顺。链路状态、磁盘、权限、accession的有效性任何一个出问题都会让你卡住。这一节把我实际遇到过的几类问题按排查顺序摊开。5.1 速度掉到几KB或者干脆卡在0%的排查顺序遇到这类问题我一般按下面这个顺序过一遍从最可能的原因开始。第一确认源本身是不是通的。先用小文件或者curl -I探一下目标地址是否可达把网络不通和参数配错这两种情况分开。如果连HTTP都拿不到响应那问题在链路层面再怎么调ascp参数也没用。第二确认密钥和用户名配对。ENA用era-faspNCBI用anonftp写反了会直接认证失败。密钥文件如果权限过宽有些实现也会拒绝。先ls -l看一眼权限chmod 600一下不费事。第三看-l是不是设得不合理。设得太高链路竞争反而会让实际速率掉下来设得太低那就是自己给自己限速。办法是先设一个中等值跑一个文件实测速率再调整。第四看是不是并发太多。前面说过超过链路总带宽之后每个连接分到的带宽都在下降看起来就像突然变慢。把并发降到2个再试。第五看磁盘和inode。这一条最容易被忽略下一小节展开。第六看端口是否被拦。33001端口在部分网络环境下会被限制这种情况只能换回其他下载方式。整个排查过程的关键是每次只改一个变量。同时改三四个参数就算跑通了也不知道是哪个起了作用下次遇到相同问题还是要重新试一遍。5.2 MD5校验别跳过这一步数据下完了不校验等于白下。原因很简单传输中断不一定会报错。有时候一个文件看着大小正常实际上尾部缺了一截你拿它去跑比对结果就是莫名其妙地比对率暴跌然后你去查比对工具的参数、查参考基因组版本查了半天发现是文件本身不完整。ENA的filereport接口直接给了fastq_md5字段免费用。校验方式md5sum SRR123456_1.fastq.gz # 把输出和 meta.tsv 里对应的 fastq_md5 逐字比对批量的话可以生成校验文件再跑md5sum -c# 从meta.tsv生成校验清单 tail -n 2 meta.tsv | awk -F\t { nsplit($2,a,;); msplit($3,b,;); for(i1;in;i){ split(a[i],p,/); print b[i] p[length(p)] } } checksum.md5 md5sum -c checksum.md5跑完会逐条输出OK或FAILED。只要有FAILED删掉重下别想着凑合用。从SRA下.sra的情况下没有现成的MD5清单这时候可以用prefetch自带的校验它默认会验证或者在dump出fastq之后用样本的reads数、碱基数在元数据表里都有做一次粗略核对统计fastq的行数除以4和元数据表里的spots字段比一下数量级一致就说明文件大体完整。5.3 磁盘与inode最隐蔽的失败源头no space left on device这个报错大家都认识但有一种情况会让人抓狂df -h显示还有几百GB可用程序却一直报空间不足。这时候要看的是inode。用df -i检查。如果inode用满了即使字节空间还有富余也没法创建新文件。这种情况在下大量小文件比如几万个短读段分块的时候容易出现。另一个隐蔽问题是临时目录的位置。fasterq-dump默认会把中间文件写到系统临时目录很多时候就是/tmp而/tmp经常挂在一块很小的分区上。一个几十GB的样本处理到一半/tmp满了进程直接崩掉还留下一堆碎片文件。解决办法是显式指定临时目录把它指到数据盘上fasterq-dump SRR123456 \ --split-files \ --threads 8 \ --temp ./tmp \ -O ./fastq同时把缓存目录也挪走。这两件事做完磁盘相关的报错基本能绝迹。提示批量跑之前先用一个小样本把整条流程走通确认磁盘、临时目录、输出路径都没问题再放开跑大批量。这个习惯帮我省过好几次通宵重跑。6. 拿到数据之后从.sra到fastq的转换与整理如果你走的是ENA加aspera这条路下载完就是fastq.gz可以直接进入下游。如果走的是SRA路线拿到的是.sra容器还得转换一步。这一步看起来简单但参数选不对会浪费大量时间。6.1 fasterq-dump和fastq-dump到底怎么选两个工具做的是同一件事但效率差得很明显。fastq-dump是老的默认工具单线程为主处理大样本慢得让人想砸键盘。它还支持一些老的参数比如--gzip可以直接输出压缩文件这一点挺方便。fasterq-dump是后来推出的替代品支持多线程速度快很多。但它有两个特点要注意一是默认输出未压缩的fastq需要自己接gzip或者pigz二是会在临时目录生成中间文件磁盘占用峰值高。我的选择是默认用fasterq-dump然后管道接pigz压缩。理由很直接转换这一步往往是最耗时的环节能用多线程就别用单线程。一条典型命令fasterq-dump SRR123456 \ --split-files \ --threads 8 \ --temp ./tmp \ -O ./fastq \ --progress # 压缩如果样本大用pigz并行压 pigz -p 8 ./fastq/SRR123456_1.fastq ./fastq/SRR123456_2.fastq--threads的数量建议不要超过机器物理核心数的一半因为压缩那一步也要吃CPU。我有一次把threads设成32结果转换和压缩抢CPU整体时间反而更长。6.2 双端拆分与样本名重命名--split-files对双端数据来说基本是必加的。加了这个参数双端会输出成_1.fastq和_2.fastq两个文件不加的话两个端点的reads会混在一个文件里下游比对工具会直接报错。单端数据如果加了--split-files会产生无意义的_1后缀所以脚本里最好按元数据表里的library_layout字段做判断是PAIRED才加这个参数。重命名是另一个容易埋雷的地方。SRR号本身对人没有可读性跑完一轮分析之后你根本不记得SRR123456是哪个样本、哪个处理组。我的做法是在下载完成、校验通过之后立刻按元数据表把文件重命名成有意义的名字比如Ctrl_1_rep1_R1.fastq.gz这种。这里有个注意点重命名动作要和元数据表一起做并把映射关系记录下来。我的习惯是生成一个rename_map.tsv记录 SRR号、原始文件名、新文件名三列。等到后面结果对不上、需要回溯的时候这份文件能救命。另外重命名最好在MD5校验之后。因为校验清单里用的是原始文件名先改名就要同步改校验清单容易出错。6.3 把下载、校验、转换串成一条流水线样本一多手工操作就会出错。我现在的做法是把整条链路写成一个脚本核心逻辑是这样#!/usr/bin/env bash set -euo pipefail ACC_LIST$1 WORKDIR$(pwd) mkdir -p data fastq tmp # 1. 拉取元数据 curl -s https://www.ebi.ac.uk/ena/portal/api/filereport?accession$(paste -sd, $ACC_LIST)resultread_runfieldsrun_accession,library_layout,fastq_ftp,fastq_md5formattsv meta.tsv # 2. 生成下载地址 tail -n 2 meta.tsv | cut -f3 | tr ; \n | grep -v ^$ | \ sed s|^|era-faspfasp.sra.ebi.ac.uk:/| urls.txt # 3. 并发下载 cat urls.txt | xargs -n 1 -P 4 -I {} bash -c ascp -QT -l 200m -P33001 \ -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh \ -k 1 {} ./data/ # 4. 校验 # 按5.2节的脚本生成checksum.md5后执行 md5sum -c checksum.md5 echo 下载与校验完成可以进入下游分析这个脚本的关键点是set -euo pipefail。加上它之后任何一步失败都会立即中断不会带着不完整的文件往下走。这一点特别重要——我有过一次没加这个MD5校验失败了但脚本继续跑后面一整批下游分析全部基于坏文件最后返工了大半天。还有个细节library_layout这个字段一定要取出来。它决定后面dump的时候加不加--split-files也决定下游比对时用单端还是双端模式。漏掉它后面就得再查一遍元数据。我在实际操作中的体会是下载这件事的难点从来不在命令本身而在知道自己在下一个什么东西。accession背后的样本结构、文件体积、单双端、有没有MD5这些信息在动手之前都过一遍整个流程会顺很多。反过来上来就 copy 一条命令开始跑往往是在排查问题时才开始补课代价就是时间。最后再分享一个小技巧如果同一批样本在ENA和SRA都查得到但ENA的fastq字段是空的别急着放弃去ENA的read_run报告里换个字段名再查一次比如看submitted_ftp有时候原始提交的文件就藏在那里能省掉一轮格式转换。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

2026年AI论文写作工具哪家强?五款主流科研工具横评对比 2026/10/1 21:00:28

2026年AI论文写作工具哪家强?五款主流科研工具横评对比

这几年 AI 论文写作网站一批接一批地冒出来,选型本身反而成了新难题:有的擅长英文润色,有的擅长啃外文文献,有的把选题、检索、阅读、写作放进同一个工作台,比如沁言学术这类覆盖科研全流程的平台,和偏单点的工具分工完全不一样。不少使用者一开始按名气下载,用两周就发现工具之…

阅读更多 →
架构设计实战:文件全生命周期管理方案从需求到落地 2026/10/1 21:00:21

架构设计实战:文件全生命周期管理方案从需求到落地

很多企业做文件安全,习惯于单点堆砌加密、审计、U 盘管控工具,各个模块相互割裂,文件一旦下载到本地终端,防护链条直接断裂。本文站在安全架构设计视角,完整走完业务需求拆解‑风险识别‑方案模块设计‑测试‑持续运维…

阅读更多 →
Wiki.js 主题挑选与安装指南:新手快速完成外观定制 2026/10/1 21:00:21

Wiki.js 主题挑选与安装指南:新手快速完成外观定制

Wiki.js 主题挑选与安装指南:新手快速完成外观定制 【免费下载链接】wiki- Wiki.js | Next Generation Open Source Wiki 项目地址: https://gitcode.com/GitHub_Trending/wiki78/wiki- 刚部署好的 Wiki.js 默认界面偏素。这篇指南按使用场景给 Wiki.js 换主…

阅读更多 →
ng-table列控制完全指南:动态显示/隐藏列与拖拽重排列 2026/10/1 21:00:21

ng-table列控制完全指南:动态显示/隐藏列与拖拽重排列

ng-table列控制完全指南:动态显示/隐藏列与拖拽重排列 【免费下载链接】ng-table Simple table with sorting and filtering on AngularJS 项目地址: https://gitcode.com/gh_mirrors/ng/ng-table ng-table 是一款专为 AngularJS 打造的表格指令,…

阅读更多 →
Springboot美妆商城+社区交流平台:从数据库到上线部署全解析 2026/10/1 21:00:21

Springboot美妆商城+社区交流平台:从数据库到上线部署全解析

一个朋友跟我聊起他做的美妆电商系统,说退货率高得离谱。细聊下来才发现问题根本不在商品质量,而是用户买错了——买粉底液不知道自己是什么肤质,买口红被滤镜图骗了,买精华液根本分不清版本区别。后来他们在商品详情页旁边加了一…

阅读更多 →
码蹄杯刷题攻略:从新手入门到比赛稳拿分的完整路线 2026/10/1 21:00:21

码蹄杯刷题攻略:从新手入门到比赛稳拿分的完整路线

行,开始码。先说明一下,这篇东西写给两类人看:一类是刚报名码蹄杯、还不太清楚该从哪下手的新手;另一类是刷了百来题但卡在瓶颈期、感觉做了和没做差不多的老手。我自己是从码蹄杯第一届开始就在刷这个平台的,中间断断…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉