
NCBI 的 16S 数据上传看起来就是填几个表、传几个文件但真正操作过的人都知道坑全藏在细节里。这几年我陆陆续续帮实验室和合作课题组提交过几十批 16S rDNA 数据从最初的摸索到后来形成一套固定流程中间踩过不少雷比如样品名不匹配被拒、表格里多了个空格导致一堆报错、上传到一半发现文件格式不对只能重来。这篇文章把我完整操作流程和踩坑记录整理出来给要搞 16S 扩增子测序上传的同学做个参考。先说一个核心判断向 NCBI 提交 16S rDNA 数据难点从来不是序列文件本身而是元数据metadata的组织。NCBI 的数据审核人员看不到你的原始实验记录所有信息都靠填表和文件命名来传递。所以我建议所有人在点开提交页面之前先花至少半天时间把样本信息、实验设计、文件格式整理清楚这一步做扎实了后面能省掉大量沟通和返工时间。1. 动手之前先搞清楚该走哪条提交通道1.1 判断你的数据形态克隆测序还是高通量测序16S rDNA 测序数据其实分两种完全不同形态NCBI 对它们的提交通道和要求也完全不一样。第一种是传统的克隆测序或者 Sanger 测序产物例如你从环境样品里挑选几十个阳性克隆送去测序得到的是一段段单独的 16S 基因序列通常以 FASTA 格式存在第二种是现在主流的高通量扩增子测序比如用 Illumina MiSeq 测 V3-V4 区或者 V4 区得到的是一批带有质量信息的 FASTQ 原始数据体量大、质量值多动辄几百 MB 甚至几个 GB。这两种形态决定了后续所有操作路线建议第一步就先明确自己手里的数据属于哪个类型。如果是单条或者几条 16S 序列走 GenBank 的 BankIt 提交路径如果是从某个处理流程比如 QIIME2、DADA2出来的高通量原始 FASTQ走 SRASequence Read Archive提交路径。两者不可混用混了往往要推倒重来。1.2 三大提交系统怎么选NCBI 与序列相关的提交系统主要有三个GenBank、SRA、BioSample/BioProject。它们的分工简单说就是BioProject 描述你的研究项目整体BioSample 描述每个样本的来源和属性GenBank 接收带注释的单条序列SRA 接收大规模测序原始数据。很多时候提交 16S 数据的人会同时用到这三个系统SRA 表单里会强制关联 BioProject 和 BioSample。我第一次提交时就理解错了以为直接在 SRA 页面上传 FASTQ 就行结果快到最后一步才发现必须先生成 BioSample 的 accession编号又返工去创建。所以我的建议是哪怕是看起来最基础的 SRA 提交也一定把 BioProject 和 BioSample 这两层前置信息准备好。1.3 账号注册与准备工作NCBI 的所有提交功能都需要账号登录。注册流程很简单用邮箱就能完成但有一个实操细节要特别注意账号注册时用的邮箱最好是你这个项目对应的正式工作邮箱后面所有审核通知、修改要求都会发到这个邮箱一旦换邮箱或者用个人临时邮箱很容易错过审核人员的反馈导致提交卡在 pending 状态好几天。登录后建议先花几分钟检查一下浏览器环境NCBI 的提交页面非常依赖 JavaScript 和 Cookie如果你平时浏览器开了比较强的隐私保护或者用了屏蔽脚本插件表单有可能出现下拉选项加载不出来、日期选择器失灵的情况。我自己遇到过两次类似问题换成普通浏览器模式就正常了不算大问题但确实会浪费几分钟。2. 元数据先行BioProject 和 BioSample 的创建要点2.1 为什么元数据比序列本身更耗时外界经常把上传数据理解成把文件丢上去但 NCBI 对 16S 数据的要求远不止如此它会要求你提供每个样本的采集地点、采集日期、宿主或环境类型、DNA 提取方法、PCR 引物序列、测序平台、文库构建方式等信息。这些元数据是后续数据库使用者做生态分析和数据质量评估的重要依据所以审核人员会逐项核验。这就是为什么我强调元数据先行。一次完整的 16S 提交中创建 BioProject 和 BioSample 以及整理 SRA 表格往往占据 60% 以上的工作量而真正上传文件反而很快。与其到填表的时候东翻西找以前实验记录不如提前把所有样本信息汇总成一个总表之后每一步都从这个总表复制粘贴。2.2 BioProject 创建实操打开 NCBI 首页登录后进入 Submit 页面选择 BioProject。创建时需要填写的核心信息包括项目标题建议直接写成“16S rRNA gene amplicon sequencing of [样品类型]”这种格式清晰明了Project type这里要注意选择与你实验设计匹配的选项比如环境样品就选 Metagenome纯培养菌株的扩增子测序则可以选其他对应类型还有数据发布方式一般默认“Release after publication”即可如果你希望数据在某个日期自动公开也可以设置具体的 hold until date。项目描述部分可以写上你的研究对象、研究目的、16S 扩增区域比如 V3-V4 区等。NCBI 对描述语言要求不高用简洁准确的英文即可。但千万别留空审核人员会留意这部分描述太含糊容易触发额外的人工审核邮件来回沟通非常费时。创建完成后页面会生成一个以 PRJNA 开头的 BioProject accession比如 PRJNA1234567。这个编号一定要记下来后面创建 BioSample 和提交 SRA 时都需要填入。我通常会把编号统一记录在项目文档最开头方便后续每次使用。2.3 BioSample 填写的关键字段与常见坑BioSample 的创建分两步先注册提交submission再录入样本表。注册时选择 Sample type这对 16S 数据来说非常关键如果是人类肠道或皮肤等宿主相关样本应选择 Human 相关类型如果是土壤、水、沉积物等环境样本应选择 Environmental/Metagenome如果是某种纯培养菌株则选择 Bacteria 等对应微生物类型。选错了 Sample type会导致后续必填字段发生变化比如环境样本会强调查集地点的经纬度宿主相关样本会强制要求宿主名称和采集部位。样本表可以用网页表单一行一行填也可以先下载 Excel 模板其实是 TSV 表格批量填写后再上传。我强烈推荐模板方式尤其是样本数量超过十个时网页逐行录入效率太低而且容易因为浏览器卡顿丢内容。模板中常见的必填字段包括sample_nameorganismisolatecollection_dategeographic locationcountry 和 lat_lonisolation_source其中 organism 字段的格式要求非常严格必须是有效的物种学名比如 Escherichia coli不能写 E. coli 缩写或者全大写。如果是不确定种的样品也要尽量填到属一级比如 Pseudomonas sp.并配合其他描述字段说明情况。这里的典型坑在于只写 sp. 而不加属名系统直接报错反之如果物种名拼写有误或者用了一些不符合命名规范的别名也会被卡住。2.4 元数据表格的格式规范关于表格格式有几个容易忽略的规定。第一表格必须保存为 Tab 分隔的 TSV 格式Excel 默认保存的 xlsx 或 csv 都不能直接上传第二单元格内不要使用换行符多行信息尽量放在同一个单元格用分号分隔第三日期格式建议统一为 MM/DD/YYYY 或 ISO 格式避免歧义第四经纬度格式要写成“纬度 经度”并用空格或逗号分隔例如“35.1246 117.2845”。我第一次提交时就在经纬度上栽了跟头当时填成了东经西经方向字符如 35.1246 N审核人员要求改成十进制小数格式。后来我统一在整理阶段就把所有坐标换算好这里建议大家可以提前用在线坐标系转换工具把度分秒转成十进制避免后续反复修改。3. SRA 高通量数据提交步骤实录3.1 登录 Submission Portal 的流程SRA 的提交页面在 NCBI 的 Submit 列表中进入选择 SRA。登录后会看到创建新 submission 的按钮点击后进入 SRA Submission Portal。整体流程分六个步骤Submitter提交者信息、General information一般信息、Project关联项目、Sample关联样本、Files文件、Overview总览确认。页面左侧会有步骤条提示当前进度右侧是表单内容。很多第一次操作的人会在 General information 这一页纠结很久其实这里主要就是填 submission 标题、释放日期、以及一个可选的 SRA 元数据表格模板下载。释放日期Release date我建议结合论文发表计划设置但注意设置太远比如超过 3 年有时反而会被审核人员要求解释原因。3.2 填写 Submission 页面各模块Submitter 模块会自动读取你账号里的信息一般不用改动只需要确认一下联系人邮箱是否正确。General information 模块有几个必选项其中 Sequence type 这一项有人会选 cDNA 或 genomic一定要选对了16S 扩增子测序属于 genomic DNA 扩增不是 RNA 测序所以 Sequence type 应选 Genomic or amplicon。有好几次我看有人误选成 Transcriptomic 或者 Metagenomic结果和 library_strategy 信息矛盾审核等了很久才给提示修改。Project 模块会让你选择已经创建好的 BioProject或者现场创建一个新的。这里需要注意一个 BioProject 通常对应一个研究项目如果你有多个不同实验目的的 16S 数据集尽量分别创建 BioProject不要把不同实验的数据混在一个项目里否则后期管理分析元数据时非常混乱。Sample 模块要求你把 BioSample 的 accession 贴进来也可以通过上传 BioSample 表格一次性完成。页面也支持直接在当前 submission 里创建 BioSample但我的经验是提前单独创建好 BioSample 会更有条理因为样本的属性确认可以反复修改而与 SRA submission 耦合后改起来就没有那么直观。3.3 序列文件上传方式对比FTP 与 Aspera上传文件这一步让不少人头疼。SRA 提供两种主要上传方式FTP 和 Aspera。FTP 是最传统的方式用 FileZilla 之类的客户端即可速度取决于你的网络环境国内直连 NCBI 的 FTP 有时候不算快胜在稳定、操作直观。Aspera 是一种基于 UDP 的高速传输工具速度通常比 FTP 快很多倍适合几百 MB 甚至 GB 级别的大文件。如果文件量比较大我强烈建议配置 Aspera。NCBI 官方文档里有详细的安装指引大致是在本地安装 Aspera Connect 客户端然后用命令行或图形界面连接 NCBI 分配的 private FTP 目录把 FASTQ 文件传到 upload 文件夹内。需要特别注意的是NCBI 给每个 submission 生成了一个专属上传目录你只能在这个目录内操作不要自己随意改路径。两种方式都要求上传结束后回到 SRA 页面的 Files 步骤填写文件名。这一步是很多人容易出状况的地方上传了文件但忘了在页面上登记文件名或者登记的路径与实际上传位置不一致系统会一直报“file not found”。一定要在 upload 完成后返回页面把每个 fastq.gz 文件名和路径准确填进表格两者完全匹配才能进入下一步。3.4 metadata 表格逐列讲解SRA 表单页面提供一个 metadata 表格下载入口通常是 TSV 格式。这个表是提交的核心列比较多但真正需要重点理解的其实就那么两列library 信息和 file 信息。library_strategy 对 16S 来说必须是 AMPLICON不要写 WGS。16S 是特定区域扩增子WGS 是全基因组鸟枪法测序概念完全不同。library_source 填 GENOMIClibrary_selection 填 PCRlibrary_layout 根据你的测序方式填 SINGLE 或 PAIRED。instrument_model 一栏可选 Illumina MiSeq、Illumina HiSeq 2500、Illumina NovaSeq 等务必与你实际上机的仪器一致这个信息影响数据可比性不能随意填写。design_description 是自由文本建议写清楚 PCR 引物对和扩增区域比如“PCR amplification of 16S rRNA gene V3-V4 region using primers 341F and 805R”。另外还有一个容易忽略但很重要的列是 filename如果双端测序会有两个文件名要分行填写而不是用逗号拼在一起。每行一个文件多行对应双端 R1 和 R2顺序无所谓但名称不能错。3.5 提交后状态跟踪与 release 设置所有信息填完、文件传好后提交会进入 Overview 总览页。这里会把你的 submission、BioProject、BioSample、各文件大小和状态汇总展示务必逐行核查一遍特别是 accession 是否都已出现。确认无误后点击提交按钮系统会给一个 submission ID并进入“submitted”状态。此后审核通常需要几个工作日。期间可以在 SRA Submission Portal 里看到状态也可以随时补充或修改信息。如果是需要尽快拿到 accession 去投稿有的审稿系统会要求提供 SRA 登录号可以考虑把 release date 设置为论文接收后自动公开但同时“private”状态下多数数据库也会提供accession号这一点对投稿是有帮助的。需要注意的是private 状态的数据不等于审核通过两者还是要分开理解。审核中途如果审核人员通过邮箱提出修改建议请尽量在 48 小时内响应处理否则容易滞留更久。4. 单条 16S 序列的 GenBank/BankIt 提交路径4.1 GenBank 提交方式对比如果你手里是克隆测序得到的单条 16S 序列想提交到 GenBank获得以 或 开头的登录号NCBI 提供两个常见工具BankIt 和 Submission Portal。现在的流程基本都在 Submission Portal 里完成界面与 SRA 提交类似按步骤引导提交。整体思路也是先关联 BioProject/BioSample再填序列信息。单序列提交相对简单但有两个点非常关键序列本身要去载体、引物和其他非目标区域序列方向尽量统一为 16S rDNA 正向编码链方向。提交前建议用 BLAST 做一个初步鉴定看看序列与数据库中已知 16S 序列的一致性这会帮助你在提交表单里正确填写基因产物名称和生物体信息。4.2 BankIt 提交的序列准备FASTA 格式准备时要注意序列名能包含字母、数字、下划线不要用空格或特殊符号。碱基序列只能包含 A、T、C、G以及代表不确定碱基的 IUPAC 简并符号比如 R、Y、N但不要过多使用 N。如果序列里含有引物序列没有去除干净会在后续自动注释中被判断为基因间区影响提交通过的效率。我习惯在提交前先用 NCBI 的 VecScreen 检查是否存在载体污染宁可多花几分钟检查也不要等审核反馈再去改。对于 16S 序列BankIt 会要求输入 PCR 引物序列这一步建议把引物信息完整填上包括正反向引物序列因为很多数据库后续质量和可比性评估都依赖引物信息。如果用的是通用引物 27F/1492R 或 341F/805R也要按实际填。4.3 注释与特征表填写BankIt 页面会提供自动注释功能。上传序列并经系统识别后它会尝试预测 CDS、rRNA 等特征。对于 16S 来说通常只需要一个“rRNA”特征feature 名称写“16S ribosomal RNA”产物写“16S ribosomal RNA”如果系统没有自动识别也可以手动加特征。注意一个常见误区不要把 16S rDNA 序列标注为“CDS”或“gene”。16S rDNA 是一个 rRNA 基因特征应该是 rRNA。标注错误会被审核人员退回。如果在同一段序列里还检测到其他基因片段也只需要把你测序验证过的区域正确标注不要在信息不全时凭预测乱加。4.4 获取 accession number 后的后续工作提交成功后系统通常会在短时间内直接给出正式 accession也可能进入人工审核流程。得到 accession 后建议第一时间把所有序列的登录号回填到论文手稿的数据可用性声明Data Availability Statement中同时确保在 BioProject 页面能够链接到所有序列记录。如果是大量克隆序列不要一 条条手工提交那样效率太低且容易重复。可以使用 BankIt 的批量模式或者先把序列整理成带注释的 FASTA 批量上传整理好的表格一次搞定几十条序列。这里就要再次强调提前整理好样本信息表批量提交时能省掉大量重复劳动。5. 我踩过的坑与排查经验5.1 文件名和格式问题文件命名是报错重灾区。SRA 要求上传的文件名只能包含字母、数字、下划线、中横线、点号不能有空格。很多人从测序公司拿到的原始文件名经常含有中文、空格或特殊字符比如“sample 01(北京).fastq.gz”这种名字在 SRA 表格里根本没法提交。建议所有 FASTQ 文件在开始上传之前就统一改名格式建议为“项目名_样本名_R1.fastq.gz”避免任何歧义。另外FastQ 文件是否压缩也要重视。SRA 官方接受 fastq 以及 fastq.gz推荐使用 gzip 压缩既节省传输时间也能降低网络中断风险。压缩本身不会改变内容但是要注意 gzip 与普通 zip 的区别必须使用 gzip 方式压缩后缀才会是 .gz这一点很多新手容易混淆。5.2 样品命名与重复提交问题我见过最典型的错误是 BioSample 表格里的 sample_name 与 SRA metadata 表格里的 sample_name 不一致哪怕只是多了个空格系统都可能认为这是两个样本导致最终提交关联不上或者出现 warning。这种情况只要信息一多排查起来非常费劲。我的做法是把 BioSample 的表格直接下载下来在 SRA metadata 表格里通过公式或者查找函数精确引用样本名列从根本上杜绝拼写不一。还有一种情况是同一个样本不小心提交了两次或者双端测序的 R1、R2 被当成两个样本分别提交。这会让数据库出现重复记录虽然审核人员不一定会立即发现但会影响后续数据使用者的准确率。所以提交前务必核对样本数量与实验设计数量一致尤其注意双端文件的配对关系。5.3 元数据必填字段遗漏NCBI 对必填字段的要求有时候不是一眼能看全的少量字段在模板里是不会提前标红而是等系统在提交时强制校验。最常见的遗漏是 collection_date 和 lat_lon。有些同学觉得数据是别人提供的或者已经过了很久实在记不清具体日期就随便填一个 01/01/2020这其实不符合要求。如果确实无法精确到日可以填写到年比如“2020”或者填写合理的日期范围但不要留空或者乱写。经纬度同理如果样本是跨多个地点的池化样本可以在 lat_lon 列里填写池化区域的中心坐标并同时在 isolation_source 或描述字段里说明。千万别把两个地点的坐标写成“35.1, 117.2; 36.2, 118.3”这种无法解析的格式系统解析不了又会报错。遇到这种情况建议拆成两行每行对应一个样本如果确实是同一个样本但来自不同位置则需要重新审核实验设计记录。5.4 审核周期与序列更正提交后最常见的状态是“submitted”这个状态并不意味着完成。NCBI 审核人员会逐条检查元数据和序列信息如果发现问题会用邮件联系你提供更多信息或者修改。这个周期短则两三天长则一周多完全取决于审核队列和你的响应速度。如果审核人员要求修改序列或样本信息你需要登录相应的 submission 页面进行编辑编辑完成后重新提交。这里有一个容易忽略的点修改文件内容时务必使用与原提交完全一致的文件名或者同时更新表格里的文件名否则系统会认为文件不一致或找不到文件。我吃过一次亏把修改后的 FASTQ 文件重命名成了 v2 版本但表格里还是原名称结果状态一直显示失败折腾了两次才明白问题出在哪里。6. 一些实用的少踩坑心得写到这里再分享几个常规文档里不会写、但实测很有用的经验。第一任何时候都不要直接拿测序公司给的原始文件名作为 SRA 提交文件名。公司命名体系千奇百怪有的是内部编号有的会带探针索引信息直接上传不仅容易被拒而且以后自己复盘数据时也别扭。每收到一批数据第一时间按“项目-样本-R1/R2”规则重命名并保留副本再开始分析流程这是一个好习惯。第二FASTQ 文件的完整性校验不能省。上传前本地用 md5sum 或者 gzip -t 检查每个压缩包是否完整。如果你在分析流程中已经对文件做过修剪、去引物等操作务必要确定提交的是原始下机数据raw data而不是过滤后的 clean data。NCBI 的标准是原始序列数据保证可追溯性很多期刊也明确要求提交 raw reads。所谓“clean data”如果做了质量修剪后再提交审核时会因为序列长度或质量分布异常被询问原因。第三所有表格信息尽可能在离线端用脚本或者 Excel 函数做一次查重。比如 sample_name 是否唯一、文件名是否重复、经纬度范围是否合理纬度 -90 到 90经度 -180 到 180。这些小检查看似基础但真的能避免大量低级返工。我第一次提交 48 个样本时就是因为表格里经纬度顺序填反了被审核人员指出当时花了整整半天去找哪几行有问题后来学乖了每次提交前都会跑一段几行的小脚本复查一下数值范围。第四关于多平台数据合并。如果你同一个项目用了多台测序仪比如 MiSeq 和 NovaSeqSRA 表格里应按不同 run 分行填写每行对应不同文件而不要试图把两台仪器的数据拼在一个文件里。每行都要标注对应 instrument_model。这样做不仅符合提交要求也给后续别人做批次效应分析留下了必要信息。从整体上看向 NCBI 提交 16S rDNA 数据并不复杂只要把元数据这条“主线”理清楚本着“早整理、少返工”的原则基本可以很顺利地把数据共享出去。数据库本身也在不断完善界面和校验规则但底层的数据规范意识是永恒不变的能力要求。希望我的这些经验能帮你少走一些弯路早点拿到属于你的登录号。