实习经历面试问答

百迈客(BMKCloud)生信分析实习全面复盘 — 面试追问 + 技术深度 + 真实场景

实习工作总览

百迈客云(BMKCloud)是国内领先的生物信息云平台,提供 20 大分析平台和 100 多款工具。我在百迈客实习期间主要负责微生物方向的生信分析流程投递与结果质控。

日常工作流

接单 数据QC 流程投递 结果检查 异常处理 报告交付

三大分析方向

16S/ITS 微生物多样性

  • QIIME2 标准流程
  • DADA2 去噪 → ASV 表
  • Alpha/Beta 多样性分析
  • 物种分类注释

宏基因组分析

  • 物种注释(Kraken2/MetaPhlAn)
  • 功能注释(KEGG/COG/CAZy)
  • 基因预测与丰度计算
  • 多样性与差异分析

细菌基因组完成图

  • Illumina + ONT 混合组装
  • Unicycler 混合组装流程
  • ANI 物种鉴定(>95% 同种)
  • 完成图质量评估
01 日常工作流程 — 从接单到交付 核心流程

在百迈客实习的日常工作是标准化流程:接到销售或项目经理的下单信息后,按照 SOP 进行数据质控、流程投递、结果检查和异常处理。

1. 接到下单信息

下单信息通常包含:客户名称、样本类型(土壤/粪便/水体等)、测序类型(16S/宏基因组/细菌基因组)、样本数量、特殊要求。

2. 数据质控(第一步也是最关键的一步)

# 1. 用 FastQC 查看原始数据质量 fastqc *.fastq.gz -o fastqc_results/ -t 8 # 2. MultiQC 汇总所有样本的 FastQC 报告 multiqc fastqc_results/ -o multiqc_report/ # 3. 重点查看:Q30 比例、GC 含量分布、Adapter 污染情况 # Q30 > 80% 算合格,低于 80% 需要反馈给项目经理

3. 投递分析流程

百迈客云平台(biocloud.net)上已有封装好的流程。操作步骤:登录平台 → 选择分析类型 → 上传/关联数据 → 设置参数 → 提交任务。大部分参数使用默认值,特殊样本才需要调整。

4. 结果检查要点

分析类型关注指标合格标准
16S 多样性ASV 数量、Shannon 指数ASV > 100; Shannon 通常 2~6
宏基因组注释率、基因数量KEGG 注释率 > 40%
细菌基因组contig 数、N50、是否成环完成图:1 个环形 contig

5. 异常处理

数据不合格时:记录问题 → 截图 FastQC 异常模块 → 反馈给项目经理 → 讨论是否需要重新提取/重新上机。常见异常包括:Q30 低、GC 偏移、adapter 残留严重。

面试官问"你一天的工作流程是什么"时,按 接单 → QC → 投递 → 检查 → 异常处理 → 交付 回答,展示你有 SOP 意识和质量把控能力。强调你不是只点按钮,而是会看结果、判断异常。
02 数据质控深度解析 — FastQC/MultiQC 全模块拆解 核心技能

FastQC 是 Illumina 测序数据质控的标准工具。它会对每个 FASTQ 文件生成 11 个模块的报告,用 PASS(绿色)/ WARN(橙色)/ FAIL(红色)标记。面试中被问到"你怎么做质控"时,必须能说出关键模块。

FastQC 关键模块详解

模块名看什么合格/异常标准
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 Levelsreads 重复程度WGS 大部分应只出现 1 次;16S/扩增子高重复是正常的
Adapter Contentreads 中残留的 adapter 序列> 5% WARN,> 10% FAIL;需要用 Trimmomatic/fastp 去除

MultiQC 汇总报告

MultiQC 把所有样本的 FastQC 结果合并到一个页面,方便一次看几十上百个样本的整体质量趋势。重点看:哪些样本是异常值(Q30 偏低、GC 偏移、数据量不足)。

# MultiQC 一键汇总 multiqc fastqc_results/ -o multiqc_report/ # 输出关键文件: # multiqc_report.html — 交互式汇总报告 # multiqc_data/ — 可解析的汇总数据

混数据排查经验(实战重点)

现象:GC 含量分布出现双峰

发现过程:FastQC 的 "Per sequence GC content" 模块显示双峰,不是正常的正态分布

排查思路:正常微生物样本 GC 分布应该是单峰。双峰说明可能混了两种 GC 含量差异大的物种的数据(比如混了宿主 DNA)

解决方案:用 Kraken2 快速扫一遍 reads,看是否有大量宿主序列。如果确认混数据,反馈给项目经理协调处理

污染验证

# Kraken2 快速检测宿主/其他污染 kraken2 --db /path/to/kraken2_db \ --paired sample_R1.fastq.gz sample_R2.fastq.gz \ --output kraken2_output.txt \ --report kraken2_report.txt \ --threads 8 # 看 report 里宿主(如 Homo sapiens)占比 # 如果人源 reads > 10%,说明有宿主污染
回答"遇到过数据质量问题吗"时,讲 GC 双峰的例子最有说服力。流程:发现 FastQC 异常 → 怀疑混数据 → Kraken2 验证 → 确认宿主污染 → 反馈处理。这个回答体现了你有独立排查问题的能力,不是只会看 PASS/FAIL。
03 16S/ITS 微生物多样性分析 — QIIME2 流程实操 扩增子

16S rRNA 基因(细菌)和 ITS 区域(真菌)是微生物多样性分析的"条形码"。在百迈客,这类分析有标准化流程,我的工作是投递流程 + 检查结果 + 处理异常。

百迈客平台实际操作

平台已封装好 QIIME2 流程。操作步骤:上传双端测序数据 → 选择引物区域(V3-V4 / ITS1)→ 设置质控参数 → 选择分类注释数据库(Silva / UNITE)→ 提交。

QIIME2 标准流程(面试需要理解原理)

# 1. 数据导入 qiime tools import \ --type 'SampleData[PairedEndSequencesWithQuality]' \ --input-path manifest.tsv \ --output-path demux.qza \ --input-format PairedEndFastqManifestPhred33V2 # 2. DADA2 去噪(核心步骤:去噪+合并+去嵌合体 → 产出 ASV 表) qiime dada2 denoise-paired \ --i-demultiplexed-seqs demux.qza \ --p-trunc-len-f 240 --p-trunc-len-r 200 \ --o-table table.qza \ --o-representative-sequences rep-seqs.qza \ --o-denoising-stats stats.qza # 3. 分类注释(把 ASV 序列比对到数据库,知道"这是什么菌") qiime feature-classifier classify-sklearn \ --i-classifier silva-138-nb-classifier.qza \ --i-reads rep-seqs.qza \ --o-classification taxonomy.qza # 4. Alpha 多样性(样本内多样性) qiime diversity alpha --i-table table.qza --p-metric shannon --o-alpha-diversity shannon.qza # 5. Beta 多样性(样本间差异) qiime diversity beta --i-table table.qza --p-metric braycurtis --o-distance-matrix bray.qza

ASV vs OTU(面试常考)

对比项OTU(聚类)ASV(去噪)
方法按 97% 相似度聚类DADA2 建模纠错,保留真实序列
分辨率种级别可达到株水平
可重复性不同数据集聚出的 OTU 不可比ASV 序列固定,可跨研究比较
当前主流逐渐被取代现在的主流方法

结果检查要点

指标正常范围异常信号
ASV 数量通常几百到几千太少(<50) 可能测序深度不够或样本有问题
Shannon 指数2~6(因样本类型而异)极低(<1) 可能数据有问题或样本太单一
稀释曲线趋于平台不平 = 测序深度不够
分类注释率> 70% 注释到属级太低可能数据库版本旧或引物区域不匹配
面试问"你做多样性分析遇到什么问题"时,可以讲:(1) 某批样本 ASV 数量异常少,排查发现是截断长度设置不合理,DADA2 把太多 reads 过滤掉了,调整 trunc-len 后恢复正常;(2) Shannon 指数异常低的样本,检查后发现该样本本身菌群多样性确实低(如抗生素处理后的肠道样本),属于正常生物学现象而非数据问题。
04 细菌基因组完成图 — 混合组装 + ANI 物种鉴定 基因组

细菌基因组完成图是将一个菌株的基因组组装成完整的环形序列(或几条完整的replicon)。这需要二代(Illumina)+ 三代(ONT)测序数据混合组装。

为什么需要二代 + 三代混合组装?

二代(Illumina)

优点:精度高(错误率 < 0.1%),成本低

缺点:读长短(150~300bp),遇到重复区域(如 rRNA operon ~5kb)就断了

白话:像拼拼图,碎片太小,遇到大面积纯色区域就拼不上

三代(ONT 纳米孔)

优点:读长超长(可达数百kb),能跨越重复区

缺点:错误率相对高(单次约 3~5%,但已大幅改善到 >99% Q20 化学)

白话:像有几根很长的线索,虽然线索本身不完全准确,但能告诉你碎片之间的连接关系

核心答法:二代精度高但读长短,过不了重复区;三代读长能跨重复区但错误率高。混合组装用二代保证精度、三代解决连接,各取所长,才能拼出完成图。

ONT 纳米孔测序原理简介

Oxford Nanopore Technologies(ONT)的核心是一个嵌入人工膜中的纳米级蛋白孔(CsgG 蛋白孔,用于 R9/R10 流动槽,直径约 1nm)。测序时在膜两侧施加电压,DNA 单链在马达蛋白(motor protein)的控制下匀速穿过纳米孔。四种碱基(A/T/G/C)大小形状不同,穿过时对电流的阻断程度不同,产生特征性电信号,再通过机器学习算法(base calling)翻译成碱基序列。

白话类比:想象一个人蒙着眼摸珠子过山洞——不同形状的珠子会让手感不同(电流变化不同),通过手感就能判断珠子的种类。

Unicycler 混合组装流程(v0.5.1)

Unicycler 是目前细菌基因组 short-read-first 混合组装的标准工具(Ryan Wick 2017 开发,最新版 v0.5.1,2024年更新)。

# Unicycler 混合组装命令 unicycler \ -1 illumina_R1.fastq.gz \ -2 illumina_R2.fastq.gz \ -l nanopore_long_reads.fastq.gz \ -o output_dir \ -t 16 # 输出关键文件: # assembly.fasta — 组装结果 # assembly.gfa — 组装图(可用 Bandage 可视化)

Unicycler 内部三步流程

步骤做什么白话解释
Step 1: SPAdes 组装用 Illumina 短读段构建 de Bruijn 图(多 k-mer 值),得到高精度但有"断口"的图先用精度高的小碎片拼出大部分拼图,但有些地方拼不上
Step 2: 长读段 Bridging把 ONT 长读段比对到组装图上,利用长读段跨越重复区域,把断开的 contig "桥接"起来用长线索把拼不上的碎片连接起来,告诉你"A 碎片后面接的是 B 碎片"
Step 3: 最终优化合并路径、去除冗余、检测环形 replicon(v0.5.0 移除了内置 Pilon 校正,需要额外做)整理连接后的结果,检查是否成环(完成图标志)
Unicycler v0.5.0 起移除了内置 Pilon 校正步骤。如果需要 polish,需要在 Unicycler 之后单独运行 Pilon 或 Polypolish。面试时提到这个变化能体现你关注工具更新。

完成图质量评估

指标完成图标准说明
Contig 数量理想 1 条(染色体)+ 若干质粒太多 contig 说明没拼好
是否成环GFA 文件中有 circular 标记细菌染色体是环形的,成环 = 完成图
N50接近基因组大小完成图 N50 ≈ 基因组长度
总长度与近缘种参考基因组接近偏差太大要排查

ANI 物种鉴定

ANI(Average Nucleotide Identity,平均核苷酸一致性)是目前原核生物物种鉴定的"金标准",替代了传统的 DNA-DNA 杂交(DDH)方法。

ANI 计算原理

将查询基因组切成约 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)。

# fastANI 计算两个基因组的 ANI fastANI -q query_genome.fasta -r reference_genome.fasta -o ani_output.txt # 批量计算:一对多 fastANI -q query.fasta --rl reference_list.txt -o ani_batch_output.txt # 输出格式:query reference ANI% matched_fragments total_fragments
回答"ANI 是什么"时:ANI = 两个基因组之间所有同源区域的平均核苷酸一致性。95% 是公认的种分界线,来自 2018 年 Jain 等人的大规模验证(9万个基因组)。相比 16S rRNA 只用一个基因,ANI 基于全基因组,分辨力更强。
05 宏基因组分析在实习中的实践 宏基因组

在百迈客的宏基因组分析主要是"投递流程 + 检查结果",和毕设自己从头搭建 pipeline 不同。但面试要把这两段经历的区别讲清楚。

实习 vs 毕设的宏基因组分析

对比项实习(百迈客)毕设(T2D 项目)
工作方式使用公司云平台投递封装好的流程自己在服务器上搭建 pipeline
数据来源客户送样测序公共数据库下载(NCBI SRA)
分析深度标准化报告(物种+功能注释)深入到统计建模(随机森林+机器学习)
问题处理反馈给项目经理自己排查解决
工具链平台封装(不直接接触命令行)MetaPhlAn/HUMAnN/Kraken2 命令行
核心价值流程标准化、结果质控、客户服务科学问题驱动、数据挖掘

在百迈客做宏基因组的关注点

结果检查标准:

  • 质控后数据量是否足够(通常要求 > 6Gb clean data/样本)
  • 宿主去除率是否合理
  • KEGG/COG/CAZy 功能注释率 > 40%
  • 物种注释的已知/未知比例是否合理
  • 报告图表是否完整、可读

常见报错及解决经验

场景:流程投递后任务失败

常见原因:数据格式不对(如 header 不规范)、文件上传不完整、参数设置超出范围

排查步骤:查看平台报错日志 → 检查输入文件 → 确认参数

解决方案:大部分是数据格式问题,用 seqkit/seqtk 检查修复后重新投递

结果交付标准

交付给客户前需要确认:所有分析模块正常完成、图表清晰、数据文件完整(原始注释表 + 汇总表 + 可视化图)、报告 PDF 排版正确。

面试问"实习和毕设的宏基因组分析有什么区别"时,核心答法:实习侧重标准化流程执行和质控,培养了规范意识和问题排查能力;毕设侧重从零搭建 pipeline 和科学问题探索,锻炼了独立分析能力。两段经历互补。
06 真实场景问题处理 — 四个经典 Case 实战经验

面试官最喜欢问"你遇到过什么问题?怎么解决的?"以下四个场景是实习中常见的真实问题,按"发现 → 排查 → 解决"三步法回答。

场景1:数据质量不合格 — Q30 < 80%

发现:FastQC 报告中 "Per base sequence quality" 模块显示尾部大面积进入红色区域,统计发现 Q30 比例 < 80%

排查:检查是否所有样本都这样(如果是,可能是这批上机有问题)。查看 Adapter Content 是否严重(adapter 残留会拉低质量)。看是全长都差还是只有尾部差。

解决:如果只是尾部质量下降,用 fastp/Trimmomatic 截断尾部低质量碱基后可以继续分析。如果整体质量都差,反馈给项目经理,建议重新测序。

场景2:GC 含量偏离正常范围 — 疑似混数据

发现:FastQC "Per sequence GC content" 出现明显双峰,偏离理论正态分布

排查:双峰意味着数据里可能混了两种 GC 含量差异大的来源。用 Kraken2 做快速分类,看 reads 组成。检查是否有大量宿主(人/小鼠)序列混入。

解决:如果确认宿主污染,用 bowtie2 比对宿主基因组后去除宿主 reads 再继续分析。如果是样本混串,需要重新制备文库。反馈给项目经理并记录在质控报告中。

场景3:组装后 contig 数量异常多

发现:细菌基因组组装后产出了上百条 contigs,而正常细菌基因组应该只有 1 条染色体 + 若干质粒

排查:检查 ONT 长读段数据量和质量是否足够(理想 > 50x 覆盖度)。查看 Illumina 数据的覆盖深度。用 Bandage 查看组装图,看是否有大量断裂节点。

解决:如果 ONT 数据量不足(<30x),长读段无法有效桥接,需要追加测序。如果数据充足但组装碎,检查是否有严重污染(多个菌株混在一起)。纯培养不纯是这种情况的常见原因。

场景4:ANI < 95% — 物种鉴定不确定

发现:fastANI 比对结果最高 ANI 只有 92~93%,低于 95% 种分界线

排查:这说明该菌株可能不属于数据库中任何已知种,可能是潜在新种。用 GTDB-Tk 做更全面的分类学定位。检查 16S 序列是否与数据库中最近种 < 98.65% 相似。

解决:如果确认是潜在新种,在报告中标注"与最近缘种 XX 的 ANI 为 YY%,低于 95% 种分界线,可能为潜在新种"。并建议客户结合表型鉴定等进一步确认。这种结果对客户来说可能是好消息(发现新种)。

回答场景题时用"发现 → 排查 → 解决"三步法,每步一句话。不要只说"我遇到过XX问题"然后就不说了。面试官要听的是你的思路和解决能力。
07 面试 Q&A — 高频问题与参考回答 面试必背

以下问答按照"问题 → 参考回答"格式整理。回答要点:具体、有例子、展示思考过程。不要只说"我做过XX",要说"我做 XX 的时候遇到了 YY,通过 ZZ 解决的"。

你在实习中主要做什么?
我在百迈客实习期间主要负责微生物方向的生物信息分析。日常工作流程是:接到项目经理的下单信息后,先用 FastQC/MultiQC 对原始测序数据做质控,判断数据质量是否合格。合格后在百迈客云平台投递分析流程,主要涉及三个方向:16S/ITS 微生物多样性分析宏基因组分析细菌基因组完成图分析。流程跑完后检查结果是否合理,如果有异常(比如 GC 含量偏移、ASV 数量异常少)就要排查原因并反馈。整个工作强调的是标准化操作和质量把控
你遇到过数据质量问题吗?怎么解决的?
遇到过。印象最深的一次是在做 16S 多样性分析时,FastQC 的 GC 含量分布图出现了明显的双峰,正常微生物样本应该是单峰正态分布。我怀疑是混了不同来源的数据。用 Kraken2 快速扫了一遍,发现有超过 15% 的 reads 被鉴定为人源序列,确认是宿主 DNA 污染。然后反馈给项目经理,建议先用 bowtie2 去除宿主 reads 再继续分析。这次经验让我认识到:FastQC 不是只看 PASS/FAIL,要理解每个模块的含义,才能发现隐藏的问题
为什么细菌基因组需要二代 + 三代混合组装?
因为二代和三代测序各有优缺点。Illumina 二代测序精度高(错误率 < 0.1%),但读长只有 150~300bp,遇到重复区域(比如细菌中常见的 rRNA operon,约 5kb)就组装不过去,会产生断口。ONT 三代测序读长可达数十到数百 kb,能够跨越重复区域,但单次测序错误率相对高一些。混合组装的策略是:先用 Illumina 的高精度短读段构建组装图(用 SPAdes),然后用 ONT 长读段把断开的 contig "桥接"起来(bridging),最终得到完整的环形基因组。Unicycler 就是做这个事情的标准工具。简单说就是:二代管精度,三代管连接,各取所长。
ANI 是什么?95% 的标准怎么来的?
ANI 全称 Average Nucleotide Identity,平均核苷酸一致性。它是目前原核生物物种鉴定的金标准方法,替代了传统的 DNA-DNA 杂交。计算方法是:把查询基因组切成约 1000bp 的片段,比对到参考基因组,计算所有匹配片段的核苷酸一致性百分比的平均值。

95% 的种分界线来自 2018 年 Jain 等人在 Nature Communications 发表的大规模研究。他们分析了约 9 万个原核基因组(80 亿个基因组对),发现存在明确的遗传不连续性:同种内 ANI > 95%,种间通常 < 83%,中间有明显的"gap"。这个 95% 的阈值对应着传统 DDH 70% 的物种分界标准。实际操作中我们用 fastANI 工具来计算,速度很快。
实习中最有成就感的事情是什么?
最有成就感的是有一次做细菌基因组完成图分析,客户的样本组装后 contig 数量异常多(几十条),明显不是完成图水平。我检查后发现 ONT 长读段的数据量只有约 20x 覆盖深度,不够 Unicycler 进行有效的桥接。反馈给项目经理后,协调客户追加了 ONT 测序。重新组装后成功得到了一条完整的环形染色体 + 两条质粒的完成图。

这件事让我体会到:生信分析不只是按流程跑,要理解工具原理才能发现问题所在。如果我不知道 Unicycler 需要足够的长读段来桥接,就不会想到是数据量不足的问题。
你实习的流程是自己写的还是公司现成的?
主要用的是百迈客云平台上已经封装好的标准分析流程。但这不意味着我只是"点按钮"。

首先,我需要理解每个流程的原理,才能正确设置参数(比如 16S 分析中 DADA2 的截断长度要根据数据质量来调)。其次,结果检查需要专业判断——平台不会告诉你 GC 双峰是混数据,需要自己看 FastQC 报告来发现。第三,异常处理需要排查能力——流程报错或结果异常时,要能定位原因。

同时,在我的毕设项目中,我是从零开始在服务器上用命令行搭建宏基因组分析 pipeline 的(MetaPhlAn、HUMAnN、Kraken2 等),两段经历互补:实习培养了规范化和质控意识,毕设培养了独立搭建和调试 pipeline 的能力
Unicycler 和 Trycycler 有什么区别?什么时候用哪个?
两者都是做细菌基因组组装的,但策略不同:

Unicyclershort-read-first 的混合组装——先用 Illumina 短读段组装,再用长读段桥接。适合长读段数据量不足(< 50x)的情况。

Trycycler(同一个开发者 Ryan Wick)是 long-read-first 的策略——先用多个长读段组装工具分别组装,然后取共识(consensus),最后用 Polypolish 用短读段校正。适合长读段数据量充足且质量好(> 50x, Q20+)的情况。

现在 ONT 测序产量越来越高、质量越来越好,Trycycler 方案越来越主流。但在我实习时,很多项目的 ONT 数据量不是特别高,所以 Unicycler 仍然是主力工具。
FastQC 中哪些模块 FAIL 不需要担心?
FastQC 的 PASS/WARN/FAIL 不能机械地看,要结合样本类型来判断:

不需要担心的 FAIL:
1. Per base sequence content(前 10~15bp 的碱基比例不均)— 这是 random hexamer priming 造成的,所有 Illumina 数据都有,正常现象。
2. Sequence Duplication Levels(高重复率)— 扩增子(16S/ITS)数据天然高重复,因为 PCR 扩增了同一区域。RNA-seq 也是如此。
3. Overrepresented Sequences(过度代表序列)— 扩增子数据中高丰度物种的序列会被标记,属于正常现象。

必须关注的 FAIL:
1. Per base sequence quality — Q30 < 80% 要认真排查。
2. Adapter Content — > 10% adapter 残留必须先 trim。
3. Per sequence GC content — 双峰意味着可能有污染或混数据。
面试回答原则:(1) 具体——说具体工具名、具体数字、具体场景;(2) 有深度——不只说"我做过",要说原理和判断依据;(3) 诚实——用公司流程就说用公司流程,不夸大,但要强调你在其中的判断和排查能力。