生信分析工程师面试高频题(Interview FAQ)¶
一句话说明¶
本文件汇总生信分析工程师面试最常见的问题,结合彭文强在百迈客的实习经历和个人宏基因组项目,组织标准答案。所有答案口语化,像在面试中说话的风格。
第一部分:自我介绍与项目讲解¶
★ 请做一下自我介绍(1分钟版)¶
面试官您好,我是彭文强,赣南医科大学2026届本科毕业生,专业是生物信息学。
我在北京百迈客实习了大约5个月,在微生物技术部做生信分析实习生,主要参与宏基因组、16S多样性、细菌基因组的分析项目,累计完成了148项以上的分析任务,涉及质控、物种注释、功能注释、binning分析、报告定制等。
在实习之外,我还独立搭建了一套肠道宏基因组分析流程,从FastQC质控到fastp清洗、Bowtie2去宿主、Kraken2物种注释,最后到多样性分析。我比较注重流程的可复现性,配套了environment.yml环境锁定、software_versions.txt版本记录,还有15个带中文注释的分析脚本。
我对生信分析工程师岗位很感兴趣,希望能把实习和项目中积累的实践经验应用到实际工作中。谢谢。
要点提醒: - 控制在1分钟内(约200字口语) - 突出三个核心信息:百迈客实习 + 独立项目 + 可复现性 - 说话不要太快,关键词稍微停顿
★ 详细介绍你的宏基因组项目¶
背景:我在完成百迈客实习后,想把学到的东西整合起来,就用公共数据独立搭建了一套肠道宏基因组分析流程。
流程:整个流程从FASTQ文件开始,分6个主要步骤: 1. 先用md5sum校验数据完整性 2. FastQC + MultiQC做原始数据质量评估 3. fastp做reads清洗,设置Q20质量过滤和50bp最短长度 4. Bowtie2比对人类参考基因组去除宿主序列 5. Kraken2 + Bracken做物种分类注释 6. 最后用Python做Shannon多样性指数和Bray-Curtis距离计算
关键结果:在种级别鉴定出5个主要物种。疾病组的Shannon指数是1.11,低于健康组的1.46,说明疾病组的菌群多样性降低。大肠杆菌(E. coli)的相对丰度从42%上升到57%。Bray-Curtis距离是0.20,两组菌群组成存在差异。
遇到的问题: - fastp参数调整:一开始用默认参数,后来发现Q20+50bp的设置更适合宏基因组数据 - Kraken2的confidence参数:默认0.0会有很多假阳性,调到0.2后结果更可靠 - Bowtie2去宿主比对率的理解:人肠道样本通常有5-30%的宿主DNA
可复现性:我写了15个编号的Shell脚本,每个脚本都有中文注释,加了
set -euo pipefail错误处理。配套environment.yml锁定所有软件版本,还有software_versions.txt记录。一条bash run_all.sh命令就能从头复现整个分析。学到了什么:这个项目让我从"会用单个工具"提升到"能搭建完整流程",也更深入理解了每一步的原理和参数选择的依据。
★ 你在百迈客实习做了什么?¶
我在百迈客微生物技术部实习,主要做宏基因组、16S多样性、细菌基因组三类项目的生产交付。
具体来说:
宏基因组分析:通过公司的云平台和线下脚本执行全流程分析,包括binning、物种注释、功能注释(CAZy、KEGG、VFDB、ResFinder等数据库),处理的数据量从15G到40G不等。
16S/ITS多样性分析:做ASV/OTU分析、alpha和beta多样性、LEfSe差异分析,还有物种丰度柱状图、弦图等可视化。
细菌基因组:完成二代和三代(ONT)的细菌完成图分析、ANI分析、SV/CNV变异检测。
数据质控和问题处理:做过污染验证核查、QC异常排查(比如混数据、样本需要重分析),还有流程报错的定位和修复。
报告定制:根据客户需求定制分析报告,参与外审交付。
一共完成了148项以上的分析任务。这段实习让我接触了真实的生产环境,学会了批量处理和问题排查。
第二部分:技术基础题(20题)¶
1. ★ 请介绍一下宏基因组的分析流程¶
参考答案:宏基因组分析的标准流程是: 1. 数据质控:FastQC评估原始数据质量 → fastp过滤低质量reads和接头 2. 去宿主:用Bowtie2比对宿主参考基因组,去除宿主DNA 3. 物种注释:Kraken2做物种分类,Bracken校正丰度估计 4. 功能注释:比对KEGG、CAZy、VFDB等功能数据库 5. 多样性分析:alpha多样性(Shannon、Chao1)和beta多样性(Bray-Curtis、PCoA) 6. 差异分析:LEfSe、DESeq2等找组间差异物种
💡 加分回答:在我的个人项目中,我完整搭建了前5步的流程(FastQC → fastp → Bowtie2 → Kraken2/Bracken → 多样性分析)。在百迈客实习时还涉及了binning和多种功能注释数据库。
2. ★ 为什么要做质量控制?¶
参考答案:质量控制的目的是去除低质量数据,提高下游分析的准确性。具体来说: - 低质量碱基(Q值低)会导致错误的比对和注释 - 接头序列(adapter)是人工加的,不是样本本身的序列 - 短片段(太短的reads)比对时容易产生假阳性 - 重复序列(PCR duplicates)会夸大某些序列的丰度
常用工具:FastQC看质量报告,fastp做过滤(Q20质量 + 50bp最短长度是常用参数)。
💡 加分回答:在实习中做QC异常排查时,我遇到过混数据的情况——两个样本的物种组成异常相似,排查后发现是样本标签贴错了,需要重新提取数据。这让我体会到QC不仅是软件过滤,还包括人工检查数据合理性。
3. ★ 去宿主的目的是什么?¶
参考答案:宏基因组测序的目标是分析微生物的DNA,但样本中不可避免地会混入宿主DNA(比如人肠道样本会有人的DNA)。如果不去除宿主序列: - 浪费测序数据(宿主DNA可能占5%-30%甚至更多) - 影响物种注释准确性(宿主序列可能被错误注释为微生物) - 浪费计算资源
方法:用Bowtie2将reads比对到宿主参考基因组(如人类GRCh38),保留未比对上的reads(即微生物reads),用
--un-conc-gz参数提取。💡 加分回答:在我的项目中,去宿主步骤的比对率大约在15%左右,这说明样本提取过程中确实有一定量的人类DNA被一起提取出来了。
4. ★ Kraken2的原理是什么?¶
参考答案:Kraken2基于k-mer精确匹配的原理: 1. 建库阶段:把参考基因组库中每个物种的序列切成k-mer(默认k=35),存入哈希表,每个k-mer关联其最低公共祖先(LCA)的分类信息 2. 分类阶段:对每条待分类的read,提取所有k-mer → 查哈希表 → 得到一组分类标签 → 用LCA算法找到最可能的分类 3. 置信度:
--confidence参数控制分类的严格程度,0.0最宽松,1.0最严格优点:速度极快(分钟级处理百万条reads),内存换时间 缺点:依赖数据库质量,数据库不含的物种无法识别
📌 关键参数:
--confidence 0.2(推荐,平衡灵敏度和特异性),默认0.0假阳性较多。💡 加分回答:在我的项目中,我把confidence从默认0.0调到0.2后,分类结果更可靠,假阳性减少了很多。Bracken在Kraken2结果基础上用贝叶斯方法重新估计丰度,让物种丰度更准确。
5. ★ alpha多样性和beta多样性有什么区别?¶
参考答案: - Alpha多样性:描述单个样本内部的物种多样性("一个池塘里有多少种鱼") - Shannon指数:考虑物种数量和均匀度(值越大,多样性越高) - Chao1指数:估计物种总数(侧重稀有物种) - Observed species:直接计数观察到的物种数
- Beta多样性:描述不同样本之间的物种组成差异("两个池塘的鱼组成有多不同")
- Bray-Curtis距离:基于丰度的差异(0=完全相同,1=完全不同)
- UniFrac距离:考虑进化关系的差异(需要进化树)
- Jaccard距离:只看有无,不看丰度
可视化: - Alpha多样性 → 箱线图(组间比较 + Wilcoxon检验) - Beta多样性 → PCoA散点图(+ PERMANOVA检验)
💡 加分回答:在我的项目中,疾病组的Shannon指数(1.11)低于健康组(1.46),说明疾病组菌群多样性降低。Bray-Curtis距离为0.20,结合PCoA图可以看到两组有一定的分离趋势。
6. ★ 16S和宏基因组有什么区别?¶
参考答案:
对比项 16S扩增子 宏基因组(Shotgun) 测序对象 16S rRNA基因(一小段标记基因) 全部DNA(所有基因) 分辨率 通常到属级别 可以到种甚至株级别 功能信息 无(只有分类信息) 有(可以做功能注释) 数据量 小(几百MB) 大(几十GB) 成本 低 高 分析工具 QIIME2, DADA2 Kraken2, MetaPhlAn, HUMAnN 适用场景 物种组成调查、大样本量 物种+功能、深入分析 💡 加分回答:在百迈客,16S和宏基因组都做过。16S适合样本量大、预算有限的项目;宏基因组适合需要深入分析功能(比如抗性基因、碳水化合物酶)的项目。
7. ★ OTU和ASV有什么区别?¶
参考答案: - OTU(Operational Taxonomic Unit):按97%相似度聚类,把相似的序列归为一组。相当于"大概是同一种"。传统方法,用UCLUST、VSEARCH等工具。 - ASV(Amplicon Sequence Variant):保留每一条独特的序列,不聚类,精度更高。相当于"精确到每一个变体"。用DADA2、Deblur等工具。
对比项 OTU ASV 精度 97%相似度内算同一类 单碱基精度 可比性 不同研究的OTU不可比 不同研究的ASV可以直接比较 趋势 传统方法 目前主流推荐 💡 加分回答:在百迈客做16S项目时,我们同时提供OTU和ASV两种结果,但ASV是现在的主流趋势,因为分辨率更高,而且不同研究之间的ASV可以直接比较。
8. ★ KEGG注释怎么做?¶
参考答案:KEGG注释的基本流程是: 1. 将基因序列(如宏基因组组装后预测的基因)用DIAMOND或BLAST比对到KEGG数据库 2. 根据比对结果获取KO编号(KEGG Orthology,如K00001) 3. KO编号映射到通路(Pathway)、模块(Module)和功能分类 4. 统计每个样本在各通路上的基因数量或丰度
常用工具:KofamScan(基于HMM,更准确)、DIAMOND + KEGG数据库(更快)、eggNOG-mapper(间接获得KEGG注释)
📌 注意:KEGG数据库不是免费的(学术使用有限制),很多公司购买了授权。百迈客云平台上集成了KEGG注释功能。
9. ★ 二代测序和三代测序的区别?¶
参考答案:
对比项 二代(Illumina) 三代(PacBio/ONT) 读长 短读长(150-300bp) 长读长(10kb-100kb+) 准确率 高(>99.9%) 较低(ONT约95%,PacBio HiFi >99%) 通量 高 较低 成本/碱基 低 高 优势 准确、便宜、通量大 跨重复区、结构变异、完成图 应用场景: - 二代:宏基因组、RNA-seq、16S、大规模测序 - 三代:细菌完成图、基因组组装、结构变异检测 - 二代+三代混合组装:兼顾准确性和完整性
💡 加分回答:在百迈客做细菌完成图时,我用过二代+三代(ONT)混合数据进行组装,三代的长读长可以跨越重复区域,二代的高准确率用来校正。
10. ★ 什么是ANI?¶
参考答案:ANI(Average Nucleotide Identity,平均核苷酸一致性) 是衡量两个基因组之间整体序列相似度的指标。
- ANI > 95% → 同一个种(species boundary)
- ANI > 70% → 同一个属
- ANI < 70% → 不同属
用途:物种鉴定、确认分离株是否属于同一个种
常用工具:fastANI(快速)、pyani(更多选项)
💡 加分回答:在百迈客做细菌基因组项目时,ANI分析是常规步骤,用来确认组装得到的基因组属于哪个种。95%是经典的种界阈值。
11. ★ 什么是binning?¶
参考答案:Binning(分箱/宏基因组分箱) 是把宏基因组组装得到的contigs按物种来源分成不同的组(bins),每个bin理想情况下代表一个物种的基因组,也叫MAG(Metagenome-Assembled Genome)。
原理:利用contigs的两个特征: 1. 序列组成:同一物种的GC含量和k-mer频率相似 2. 覆盖度模式:同一物种的contigs在不同样本中的覆盖度变化趋势一致
常用工具:MetaBAT2、MaxBin2、CONCOCT;用DAS Tool整合多个工具的结果。
质量评估:用CheckM评估完整度(Completeness)和污染度(Contamination) - 高质量MAG:完整度>90%,污染度<5% - 中质量MAG:完整度>50%,污染度<10%
💡 加分回答:在百迈客做binning分析时,我了解到需要先用MEGAHIT或metaSPAdes做宏基因组组装,然后分箱,最后用CheckM评估每个bin的质量。
12. ★ 如何评估基因组组装质量?什么是N50?¶
参考答案: - N50:把所有contigs按长度从大到小排列,依次累加,当累加长度达到总长度的50%时,对应的那条contig的长度就是N50。N50越大,说明组装越连续。 - L50:达到N50时需要的contig数量,越小越好。
其他评估指标: - 总长度:是否接近预期基因组大小 - contig数量:越少越好(说明越完整) - 最长contig长度 - GC含量:是否与目标物种一致 - BUSCO:用保守基因评估基因组完整度
💡 加分回答:比如细菌基因组大小一般在几Mb,如果组装得到的总长度明显偏大或偏小,就说明可能有问题(污染或丢失)。
13. ★ Shannon指数的含义?¶
参考答案:Shannon指数(Shannon Diversity Index,H') 综合考虑了物种的丰富度(有多少种)和均匀度(各种的比例是否均衡)。
- 公式:H' = -SUM(pi * ln(pi)),其中pi是第i个物种的相对丰度
- 值范围:通常0-5之间
- 值越大 → 多样性越高(物种越多、分布越均匀)
- 值越小 → 多样性越低(可能被少数物种主导)
💡 加分回答:在我的项目中,疾病组Shannon指数1.11低于健康组1.46。这说明疾病组的肠道菌群被少数优势菌(如E. coli从42%升到57%)主导,均匀度下降了。
14. ★ PCoA图怎么解读?¶
参考答案:PCoA图的解读要注意三点:
轴标签:看括号里的百分比(如"PCoA1 (35.2%)"),表示该轴解释了多少比例的变异。两个轴加起来如果能解释>50%,说明图表达了大部分信息。
点的分布:
- 同组样本聚在一起 → 组内一致性高
- 不同组明显分开 → 组间差异大
如果完全重叠 → 两组没有明显差异
统计检验:光看图不够,需要配合PERMANOVA(
vegan::adonis2())检验组间差异是否显著。看p值和R2:- p < 0.05 → 差异显著
- R2 → 分组因素解释了多少变异(越大越好)
💡 加分回答:PCoA图是用Bray-Curtis距离矩阵做的,本质是把高维数据降到2维展示。在R里用
vegan::vegdist()算距离矩阵,ape::pcoa()做降维,ggplot2画散点图加置信椭圆。
15. ★ LEfSe是什么?¶
参考答案:LEfSe(Linear discriminant analysis Effect Size) 是一种差异物种分析方法,专为微生物组设计。
三步法: 1. Kruskal-Wallis检验:筛选组间差异显著的物种 2. Wilcoxon检验:验证在子组中也是显著的 3. LDA(线性判别分析):计算效应值(Effect Size),LDA score > 2通常认为是显著差异物种
结果展示:水平柱状图,不同颜色代表不同组,柱子长度代表LDA score。
💡 加分回答:在百迈客做16S多样性项目时,LEfSe是客户最常要求的差异分析方法之一。它的优势是结合了统计检验和效应值,不仅告诉你"哪些物种不同",还告诉你"差异有多大"。
16. ★ 你用什么工具管理分析环境?¶
参考答案:我主要用Conda(配合Mamba加速)来管理分析环境: - 一个项目创建一个独立环境,避免不同工具的依赖冲突 - 用
conda env export > environment.yml导出环境配置,锁定每个软件的版本号 - 生信工具从bioconda频道安装,Python包用pip安装此外,我了解Docker/Singularity容器技术。Docker提供操作系统级的隔离,但在HPC上通常用Singularity(不需要root权限)。
💡 加分回答:在我的个人项目中,配套了
environment.yml和software_versions.txt。换一台机器只需要conda env create -f environment.yml就能还原整个分析环境。
17. ★ Shell脚本怎么写?有什么规范?¶
参考答案:我写Shell脚本时遵循几个规范:
- 错误处理:开头加
set -euo pipefail-e:遇到错误立即停止-u:使用未定义变量报错
-o pipefail:管道中任何一步失败就报错变量定义:把输入输出路径定义为变量,方便修改
日志记录:用
2> log或tee记录运行日志注释:关键步骤加中文注释,说明"为什么这样做"
编号命名:脚本按执行顺序编号(01_qc.sh, 02_trim.sh, ...)
💡 加分回答:在我的项目中写了15个编号脚本,每个都有
set -euo pipefail和中文注释,还有一个run_all.sh按顺序调用所有脚本,支持断点续跑。
18. ★ 怎么处理批量样本?¶
参考答案:处理批量样本我用两种方式:
方法1:Shell循环(简单场景)
for sample in sample1 sample2 sample3; do fastp -i data/${sample}_R1.fq.gz -o clean/${sample}_R1.fq.gz ... done方法2:Snakemake(复杂流程) - 在config.yaml里定义样本列表 - 用
expand()自动扩展所有样本 - Snakemake会自动并行处理、自动管理依赖💡 加分回答:在百迈客实习时,批量处理是日常工作。我通常写一个Shell脚本,用for循环遍历样本列表文件。对于更复杂的流程,我了解Snakemake可以自动并行调度,效率更高。
19. ★ 遇到报错怎么排查?¶
参考答案:我排查报错的步骤是:
- 读错误信息:先仔细看完整的报错信息,很多时候错误信息本身就告诉你问题在哪
- 检查输入文件:文件是否存在、路径是否正确、格式是否对(
head看前几行、wc -l数行数)- 检查环境:确认在正确的conda环境、工具版本是否正确
- Google/搜索:复制关键错误信息搜索,GitHub Issues和BioStars上经常有答案
- 看日志:检查log文件,通常有更详细的错误信息
- 简化测试:用一两个样本的少量数据测试,排除数据量导致的问题
💡 加分回答:在百迈客实习时,我负责过流程报错的定位和修复。常见问题包括:路径错误、权限不足、内存不足、软件版本不兼容。我养成了记录问题和解决方案的习惯。
20. ★ 怎么保证分析可复现?¶
参考答案:我从三个层面保证可复现性:
- 环境层面:
environment.yml锁定所有软件版本
software_versions.txt记录每个工具的版本号流程层面:
- 所有步骤脚本化(不手动敲命令)
- 脚本有编号和注释
- 参数写在脚本里或配置文件里,不是口头记的
set -euo pipefail确保错误能被捕获数据层面:
- md5校验原始数据完整性
- Git追踪脚本和配置文件的版本
- 运行日志保留
💡 加分回答:在我的个人项目中,任何人拿到我的代码仓库后,只需要三步就能复现:1)
conda env create -f environment.yml创建环境 2)下载原始数据 3)bash run_all.sh一键运行全流程。
第三部分:实操/编程题¶
★ 用awk统计FASTQ文件的reads数¶
题目:给你一个FASTQ文件,用一行命令统计reads数量。
答案:
# FASTQ文件每4行一条read # 方法1:数总行数除以4 awk 'END{print NR/4}' sample.fastq # 方法2:数@开头的行(reads的标识行) grep -c '^@' sample.fastq # 注意:方法2可能不准确,因为质量行也可能以@开头 # 方法3(最准确):数第1行、第5行、第9行... awk 'NR%4==1' sample.fastq | wc -l # 如果是gzip压缩文件 zcat sample.fastq.gz | awk 'END{print NR/4}'解释:FASTQ格式每条read固定4行:第1行@标识、第2行序列、第3行+、第4行质量值。所以总行数除以4就是reads数。
★ 用Python读取丰度表并过滤低丰度物种¶
题目:读取物种丰度表CSV,过滤掉平均丰度低于1%的物种。
答案:
import pandas as pd # 读取丰度表(行=物种,列=样本) df = pd.read_csv("species_abundance.csv", index_col=0) # 计算每个物种在所有样本中的平均丰度 mean_abundance = df.mean(axis=1) # 过滤:保留平均丰度 >= 1% 的物种 df_filtered = df[mean_abundance >= 0.01] # 查看过滤前后物种数 print(f"过滤前: {df.shape[0]} 个物种") print(f"过滤后: {df_filtered.shape[0]} 个物种") # 保存 df_filtered.to_csv("species_abundance_filtered.csv")面试时说:"我用pandas读取CSV,计算每行的均值,然后用布尔索引过滤。这在宏基因组分析中很常见,低丰度物种通常是噪声,过滤后能减少下游分析的干扰。"
★ 写一个简单的Shell批处理脚本¶
题目:写一个脚本,对data/目录下所有_R1.fastq.gz文件运行FastQC。
答案:
#!/bin/bash set -euo pipefail # 批量运行FastQC # 输入:data/目录下的所有R1 FASTQ文件 # 输出:qc_results/目录下的FastQC报告 # --- 定义路径 --- INPUT_DIR="data" OUTPUT_DIR="qc_results" # --- 创建输出目录 --- mkdir -p "${OUTPUT_DIR}" # --- 批量处理 --- for fq in ${INPUT_DIR}/*_R1.fastq.gz; do sample=$(basename "${fq}" _R1.fastq.gz) echo "正在处理: ${sample}" fastqc "${fq}" -o "${OUTPUT_DIR}" -t 4 done # --- 汇总报告 --- multiqc "${OUTPUT_DIR}" -o "${OUTPUT_DIR}/multiqc" echo "全部完成!报告在: ${OUTPUT_DIR}/multiqc/"
★ 解释一段代码的功能¶
题目:解释以下命令的功能:
samtools view -bS -F 4 aligned.sam | samtools sort -o sorted.bam samtools index sorted.bam答案: -
samtools view -bS -F 4 aligned.sam: --b:输出BAM格式(二进制,更小) --S:输入是SAM格式(新版 samtools 已自动检测,可省略,但写上不报错) --F 4:过滤掉未比对上的reads(flag 4 = unmapped),只保留比对上的 - 整体:把SAM转为BAM,同时去掉未比对的reads
| samtools sort -o sorted.bam:管道传入,按坐标排序,输出sorted.bam
samtools index sorted.bam:为排序后的BAM创建索引(.bai文件),方便后续快速查询面试时说:"这三步是比对后的标准处理流程:SAM转BAM → 排序 → 建索引。排序和索引是后续做变异检测、reads计数等分析的前提。"
第四部分:情景/行为题¶
★ 分析结果和预期不一致怎么办?¶
参考答案:我会按以下步骤排查:
- 检查输入数据:原始数据是否有问题(QC报告、数据量、是否混样)
- 检查参数:分析参数是否设置正确(比如数据库版本、阈值参数)
- 中间结果验证:逐步检查每一步的输出是否合理
- 查文献/资料:看类似的研究是什么结果,可能"不一致"其实是正常的
- 讨论确认:如果确认流程没问题,就跟项目负责人讨论,可能是生物学上的真实发现
💡 实习经验:在百迈客做QC排查时,我遇到过两个样本物种组成异常相似的情况。排查后发现是混数据了,需要重新提取。所以"结果不一致"不一定是分析错误,可能是数据本身的问题。
★ 遇到不会用的工具怎么办?¶
参考答案:我学习新工具的步骤是:
- 官方文档:先看工具的GitHub README和官方教程,了解基本用法
- 示例数据:用工具提供的测试数据跑一遍,熟悉输入输出格式
- 参数理解:重点看
--help里的关键参数说明- 社区资源:搜BioStars、GitHub Issues、生信论坛上的使用经验
- 小数据测试:用自己项目的少量数据测试,确认结果合理后再正式运行
💡 实习经验:在百迈客用到很多工具,有些之前没接触过。我的习惯是先看官方示例,再用小数据跑一遍,不盲目在大数据上直接运行。
★ 如何学习新的分析方法?¶
参考答案:
- 看综述论文:了解方法的背景、原理和适用场景
- 看方法论文:重点看Methods部分,理解算法原理
- 找教程:官方文档、BioStars、bilibili上的教程
- 动手实操:用公共数据(如SRA上下载的数据)实际跑一遍
- 对比验证:用已知结果的数据验证自己的分析是否正确
💡 加分回答:我的个人项目就是这么做的——看了宏基因组分析的综述,理解了每一步的原理,然后用公共数据从头搭建了完整流程。
★ 团队合作中遇到分歧怎么处理?¶
参考答案:
- 先理解对方:听清楚对方的理由和考虑
- 用数据说话:如果是技术分歧,做对比实验或引用文献来支持
- 找共识:看看有没有折中方案
- 请教前辈:如果还是无法达成一致,请教经验更丰富的同事
💡 实习经验:在百迈客遇到过参数选择的分歧(比如fastp的质量阈值用Q20还是Q30),我的做法是两种参数都跑一遍,对比结果,用数据来决定。最后选了Q20,因为Q30过滤掉的数据太多,会影响后续分析。
第五部分:反问面试官¶
推荐问的问题¶
"请问贵公司/团队目前主要做哪些类型的项目?" — 了解实际工作内容,也表现出你的兴趣
"这个岗位入职后的前三个月,主要会接手什么样的工作?" — 了解具体工作安排,也表现出你想快速上手
"团队目前用什么流程管理工具?有没有标准化的分析流程?" — 展示你的工程化思维
"团队对新人有什么培养计划或学习资源推荐吗?" — 表现出学习意愿
"贵公司在宏基因组/微生物组方向有什么新的发展计划吗?" — 展示你对行业的关注
不要问的问题¶
- 不要一上来就问薪资和加班(除非面试官主动提起)
- 不要问"这个岗位做什么"(说明你没看职位描述)
- 不要问太多福利细节(给人感觉更关心待遇而非工作)
- 不要说"我没有什么要问的"(显得没兴趣)
附录:面试前一天速查清单¶
必须记住的数字¶
| 项目 | 数字 | 含义 |
|---|---|---|
| 实习任务量 | 148+ | 百迈客累计完成的分析任务数 |
| 项目脚本数 | 15个 | 个人项目编写的分析脚本数 |
| 物种鉴定 | 5个种级别物种 | 个人项目鉴定结果 |
| Shannon指数 | 疾病组1.11 vs 健康组1.46 | 疾病组多样性低 |
| E. coli丰度 | 42% → 57% | 疾病组大肠杆菌上升 |
| Bray-Curtis | 0.20 | 两组菌群组成差异 |
| 数据量 | 15G-40G | 实习处理的数据范围 |
| fastp参数 | Q20 + 50bp | 质控参数 |
| Kraken2 confidence | 0.2 | 推荐置信度阈值 |
| ANI种界阈值 | 95% | 高于95%认为同种 |
| OTU相似度 | 97% | OTU聚类阈值 |
| LEfSe阈值 | LDA > 2 | 差异物种筛选标准 |
关键工具速记¶
| 步骤 | 工具 |
|---|---|
| 质量评估 | FastQC + MultiQC |
| reads清洗 | fastp |
| 去宿主 | Bowtie2 |
| 物种注释 | Kraken2 + Bracken |
| 功能注释 | DIAMOND + KEGG/CAZy/VFDB |
| 16S分析 | QIIME2 / DADA2 |
| 差异分析 | LEfSe / DESeq2 |
| 基因组组装 | MEGAHIT / metaSPAdes |
| binning | MetaBAT2 + CheckM |
| ANI分析 | fastANI |
| 可视化 | ggplot2 / pheatmap |
| 环境管理 | Conda + Mamba |
| 流程管理 | Snakemake |
| 版本控制 | Git |
面试着装和礼仪¶
- 穿着整洁(不需要正装,但要干净整洁)
- 提前10分钟到(线上面试提前5分钟测试设备)
- 准备纸笔(记录面试官的问题)
- 说话不要太快,关键词稍微停顿
- 不知道的问题诚实说不会,然后说"但我了解..."或"我可以学习"
- 面试结束后发一封感谢邮件(可选,加分项)