几个月前帮实验室整理一批16S rDNA的测序数据,准备投文章时才发现——NCBI上传这事儿,远比想象中琐碎。很多人以为就是把FASTQ文件拖上去点个submit,结果不是文件格式报错,就是BioSample属性填不全,再不然就是审阅意见下来要求补充引物信息,一来一回能磨掉一周。这篇东西我就把自己踩过的坑、对照官方文档核对过的细节,完整梳理一遍,给准备向NCBI上传16S rDNA数据的同行做一个直接能照着操作的手册。
先说明白这篇文的适用对象:你是做微生物多样性、菌群结构分析、环境微生物或者临床样本菌群研究的,手里有16S rDNA测序的原始数据(双端FASTQ为主),准备投期刊,期刊要求数据上传NCBI SRA并给出登录号;或者你想在公共数据库里公开一批自己的测序数据。那么这篇内容对你有用。如果你拿到的是已经拼接好的完整16S基因序列,想提交到GenBank做系统发育分析,这篇文章也会覆盖,因为通道和界面是相通的,只是选的数据库入口不同。
1. 上传前先搞清楚:NCBI对16S rDNA数据有哪些要求
有一说一,NCBI的文档写得并不算难懂,但它是给"懂数据库逻辑的人"看的,不是给"第一次提交数据的人"看的。我建议你先不要急着去界面里乱点,先花半小时把下面这些概念理顺,后面能少走很多弯路。
1.1 16S rDNA数据类型与NCBI对应归档库
NCBI的数据库体系里,和16S rDNA数据直接相关的主要有三个归档库:BioProject、BioSample、SRA(Sequence Read Archive),以及GenBank的16S rRNA数据库(一般通过BankIt提交)。它们的分工是:
| 数据库 | 存什么 | 登录号示例 |
|---|---|---|
| BioProject | 整个研究项目的描述,包含研究目标、测序策略、项目归属 | PRJNA123456 |
| BioSample | 每个样本的物理描述,比如来源环境、宿主、采集地、样本类型 | SAMN12345678 |
| SRA | 测序仪直接产出的原始序列数据,FASTQ/BAM格式 | SRX1234567 |
| GenBank(BankIt) | 拼接好的16S序列,带注释的FASTA或GenBank flatfile格式 | PP123456 |
很多人第一次看到这堆编号就懵了,其实可以用一个生活化的类比来理解:BioProject是"项目计划书",BioSample是"实验记录本里的样本登记表",SRA是"原始实验数据的仓库"。
绝大多数期刊要求的上传,指的是把数据存到SRA,因为SRA存的是最原始的测序信号,其他人拿到后可以自己重新跑分析流程。如果你的研究重点是新物种鉴定、全长16S序列的系统发育分析,那还需要把拼接后的序列单独提交到GenBank。这两个通道不是二选一的关系,而是"原始数据进SRA,代表序列进GenBank"的并行关系。
1.2 元数据整理:样本信息表怎么填才不会被退回
NCBI对核数据的态度是:宁可要"多余"的描述,也不能缺关键项。我在第一次提交时就是吃了"信息不足"的亏——BioSample审阅意见直接要求补充采样地坐标和宿主详细信息。
16S rDNA数据必须提交的核心元数据包括:
- 样本名:唯一、简明、不包含空格和特殊符号。建议用"项目简称+样本编号"的组合,比如GUTSS001,太随意的话会在后面映射环节出问题。
- 采集信息:采样日期(ISO格式YYYY-MM-DD)、地理位置(经纬度最好给,NCBI支持度很高)。
- 样本来源:环境样本就写环境类型(soil_freshwater, gut_host等),宿主样本就写宿主物种学名、宿主健康状况、取样部位。
- 测序信息:测序平台(Illumina MiSeq/NextSeq/NovaSeq)、目标区域(16S V3-V4等)、引物序列(非常重要,NCBI的SRA提交表单里专门有assay type和target gene的信息,必须写明引物名称和序列,否则部分审稿人直接拒)。
- 文库信息:单端还是双端、插入片段长度。
这里有个关键认知:NCBI的工作人员不会帮你"推断"数据,你给什么,他们能看到的就只有什么。元数据不完整,最常见的结果就是审阅打回,让你补材料。与其对着退回邮件猜,不如提交前对照SRA的metadata模板把每一项过一遍。
1.3 序列文件的三种形态:原始FASTQ、拼接FASTA与GenBank格式
NCBI的实际上传支持三种数据形态,各自的适用场景需要你先想明白:
- 原始FASTQ文件:这是SRA收的标准文件,包含测序读长和质量分数。如果你提交的是双端测序结果,会得到两个文件(R1和R2),需要成对上传。
- 拼接后的FASTA文件:如果你做了序列拼接、且通过QC,想提交一致性序列(consensus sequence),可以用FASTA格式提交到GenBank。但要注意,GenBank的16S提交更推荐带注释的GenBank flatfile格式,因为它能记录编码区域、rRNA特征等。
- GenBank格式(flatfile):带feature表注释的格式,是BankIt实际生成的目标格式。特征表里有source、rRNA、gene等条目。
我的建议是:如果投期刊,优先完整提交原始FASTQ到SRA。如果还要给物种鉴定文章补充代表序列,再额外用BankIt提一条(或一批)拼接序列。这两个操作是独立的,别混淆。
2. 通道选型:SRA、BioSample和GenBank到底走哪条路
NCBI的上传入口多,确实容易让人不知道从哪里进入。表面上看都是"提交数据",但其实入口背后的逻辑完全不同。我梳理出两条最常用的路径,你照着判断就行。
2.1 三个数据库的分工与协作关系
提交的先后顺序其实非常固定:先建BioProject,再建BioSample,之后根据需求走SRA通道或GenBank通道。这个顺序是NCBI的系统逻辑决定的,因为SRA和GenBank的提交表单里都需要关联BioSample和BioProject登录号。
BioProject在整个体系里的角色像个"筐",把所有关联的数据组织起来。一篇论文的数据应该只有一个BioProject,下面可以挂很多BioSample,每个BioSample下又可以挂多次SRA实验。
从这个角度看,NCBI不是在"收数据",是在"按项目和样本组织数据"。理解这一层,你就明白为什么所有界面都在问你要BioProject ID和BioSample ID——它们是把数据锚定的两个钩子。
2.2 两类场景:原始测序数据 vs 组装/注释产物
判断走哪条路的标准只有一条:你的数据形态是"原始的"还是"加工后的"。
- 如果你手上是测序仪下机的FASTQ,并且在后续分析中还要做OTU聚类、多样性指数计算——请提交SRA。
- 如果你已经获得了16S全长序列或近全长序列,做了至少99%准确率的拼接,想在GenBank里获得一个有注释的登录号,并且这个序列在文章里作为"代表序列"出现——请走BankIt/GenBank通道。
这两条通道的用途可以同时存在。最典型的做法是:一篇土壤微生物多样性文章,既要把所有样本的原始FASTQ上传SRA获得SRP登录号,也要把其中新发现的菌株16S序列上传GenBank获得单独的序列号。两个登录号都会出现在论文里,评审也都认。
2.3 我的选型建议:什么时候用SRA,什么时候完整提交
从我自己的项目经验出发,选型建议是这样:
- 单纯为了满足期刊数据可用性要求:只提交SRA即可。已经足够,不需要额外做GenBank的BankIt。
- 研究对象包括潜在的未培养新物种,或者涉及新分类单元的描述:一定要走BankIt提交16S代表序列,同时把原始数据放SRA。
- 做了全基因组测序同时包含16S信息:走SRA上传整个WGS原始数据,单独把16S序列刨出来走BankIt。
- 只想公开拼接好的16S序列,不想公开原始数据:只走BankIt,但要注意有些期刊会要求原始数据,可能需要事先确认。
这里想提醒一句:SRA的数据在release日期之前是保密的,评审可以凭登录号和审阅人token访问,不影响盲审。BankIt的GenBank序列默认公开发布,但可以设定hold until date,在指定日前不公开。两者的可见性控制机制不同,别搞混。
3. 提交流程逐步拆解:从创建BioProject到上传序列文件
这一节是整个操作的核心。我会按点击顺序走一遍,并告诉你每一步要准备什么、填什么、以及常见错误怎么避。
3.1 注册与登录:NCBI账号体系使用要点
上传数据必须有一个NCBI账号。注册很简单,用邮箱就能创建。有一点要注意:NCBI账号密码忘了之后的找回流程比较绕,而且如果你在提交过程中会话超时(系统会在约30分钟无操作后登出),填了一半的表格可能丢失。所以我强烈建议:提交前把所有要填的信息准备到一个文本文件里,正式填表时直接复制粘贴。
注册完成后,进入Submission Portal,你会看到SRA、BioProject、BioSample这几个入口。这里建议的顺序是:BioProject -> BioSample -> SRA。
3.2 创建BioProject:元数据的写法
进入BioProject提交界面后,有几个关键项需要认真填写:
- Project title:建议直接写成论文标题的简化版,例如"Influence of fertilizer regime on rhizosphere bacterial communities of maize (16S rRNA gene amplicon sequencing)"。这个标题会显示在SRA登录页面上,以后别人检索时能看到。
- Project description:写清楚研究背景和目的,一两段话即可,不需要复制论文摘要。
- Project type:选择Research Study即可。如果你的16S数据是某个大型项目(比如地球微生物组计划)的一部分,可以关联umbrella project,否则不用管。
- Relevance:选Medical或Environmental或Agricultural,取决于实际研究背景。
BioProject创建成功后,页面会显示PRJNA开头的登录号。我习惯直接把所有登录号记在自己本地的提交日志里,方便后续对应。
3.3 创建BioSample:16S样本属性怎么填
BioSample提交是整个流程中最容易出错的地方,因为它的表单是动态的,会根据你选的包类型变化。16S rDNA测序通常选Microbe、Metagenome或Environmental包类型,具体看样本性质:
- 纯培养菌株:选Microbe
- 动物/人体肠道样本:选Host-associated,需要填写宿主物种、宿主年龄、性别、取样部位等
- 土壤/水体/空气样本:选Environmental,需要填写经纬度、环境特征(biome、feature等)
这里有一个特别实用的操作:BioSample提交页面支持上传Excel表批量创建样本,尤其是样本数多的时候,几千个样本不可能一个个手填。Excel模板可以从NCBI的BioSample submission页面下载,里面有标准的列名定义。填的时候注意:
- 每个样本的sample_name必须唯一,不能有空格,不能用中文,不要用/、\、:等字符。
- 经纬度格式建议使用十进制(例如42.36 -71.05),NCBI支持度很好,不要写成度分秒。
- 时间标准格式:YYYY-MM-DD,ISO 8601,其他格式会被回退。
一次性创建多个样本时,Excel模板的列很多,看起来很吓人。我的方法是:先下载模板,删掉不用的列(千万别动列头),保留必填列和我的样本相关列,然后填好上传。如果上传报错,NCBI会给一个可下载的报错文件,里面有具体是哪一行、哪一列、什么值不合格,照着改就行。
3.4 提交SRA:实际操作细节
BioSample创建完后,进入SRA提交,界面会要求你选择数据来源、测序平台、数据文件形式。
SRA提交有几个核心选项:
- Illumina双端测序:Choose platform里选Illumina,Library strategy选AMPLICON,Library source按要求,Library selection选PCR。这一点很关键,因为16S文库通常经过PCR扩增,不能选成GENOMIC或RANDOM。
- File format:原始FASTQ文件直接用.gz压缩格式上传,NCBI接受FASTQ(.fastq.gz)、FASTA(.fasta.gz)、BAM等。注意文件名里最好别带特殊符号。
- Assay type:选择AMPLICON,然后在Target gene里填写16S rRNA,并附上引物序列信息。
文件上传本身有三个通道:网页直接拖拽、FTP(Aspera命令行/FileZilla)、以及SRA的远程上传工具。我个人最推荐网页上传,但需要注意浏览器限制——文件太大容易断断续续,我用过的方案是:
- 单个文件小于10GB:直接网页上传。
- 大量文件或超大文件:用NCBI推荐的Aspera命令行(ascp),可以断点续传,速度也稳定。不过Aspera需要在本地安装客户端,且必须从NCBI的SRA提交界面获取identity文件(通常是名为asp-ora-priv.ora的凭证文件,或者直接使用SRA提交邮件里下发的key)。
SRA提交完成后,系统会给你一个SRR或者SRX的运行号,随后进入审阅队列。到此,整个提交的动作已经完成,剩下的就是等待和检查。
4. 容易被忽略的序列文件检查项:格式、命名与质量控制
规格上,NCBI官方文档说得很清楚,但真正常见的上传退回原因,恰恰是在那些"看起来很简单"的地方。我在这里列几个我在实验室里反复帮人排查了几轮的问题。
4.1 文件名与样本名对应关系
NCBI的SRA回传信息是基于文件名映射到样本名的。如果你的FASTQ文件名和BioSample里的sample_name对不上,NCBI的自动QC会直接报错。比如你的BioSample里叫GUTSS001,提交的FASTQ文件名却是Sample1_R1.fastq.gz,系统可以在网页表单里做手动映射,但这是人为因素最高发的一个环节。
我的习惯是:在交付上机前就把所有样本的文件名统一成"sample_name_platform_lane_read"的格式,例如GUTSS001_R1.fastq.gz、GUTSS001_R2.fastq.gz。这个习惯帮我省了非常多的映射麻烦,强烈建议你在实验设计阶段就定下命名规则。
4.2 FASTQ格式检查:读头和质量的坑
FASTQ格式本身不复杂,但继续往下挖就有讲究:NCBI的SRA接受PHRED+33编码的主流格式,Illumina平台现在基本都是这个编码方案。如果你用的是旧平台产生的数据,要注意质量值编码是PHRED+64还是+33。格式不一致虽然在NCBI的校验中不一定被拒,但会在后续别人下载跑分析时出错。
更实际的问题是:提交前你自己要先跑一遍FastQC,确认质量值分布、接头残留、碱基组成是否正常。NCBI不会替你质控,但它会记录你提交文件里统计到的平均质量值。如果你的文件里包含大量低质量片段,即便通过审核,下载方也可能在做质控时产生困惑。
4.3 双端序列的提交方式
16S测序绝大多数都是双端reads。SRA提交时,你可以把两个文件分开传,然后在SRA表单中把它们配对。配对的一个关键是:NCBI要求R1和R2的文件名必须高度一致,仅末尾不同(一般是一个_1一个_2,或_R1/_R2)。否则自动配对会失败。
如果你已经做了paired-end合并(如用VSEARCH、PEAR、FLASH合并成一条长序列),想让合并后的序列提交,那一般就不送去SRA了,而是拼接汇总后走GenBank的BankIt。偶尔也有研究者把合并后的FASTQ放到SRA,这在技术上是允许的,但NCBI官方建议保留原始未合并的FASTQ,这样信息不丢失。
4.4 原始数据是否要去接头和引物
这是个在Bioinformatics社区都讨论过很多遍的问题。我的建议是:提交原始数据时,保留测序仪直接下机的FASTQ,不要去接头、不要去引物、不要做任何长度修剪。
原因有三条:
- 审稿人和数据复用者希望看到最原始的状态。
- NCBI的SRA下载后,别人会根据自己的流程处理,你提前裁剪反而破坏了数据的可复用性。
- 你去引物后,读长会变;如果去引物过程出错,再想恢复原始数据就没机会了。
如果你实在需要"干净的"数据,可以同时提交原始FASTQ和处理后数据,但要在SRA表单的processing information里说明。不做特殊处理时,直接标明"Raw reads, no trimming"即可。
5. 提交后的事:状态追踪、release日期设置与常见退回原因
到了这一步,数据已经在NCB队列里跑流程了。但仍不能掉以轻心。我经历过一次提交后什么都不管,结果过了两周看邮件才发现被退回了,原因只是Sample属性里的一个日期格式错误,这本来一分钟就能改好。
5.1 提交后的审阅流程
提交完成后,你会在注册邮箱收到一封确认邮件,里面有一个"Submission ID",同时登录NCBI后可以在"Submissions"页面看到状态。状态会有这几个阶段:
- Processing:NCBI收到数据,开始自动校验,包括文件格式、元数据完整性、FASTQ校验等,一般几小时到一两天。
- In QC:人工审阅阶段,检查你填写的元数据是否合理,有时候会自动给你发来需要补充的信息,必须回复。
- Action needed:你的提交有问题,需要登录NCBI后台修改,或者通过邮件回复Explain。
- Released/Public:数据公开,可以获得最终的登录号(SRR号)或者hold状态(hold until date)。
整个过程如果一切顺利,一般3-5个工作日内就能拿到登录号。如果卡在"Action needed",不要慌,点进去看具体的报错信息,大部分都是属性写错或格式不对。
5.2 常见的驳回/警告原因以及如何应对
我把平时实验室成员踩过的坑汇总成一个表,方便你自查:
| 驳回/警告原因 | 具体情形 | 解决办法 |
|---|---|---|
| BioSample与SRA样本数不一致 | 某个样本在BioSample里漏建或重复 | 核实两边样本名,确保要上传的数据都能映射到BioSample |
| 日期格式错误 | 采样日期写成2024/3/1或2024年3月1日 | 统一改成2024-03-01格式 |
| 引物信息缺失 | 只写"16S V3-V4",未提供具体序列 | 在SRA表单的PCR primer region中填写正向和反向引物序列(如338F: ACTCCTACGGGAGGCAGCAG,806R: GGACTACHVGGGTWTCTAAT) |
| 定位信息缺失 | Environmental包里没填经纬度 | 按采样记录补填,允许精确到四舍五入的小数点后几位 |
| FASTQ文件名映射失败 | 文件列表与BioSample sample_name对不上 | 在SRA提交表中手动拖拽匹配,或者重新命名后覆盖上传 |
| 测序平台信息错误 | NovaSeq写成MiSeq | 对照测序报告填入准确平台信息 |
| 质控数据异常 | 平均质量过低,NCBI自动标记 | 回看实验室质控,结合FastQC报告评估后再决定是否继续提交 |
其中引物序列这一项,是期刊审稿人必然关注的内容,NCBI退回的可能性反而没那么大,但如果你自己提交时留空了,审稿人看SRA元数据时大概率会质疑。建议无论NCBI是否强制,都把引物序列写上。
5.3 release日期与数据发布策略
SRA提交时,有两个时间点很关键:Submission date和Release date。前者是你提交的日期,后者是数据何时公之于众的日期。NCBI默认release date是提交完成审阅后的一个固定日期,但你可以手动设置一个未来的日子——在论文正式上线前保持数据保密,论文见刊后自动公开。
具体操作:在SRA提交后台的对应项目下,选择"set release date",填写日期。要注意:
- hold状态最长可以设置到提交后三年,到期必须公开。
- 审稿人可以看到数据,但无法被普通公众访问。
- 论文正式published前,确保release日期已设为论文见刊当天或之后,否则数据会提前泄露给公众。
我自己的习惯是:在submit时就设置release date为计划投稿日期加四个月的一个"宽裕值",等论文真正接收后再调整到见刊日。这种策略平衡了文章盲审和提前公开风险。
6. 再说点实际操作中积累的经验:文件传输、备份和后续引用
这一节不是NCBI官方文档里会告诉你的,但我认为对顺利完成整个上传最有帮助。
6.1 大文件传输:网页上传之外的备选方案
当你手里的样本量上百个、FASTQ总量上T的时候,网页上传基本没法用。这时候我推荐两个方案:
- Aspera命令行(ascp):NCBI官方支持,速度快,支持断点续传。使用ascp时需要下载SRA提交页面的私钥文件,然后执行类似:
ascp -i /path/to/aspera_private_key -QTr -l 300M -k 1 user@submit.ncbi.nlm.nih.gov:/path/to/folder /local/data/directory参数的作用是:-l 300M限制带宽,避免占满实验室的网络;-k 1开启断点续传。这个命令我实测下来比网页稳定太多,尤其适合批量提交。
- SRA Toolkit中的辅助工具:老版本里有一些FTP上传插件,现在纯FTP已经越来越边缘化,但如果你们实验室网络对某些端口有限制,FTP仍然可以作为一个后备方案。
提醒一句:上传大的文件前,先确认本地磁盘有足够空间;文件上传过程中不要手动删源;最好准备一份MD5校验值,方便判断上传的压缩包是否有损坏。
6.2 上传数据的本地备份
NCB的SRA是一个数据归档系统,但它不会主动催你保留原始数据。我的习惯是:FASTQ原始文件在本地集群和外部硬盘上放双份,且专门建一个文件夹保存"已提交到SRA的数据清单",里面记录每个文件对应的SRR登录号、提交日期、格式,以及BioSample登录号。这样以后无论什么时候需要追溯,都能在一分钟内找到对应关系。
有人说"NCBI已经帮我存数据了,本地可以删",这种想法非常危险。数据显示NCBI的存储是可靠,但一旦你自己的数据有后续分析需求(比如重新质控、改变参数重新比对),本地没有原始文件就寸步难行。
6.3 后续引用与论文中的数据可用性声明
数据上传完成,拿到登录号后,记得在论文的方法学和Data Availability Statement里写明以下内容:
- SRA访问号(一般是SRP/PRJNA开头)
- BioProject访问号
- 个别样本的BioSample访问号
标准的写法类似:The raw sequencing data have been deposited in the NCBI Sequence Read Archive under the BioProject accession number PRJNA123456(对应SRA accession: SRP123456)。
在这里我还想强调:NCBI每个登录号都可以配合一个简单的"reviewer token"让审稿人在数据保密期访问。在提交SRA后,界面上会生成一个令牌字符串,一定要附在给审稿人的投稿信或数据可用性声明里。很多人在这一步忘了复制,审稿人会发邮件来催,白白耽误时间。
6.4 一个容易被忽略的小技巧:使用提交日志
如果你经常要上传多个项目的数据,强烈建议在本地维护一个提交日志。表中的列可以是:提交日期、项目名称、BioProject ID、BioSample ID、SRA ID、文件数量、总大小、release日期、对应论文、状态备注。有了这个日志,月底写总结、和编辑沟通数据问题时都能省很多事。它本质上就是给数据库提交这件事建立一个项目管理表。
另外,NCBI的Portal账号体系其实还内置了API接口,如果你们实验室有编程能力的成员,可以探索用Python/Perl脚本调用SRA的API来查询上传状态。不过对多数人来说,网页后台的可见状态已经够了,脚本属于高级玩法,这里不展开。
写在最后的个体经验
上传一次16S rDNA数据到NCBI,最花时间的地方从来不是网络的传输,而是把实验记录里的信息转换成NCBI能识别的元数据。用一句话概括我的体会:数据上传不是"传文件"这个动作,而是一次针对实验完整性的自我审阅。很多人会忽略这个环节,但恰恰是元数据写得好不好,决定了一批数据几年之后还有没有被人重用的价值。
借这篇分享的机会,也推荐大家在拿到登录号之后,去NCBI的SRA页面再自己搜一下自己提交的项目,确保检索结果里的所有信息是可读的、准确的。这是最简单也最踏实的一次最终确认。等你看到自己的数据在全球公共数据库中安安稳稳地躺着,那份"数据真的可用了"的感觉,是发文章那一刻给不了的。