百迈客(BMKCloud)生信分析实习全面复盘 — 面试追问 + 技术深度 + 真实场景
百迈客云(BMKCloud)是国内领先的生物信息云平台,提供 20 大分析平台和 100 多款工具。我在百迈客实习期间主要负责微生物方向的生信分析流程投递与结果质控。
在百迈客实习的日常工作是标准化流程:接到销售或项目经理的下单信息后,按照 SOP 进行数据质控、流程投递、结果检查和异常处理。
下单信息通常包含:客户名称、样本类型(土壤/粪便/水体等)、测序类型(16S/宏基因组/细菌基因组)、样本数量、特殊要求。
百迈客云平台(biocloud.net)上已有封装好的流程。操作步骤:登录平台 → 选择分析类型 → 上传/关联数据 → 设置参数 → 提交任务。大部分参数使用默认值,特殊样本才需要调整。
| 分析类型 | 关注指标 | 合格标准 |
|---|---|---|
| 16S 多样性 | ASV 数量、Shannon 指数 | ASV > 100; Shannon 通常 2~6 |
| 宏基因组 | 注释率、基因数量 | KEGG 注释率 > 40% |
| 细菌基因组 | contig 数、N50、是否成环 | 完成图:1 个环形 contig |
数据不合格时:记录问题 → 截图 FastQC 异常模块 → 反馈给项目经理 → 讨论是否需要重新提取/重新上机。常见异常包括:Q30 低、GC 偏移、adapter 残留严重。
FastQC 是 Illumina 测序数据质控的标准工具。它会对每个 FASTQ 文件生成 11 个模块的报告,用 PASS(绿色)/ WARN(橙色)/ FAIL(红色)标记。面试中被问到"你怎么做质控"时,必须能说出关键模块。
| 模块名 | 看什么 | 合格/异常标准 |
|---|---|---|
| Per base sequence quality | 每个位置的碱基质量得分(Q值) | 绿色区域(Q>28)为好;尾部降到橙色(Q20~28)很常见;红色( |
| Per sequence quality scores | 所有 reads 的平均质量分布 | 峰值应 > Q30;如果有大量低质量 reads 要警惕 |
| Per base sequence content | 每个位置 ATGC 的比例 | 理想情况 A=T, G=C 且全长稳定;前 10bp 波动是正常的(random hexamer bias) |
| Per sequence GC content | 所有 reads 的 GC 含量分布 | 应为正态分布;双峰 = 混了不同物种的数据(重点!) |
| Per base N content | 每个位置 N(未知碱基)的比例 | < 5% 正常;> 20% 有问题 |
| Sequence Duplication Levels | reads 重复程度 | WGS 大部分应只出现 1 次;16S/扩增子高重复是正常的 |
| Adapter Content | reads 中残留的 adapter 序列 | > 5% WARN,> 10% FAIL;需要用 Trimmomatic/fastp 去除 |
MultiQC 把所有样本的 FastQC 结果合并到一个页面,方便一次看几十上百个样本的整体质量趋势。重点看:哪些样本是异常值(Q30 偏低、GC 偏移、数据量不足)。
发现过程:FastQC 的 "Per sequence GC content" 模块显示双峰,不是正常的正态分布
排查思路:正常微生物样本 GC 分布应该是单峰。双峰说明可能混了两种 GC 含量差异大的物种的数据(比如混了宿主 DNA)
解决方案:用 Kraken2 快速扫一遍 reads,看是否有大量宿主序列。如果确认混数据,反馈给项目经理协调处理
16S rRNA 基因(细菌)和 ITS 区域(真菌)是微生物多样性分析的"条形码"。在百迈客,这类分析有标准化流程,我的工作是投递流程 + 检查结果 + 处理异常。
平台已封装好 QIIME2 流程。操作步骤:上传双端测序数据 → 选择引物区域(V3-V4 / ITS1)→ 设置质控参数 → 选择分类注释数据库(Silva / UNITE)→ 提交。
| 对比项 | OTU(聚类) | ASV(去噪) |
|---|---|---|
| 方法 | 按 97% 相似度聚类 | DADA2 建模纠错,保留真实序列 |
| 分辨率 | 种级别 | 可达到株水平 |
| 可重复性 | 不同数据集聚出的 OTU 不可比 | ASV 序列固定,可跨研究比较 |
| 当前主流 | 逐渐被取代 | 现在的主流方法 |
| 指标 | 正常范围 | 异常信号 |
|---|---|---|
| ASV 数量 | 通常几百到几千 | 太少(<50) 可能测序深度不够或样本有问题 |
| Shannon 指数 | 2~6(因样本类型而异) | 极低(<1) 可能数据有问题或样本太单一 |
| 稀释曲线 | 趋于平台 | 不平 = 测序深度不够 |
| 分类注释率 | > 70% 注释到属级 | 太低可能数据库版本旧或引物区域不匹配 |
细菌基因组完成图是将一个菌株的基因组组装成完整的环形序列(或几条完整的replicon)。这需要二代(Illumina)+ 三代(ONT)测序数据混合组装。
优点:精度高(错误率 < 0.1%),成本低
缺点:读长短(150~300bp),遇到重复区域(如 rRNA operon ~5kb)就断了
白话:像拼拼图,碎片太小,遇到大面积纯色区域就拼不上
优点:读长超长(可达数百kb),能跨越重复区
缺点:错误率相对高(单次约 3~5%,但已大幅改善到 >99% Q20 化学)
白话:像有几根很长的线索,虽然线索本身不完全准确,但能告诉你碎片之间的连接关系
Oxford Nanopore Technologies(ONT)的核心是一个嵌入人工膜中的纳米级蛋白孔(CsgG 蛋白孔,用于 R9/R10 流动槽,直径约 1nm)。测序时在膜两侧施加电压,DNA 单链在马达蛋白(motor protein)的控制下匀速穿过纳米孔。四种碱基(A/T/G/C)大小形状不同,穿过时对电流的阻断程度不同,产生特征性电信号,再通过机器学习算法(base calling)翻译成碱基序列。
白话类比:想象一个人蒙着眼摸珠子过山洞——不同形状的珠子会让手感不同(电流变化不同),通过手感就能判断珠子的种类。
Unicycler 是目前细菌基因组 short-read-first 混合组装的标准工具(Ryan Wick 2017 开发,最新版 v0.5.1,2024年更新)。
| 步骤 | 做什么 | 白话解释 |
|---|---|---|
| Step 1: SPAdes 组装 | 用 Illumina 短读段构建 de Bruijn 图(多 k-mer 值),得到高精度但有"断口"的图 | 先用精度高的小碎片拼出大部分拼图,但有些地方拼不上 |
| Step 2: 长读段 Bridging | 把 ONT 长读段比对到组装图上,利用长读段跨越重复区域,把断开的 contig "桥接"起来 | 用长线索把拼不上的碎片连接起来,告诉你"A 碎片后面接的是 B 碎片" |
| Step 3: 最终优化 | 合并路径、去除冗余、检测环形 replicon(v0.5.0 移除了内置 Pilon 校正,需要额外做) | 整理连接后的结果,检查是否成环(完成图标志) |
| 指标 | 完成图标准 | 说明 |
|---|---|---|
| Contig 数量 | 理想 1 条(染色体)+ 若干质粒 | 太多 contig 说明没拼好 |
| 是否成环 | GFA 文件中有 circular 标记 | 细菌染色体是环形的,成环 = 完成图 |
| N50 | 接近基因组大小 | 完成图 N50 ≈ 基因组长度 |
| 总长度 | 与近缘种参考基因组接近 | 偏差太大要排查 |
ANI(Average Nucleotide Identity,平均核苷酸一致性)是目前原核生物物种鉴定的"金标准",替代了传统的 DNA-DNA 杂交(DDH)方法。
将查询基因组切成约 1000bp 的片段 → 比对到参考基因组 → 计算所有匹配片段的核苷酸一致性百分比 → 取平均值。FastANI 用了免比对的近似映射算法,速度快 1000 倍以上。
| ANI 值 | 含义 | 分类学解释 |
|---|---|---|
| > 95~96% | 同种 | 这是被广泛接受的物种分界线(对应 DDH 70%) |
| 80~95% | 同属不同种 | 近缘种 |
| < 80% | 远缘 | 可能不同属 |
| ~100% | 几乎相同 | 同种的不同菌株或克隆 |
95% 标准的来源:Jain 等人 2018 年在 Nature Communications 发表的里程碑研究,分析了 ~90,000 个原核基因组(80 亿个基因组对),发现 99.8% 的基因组对符合"种内 >95%、种间 <83%"的规律,存在明确的遗传不连续性(genetic discontinuity)。
在百迈客的宏基因组分析主要是"投递流程 + 检查结果",和毕设自己从头搭建 pipeline 不同。但面试要把这两段经历的区别讲清楚。
| 对比项 | 实习(百迈客) | 毕设(T2D 项目) |
|---|---|---|
| 工作方式 | 使用公司云平台投递封装好的流程 | 自己在服务器上搭建 pipeline |
| 数据来源 | 客户送样测序 | 公共数据库下载(NCBI SRA) |
| 分析深度 | 标准化报告(物种+功能注释) | 深入到统计建模(随机森林+机器学习) |
| 问题处理 | 反馈给项目经理 | 自己排查解决 |
| 工具链 | 平台封装(不直接接触命令行) | MetaPhlAn/HUMAnN/Kraken2 命令行 |
| 核心价值 | 流程标准化、结果质控、客户服务 | 科学问题驱动、数据挖掘 |
结果检查标准:
常见原因:数据格式不对(如 header 不规范)、文件上传不完整、参数设置超出范围
排查步骤:查看平台报错日志 → 检查输入文件 → 确认参数
解决方案:大部分是数据格式问题,用 seqkit/seqtk 检查修复后重新投递
交付给客户前需要确认:所有分析模块正常完成、图表清晰、数据文件完整(原始注释表 + 汇总表 + 可视化图)、报告 PDF 排版正确。
面试官最喜欢问"你遇到过什么问题?怎么解决的?"以下四个场景是实习中常见的真实问题,按"发现 → 排查 → 解决"三步法回答。
发现:FastQC 报告中 "Per base sequence quality" 模块显示尾部大面积进入红色区域,统计发现 Q30 比例 < 80%
排查:检查是否所有样本都这样(如果是,可能是这批上机有问题)。查看 Adapter Content 是否严重(adapter 残留会拉低质量)。看是全长都差还是只有尾部差。
解决:如果只是尾部质量下降,用 fastp/Trimmomatic 截断尾部低质量碱基后可以继续分析。如果整体质量都差,反馈给项目经理,建议重新测序。
发现:FastQC "Per sequence GC content" 出现明显双峰,偏离理论正态分布
排查:双峰意味着数据里可能混了两种 GC 含量差异大的来源。用 Kraken2 做快速分类,看 reads 组成。检查是否有大量宿主(人/小鼠)序列混入。
解决:如果确认宿主污染,用 bowtie2 比对宿主基因组后去除宿主 reads 再继续分析。如果是样本混串,需要重新制备文库。反馈给项目经理并记录在质控报告中。
发现:细菌基因组组装后产出了上百条 contigs,而正常细菌基因组应该只有 1 条染色体 + 若干质粒
排查:检查 ONT 长读段数据量和质量是否足够(理想 > 50x 覆盖度)。查看 Illumina 数据的覆盖深度。用 Bandage 查看组装图,看是否有大量断裂节点。
解决:如果 ONT 数据量不足(<30x),长读段无法有效桥接,需要追加测序。如果数据充足但组装碎,检查是否有严重污染(多个菌株混在一起)。纯培养不纯是这种情况的常见原因。
发现:fastANI 比对结果最高 ANI 只有 92~93%,低于 95% 种分界线
排查:这说明该菌株可能不属于数据库中任何已知种,可能是潜在新种。用 GTDB-Tk 做更全面的分类学定位。检查 16S 序列是否与数据库中最近种 < 98.65% 相似。
解决:如果确认是潜在新种,在报告中标注"与最近缘种 XX 的 ANI 为 YY%,低于 95% 种分界线,可能为潜在新种"。并建议客户结合表型鉴定等进一步确认。这种结果对客户来说可能是好消息(发现新种)。
以下问答按照"问题 → 参考回答"格式整理。回答要点:具体、有例子、展示思考过程。不要只说"我做过XX",要说"我做 XX 的时候遇到了 YY,通过 ZZ 解决的"。