ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

16S rRNA测序数据NCBI SRA存缴:BioProject到Run全流程

16S rRNA测序数据NCBI SRA存缴:BioProject到Run全流程 做微生物组的人多半都经历过这么一幕投稿返修意见里躺着一句话——原始测序数据需在接收前完成公共数据库存缴并提供登录号你打开文件夹看着那几十上百个压缩包心里第一反应是从哪下手。NCBI 这个名字谁都听过但真到自己动手把16S rRNA 测序数据传上去的时候BioProject、BioSample、SRA 三个缩写往那儿一摆大多数人还是会卡住。我第一次做这件事时光是搞明白该先建哪个号就折腾了一下午中间还因为一个属性名里带了空格被系统打回两次。这篇东西就是把我这几年的踩坑经验、以及帮师弟师妹处理过的几十次提交攒在一起写成一份可以照着抄的流程。它适合三类人第一次要独立完成数据存缴的研一新生、被期刊催着交登录号的毕业年级同学、以及想搞明白 NCBI 这套体系到底怎么运转的交叉学科研究者。读完之后你至少能做到两件事——知道 BioProject、BioSample、SRA 各自管什么以及能在半天内把一批 16S 扩增子原始数据完整提交上去拿到可以直接写进 Data Availability Statement 的登录号。1. 上传前的整体思路拆解16S rRNA 数据到底该往哪存1.1 BioProject、BioSample、SRA 三者的分工与从属关系我习惯把 NCBI 这套体系比作一家物流公司。BioProject是运单上的项目编号它不装货只声明有这么一批货是我这个课题组为了回答某个科学问题而采集的比如某地农田土壤微生物群落随施肥梯度的变化研究。BioSample是每一件货的身份证描述的是单个样品本身的属性——它从哪来、什么时候采的、什么基质、宿主是谁。SRA则是真正的仓库存放测序仪吐出来的原始 reads 文件。真正跑起来的时候它们之间的关系是这样的一个 BioProject 下面挂若干个 BioSample若干个 BioSample 又关联到 SRA 里的 Run。而 SRA 内部还有一层命名体系初学者最容易晕SRP 是 Study一次提交形成的项目组、SRS 对应 BioSample、SRX 是 Experiment描述文库构建方式、SRR 才是最终的那个 Run一对 FASTQ 文件。实际写作时你只需要把PRJNABioProject 号、SAMNBioSample 号、SRRRun 号三个写进文章就够了其余的交给系统自动生成。层级编号前缀描述对象谁需要填BioProjectPRJNA / PRJEB课题整体填标题、摘要、资助信息BioSampleSAMN / SAMEA单个样品填采集地、时间、来源等属性SRA StudySRP一次提交的集合系统自动生成SRA ExperimentSRX文库构建与测序方式在 SRA 元数据表里填SRA RunSRR一对 FASTQ 文件文件上传后自动分配理解这张表的意义在于你后面填的所有表格本质上都是在回答这件事属于哪个项目这个样品是什么这个样品是怎么测的这三个问题。想清楚这三层后面的操作就只是把信息往格子里搬。1.2 哪些内容该传 SRA哪些内容另作处理这是新手最容易搞混的地方。SRA 要的是最原始的 FASTQ也就是测序仪下机之后、没有做过任何接头去除和质控过滤的原始文件。很多人会把已经用 fastp 或 Trimmomatic 处理过的 clean reads 交上去结果在 design_description 里没写清楚审稿人一看 read 长度整齐得不自然就会追问原始数据在哪。我的建议是原始 FASTQ 传 SRA这是硬性要求而拼接后的 contig、OTU/ASV 代表序列、物种注释表、丰度矩阵这些衍生结果不需要传 SRA。如果期刊要求提供可复现的衍生数据可以走 GenBank 的 TSATranscriptome Shotgun Assembly通道提交组装序列或者干脆打包扔到 Zenodo、Figshare 这类带 DOI 的通用仓库在文章里给个链接。注意这是基于常见实践的补充做法具体还得看目标期刊的数据政策。还有一类东西是绝对不能漏的——引物和测序区域信息。16S 扩增子研究里V3-V4、V4、V4-V5 这几个区域的结果根本没法直接横向比较所以必须在设计描述里写明引物序列和扩增区域这是同行复现的前提。1.3 时间节点与权限规划别等到投稿当天才动手NCBI 的审核不是实时的BioSample 批量提交有时会因为一个属性格式问题反复打回SRA 文件上传几十个 G 也可能中途断掉。我一般建议在投稿前两到三周就开始做这件事留出至少一周的缓冲。关于释放时间Release Date这里有个非常实用的机制你可以在提交时把释放日期设成文章发表时或者一个未来的具体日期这样数据在审稿期间处于私有状态只有你和合作者能看到。SRA 的 hold 期限通常允许设到提交后几年但如果文章一直没发到期前系统会提醒你。文章见刊后记得回去把释放日期改成即时释放否则审稿人或者读者点进去会看到一个空页面。权限方面Owner所有者和 Submitter提交者是两个角色。Owner 通常是 PI 的账号拥有最终的删除和转移权限Submitter 可以是干活的学生能填表、能上传但不能删项目。我强烈建议用一个课题组长期有效的公共邮箱注册 Owner 账号别用某个已经毕业的师兄的个人邮箱——我见过不止一个课题组因为账号所有人毕业失联导致后续要更新数据时无人有权操作最后只能发邮件求 NCBI 帮忙。2. 核心细节解析元数据与文件格式的硬性要求2.1 账号注册与提交者角色的配置NCBI 账号注册本身没什么门槛填邮箱、设密码、收验证邮件即可。但有两个细节值得提前处理一是绑定 ORCID绑上之后你提交的所有数据都会自动关联到你的学术身份以后要统计我这辈子交了多少条数据时非常方便二是提前添加 Submitter如果你的账号是 Owner可以在账号设置里把同组同学的邮箱加进来让他们用各自账号登录后提交到你的项目下这样责任到人也方便追溯。有个小坑NCBI 现在对密码强度要求不低而且长时间不登录会要求重置。我吃过一次亏——投稿周正忙着改论文登录时被要求重置密码重置邮件又在垃圾箱里躺了半天。所以提交前一周先登录一次确认账号能用这个动作花不了一分钟但能省掉一小时的焦虑。2.2 BioSample 必填属性的逐条拆解BioSample 是整条链路上最容易出错的一环因为它涉及的是语义而不是格式。16S 扩增子样品通常用Microbe这个包Package里面会根据你选的样品类型环境样品、宿主相关样品等显示不同的必填项。几个几乎必然会用到的字段organism这是必填项。做 16S 的人常常不知道具体是什么菌这里可以填uncultured bacterium或者metagenome这是业内的常规做法不用担心被拒。collection_date必须用 ISO 8601 格式写成2023-06-15或者2023-06甚至只写2023也行但不能写2023年6月更不能写中文。geo_loc_name格式是国家: 省/州, 城市冒号后面有空格逗号后面也有空格这个格式卡得很死。跨国合作的样品要按实际采集地填。isolation_source来源描述比如paddy soil、rhizosphere soil、human gut尽量用规范的英文短描述。host宿主相关样品必填写上宿主的学名或通用名比如Oryza sativa。缺失值的写法是重中之重。NCBI 只认那几个标准词missing、not collected、not applicable、not provided、restricted access。很多人习惯填unknown或者NA然后被系统打回。我的做法是只要这个字段我在采样时确实没记就写not collected如果这个概念对这项研究根本不成立就写not applicable。还有一点属性名和属性值里出现中文、空格、特殊符号除下划线都可能导致解析失败sample_name 建议只用字母、数字、下划线和连字符。2.3 FASTQ 文件的命名、压缩与完整性校验文件名混乱是上传阶段最浪费时间的坑。SRA 的网页端上传器对文件名没有强制规则但如果你要写脚本或者后期用 Run Selector 匹配规范命名会让你省下大量力气。我习惯的命名格式是StudyID_SampleID_S1_L001_R1_001.fastq.gz StudyID_SampleID_S1_L001_R2_001.fastq.gz其中 R1/R2 明确标识双端方向S1 是样品在 lane 中的编号这些都和你的 sample_name 一一对应。压缩必须用 gzip不要用 zip 或 rar也不能传未压缩的 FASTQ——几百兆一个的文件未压缩会膨胀好几倍上传时间翻番。上传之前一定要做两件事。第一件是生成 MD5 校验值并留档。Linux/macOS 下一行命令搞定md5sum *.fastq.gz md5_checksums.txtWindows 用户可以用系统自带的工具逐个算certutil -hashfile sampleA_R1.fastq.gz MD5第二件是确认双端文件完整且配对。同一对 R1/R2 的 read 条数必须完全一致否则测序过程中可能丢过 read。用 seqkit 检查最省事seqkit stats *.fastq.gz输出里会列出每个文件的 reads 数和碱基数扫一眼 R1/R2 的 reads 列是否相等即可。如果差距在万分之几以内通常是正常的如果差了几十万条那就要回去找测序公司要原始数据了。3. 实操过程从 BioProject 到 SRA Run 的完整链路3.1 创建 BioProject把课题的户口先立起来打开 NCBI 的提交门户选择 BioProject 那一项登录后依次填项目标题Title、公开描述Public Description、项目类型一般选Genome sequencing或Metagenome相关、资助信息Funding有基金号就填、以及是否已有相关数据。标题建议写成一句完整的英文陈述比如16S rRNA amplicon sequencing of rhizosphere soil across a long-term fertilization gradient别只写Soil bacteria这种太泛的词。公开描述可以稍微展开两三句说明采样设计、样品数量、研究目的这段话将来会公开可见写得清楚一点对数据被引用很有帮助。保存之后系统会立刻分配一个PRJNA 开头的编号。这个号就相当于你的项目主键后面 BioSample 和 SRA 都会挂到它下面。如果这是一个大的研究方向下的一小批数据你还可以把它挂到一个已有的 Umbrella BioProject 下方便统一管理。3.2 批量创建 BioSample模板下载与填写BioSample 支持两种提交方式网页单条填和批量模板。样品超过十个一律走批量。流程是在 BioSample 提交页面选择Batch submission下载 TSV 或 Excel 模板。模板里会有几列是固定列——*sample_name、*organism、*package之类带星号的是必填后面是你可以自由添加的属性列。我实际操作时的顺序是这样的先把所有样品的 sample_name 在 Excel 里列好这一列必须唯一不能重复然后逐个补 attribute 列。填写时有几个经验点一是sample_name 不要用纯序号比如 1、2、3因为将来在 SRA 里会生成一个自动的 Sample Name两者容易混淆。我习惯用SiteA_Rep1、SiteA_Rep2这种带语义的格式。二是同一批样品尽量保持属性列一致。如果十个样品填了 geo_loc_name另外十个没填系统会分开处理甚至报错。宁可整批都写not collected也不要一列填一半。三是填完之后自己先做一遍翻译检查把表格里的每一列读一遍问自己如果我是完全不认识这个课题的人看着这一行能不能复现这个样品这个自检动作能筛掉八成将来审稿人可能会问的问题。上传模板后系统会跑一次校验颜色标出必填缺失、格式错误、重复 sample_name 等问题。改完重新上传直到没有红色报错点提交。审核通过后每个样品会拿到一个SAMN 开头的编号记得把这份对应关系表单独存一份后面写文章和填 SRA 表格都要用。3.3 SRA 元数据表填写一行一个 Run这一步是整个流程的核心。进入 SRA Submission Portal先选 Submitter联系人再填 General Info选已有的 BioProject设置 Release Date然后关联 BioSample——如果刚才已经建好了就直接用 SAMN 号关联不用重复建。接下来是最重要的那张元数据表。它的逻辑是一行对应一个 Run而 16S 双端测序的一对 R1/R2 属于同一个 Run所以一行就够不要拆成两行。表里需要填的关键字段我整理成下面这张对照表字段16S 扩增子的常见填法说明library_ID与 sample_name 对应唯一标识title简短描述可选但建议填library_strategyAMPLICON扩增子测序固定值library_sourceGENOMIC16S 从基因组 DNA 扩增library_selectionPCR经过 PCR 富集library_layoutPAIRED / SINGLE双端还是单端platformILLUMINA视测序平台而定instrument_modelIllumina MiSeq 等必须与实际上机型号一致design_description引物序列 扩增区域例如 V3-V4341F/806Rfiletypefastq固定值design_description这一栏千万别偷懒。写清楚16S rRNA gene V3-V4 region, primers 341F (CCTACGGGNGGCWGCAG) / 806R (GACTACHVGGGTATCTAATCC)这既是对同行的尊重也是将来数据能被正确整合进 meta 分析的前提。填完表保存系统会自动解析把一行行拆成 SRX 和 SRR 的对应关系。如果某一行必填项为空会当场标红。3.4 文件上传、校验与最终提交元数据通过之后进入 Files 环节。小批量几十 G 以内可以直接用网页上传器把文件和刚才生成的 MD5 一起拖进去数据量大或者网络条件一般建议用命令行客户端传到指定目录这个方式支持断点续传夜里挂机跑最省事。上传完成后系统会逐个校验 MD5全绿才允许提交。这一步失败最常见的原因是上传过程中文件被压缩软件重新编码过——比如有人上传前用压缩工具优化了一遍 gz 文件MD5 就变了。所以文件一旦算好 MD5就不要再动它。提交后进入审核通常几个工作日内完成。审核通过后你会拿到SRR 开头的 Run 号这时可以在 SRA Run Selector 里按 BioProject 号检索确认所有 Run 都齐了、样品名和元数据对应正确。我习惯最后再做一次下载验证用 SRA Toolkit 随便拉一个 Run 下来检查 read 数和本地原始文件是否一致确认无误再放心去写文章的 Data Availability。4. 常见问题与排查技巧实录4.1 元数据被打回的典型原因速查下面这张表是我这些年实际遇到过的报错按出现频率排序基本能覆盖九成情况。报错现象根本原因处理方式属性值解析失败值里含中文、空格或特殊符号改英文用下划线代替空格日期格式错误写成 2023/6/15 或中文日期改成 2023-06-15 或 2023-06缺失值不识别填了 unknown、NA、空改用 not collected 等标准词sample_name 重复批量表里有两个同名行加序号或站点前缀去重geo_loc_name 格式异常缺冒号或逗号后没空格严格按国家: 省, 城市写organism 未填做 16S 不确定物种就留空了填 uncultured bacterium我踩过最冤的一次是在 attribute 名里用了大写字母加空格比如Collection Date。系统表面接受了提交后却被打回理由含糊。后来改成全小写加下划线就一次过了。所以现在我的原则很简单所有属性名一律小写、下划线分隔、不带空格。4.2 文件上传与校验失败的排查思路校验不通过时先别急着重传整个批次。按这个顺序排查效率最高先本地重新算一次 MD5和系统显示的对比确认是文件本身变了还是传输过程出错再看文件大小是否和本地一致差了几 MB 通常是传输中断最后确认压缩格式是不是 gzip.zip 和 .gz 是两回事。如果确定要对某个文件重传注意不要改文件名因为元数据表里已经绑定了对应的 library_ID改名会导致重新匹配。我一般会在本地建一个上传用文件夹算完 MD5 之后就不再去动里面任何文件这个习惯帮我省了至少三次返工。还有一个容易被忽略的点上传前把 R1/R2 顺序对应好。看起来是废话但样品一多Excel 里排序之后 R1 和 R2 错位是常事。上传完做一次 read 数比对能提前发现这个错误。4.3 提交之后要改数据怎么办先说结论能一次做对最好因为事后修改很麻烦。元数据在正式释放之前还有一定调整空间可以通过提交门户的 Update 功能补充或者联系 NCBI 的工作人员协助处理。但如果 Run 已经公开想要删除就必须走撤稿流程而且accession 号会保留在系统里只是标记为撤回状态——也就是说一个错误的 SRR 号会永远挂在那里将来别人检索时还能看到。所以我的建议是数据一旦提交先别急着释放把 Release Date 设到文章接收之后。利用这段私有期自己完整走一遍从 SRR 号下载数据、跑一遍标准分析流程的验证确认无误再定稿。这个动作花半天但能避免一次不可逆的错误。另外如果后来你又补测了一批样品想加到同一个 BioProject 下是完全允许的只要用同一个 PRJNA 号新建 BioSample 和新的 Run 即可不用重新立项目。4.4 与论文发表的时间线配合审稿人问数据登录号的时候你要给出的是已经提交、已经分配了 accession、但可以处于私有状态的记录。所以时间线上的正确做法是投稿前完成提交并设置好 Release Date投稿时在 Cover Letter 或数据可用性声明里写明数据已提交至 NCBI SRA登录号 PRJNAxxxxxx将于文章发表时公开。这句话是所有期刊都认的标准写法。文章接收后记得做两件事把 Release Date 改成即时公开以及在最终版里把完整的登录号列表补进 Data Availability Statement。如果样品特别多写清楚BioProject: PRJNAxxxxxx包含 xx 个 BioSample 和 xx 个 Run就够了不用把所有 SAMN 号罗列出来。最后分享一个我自己的小习惯每次提交完我会把 BioProject 号、BioSample 与样品名的对应表、SRA 元数据表、MD5 文件、以及这次提交的日期打包成一个数据存缴存档文件夹单独存放。两年后师弟接手这个课题要补数据或者审稿人三年后追问细节打开这个文件夹所有信息都在不用再登录网站一个个翻。这个文件夹我建议直接放进课题组的共享盘比记在某个人的电脑里靠谱得多。
返回列表