以下是 Python 生物信息学 100 个小练习,每个练习新增「核心知识点」「生物学意义 / 应用场景」「关键注意事项」,覆盖从基础到进阶的全维度,既适合实操练习,也可直接拆解为 5000 + 字的博客(每个练习可扩展「原理 + 代码逐行解析 + 结果可视化 + 常见问题」)。

核心依赖库

入门:Biopython(序列核心)、pandas/numpy(数据处理)、matplotlib/seaborn(可视化);进阶:pysam(高通量测序)、goatools(GO 富集)、scipy.stats(统计检验)、ncbi-entrez-direct(NCBI 接口)、pyfaidx(FASTA 索引)。


一、基础序列操作(1-20)

(入门级:聚焦字符串处理、文件 IO、基础函数封装,是生物信息学的「基本功」)

1. 编写函数验证 DNA 序列合法性(仅含 A/T/C/G,忽略大小写)

  • 核心知识点:字符串遍历、大小写统一、条件判断、函数封装
  • 生物学意义:测序数据质控第一步,过滤含污染 / 错误碱基的序列(如混入 S、Y 等模糊碱基)
  • 关键注意事项:需区分「严格合法(仅 ATCG)」和「宽松合法(允许 N)」,本练习聚焦严格验证;注意大小写兼容(如输入 a/t/c/g 也需识别)

2. 读取单 FASTA 文件,提取所有序列的 ID 和序列字符串

  • 核心知识点:文件逐行读取、FASTA 格式解析(> 开头为 ID 行)、字符串拼接(处理多行序列)
  • 生物学意义:FASTA 是生物序列最常用格式,解析是后续所有序列分析的基础(如基因 / 蛋白序列批量处理)
  • 关键注意事项:需处理「序列跨行」情况(FASTA 序列通常每行 80 个碱基);注意 ID 行可能含注释(如 > NM_00123 | Homo sapiens,需仅提取核心 ID)

3. 生成 DNA 序列的互补链(A↔T,C↔G)

  • 核心知识点:字符串映射(字典)、遍历替换
  • 生物学意义:DNA 为双链结构,互补链分析是引物设计、PCR 扩增的基础
  • 关键注意事项:保持序列长度和顺序不变(仅碱基替换);忽略 N 碱基(N 的互补仍为 N)

4. 生成 DNA 序列的反向互补链(先反向再互补)

  • 核心知识点:字符串切片反转([::-1])、互补链逻辑组合
  • 生物学意义:测序时可能获得反向互补的 read,需转换为正向链才能与参考基因组比对
  • 关键注意事项:顺序不可颠倒(先反向再互补,而非先互补再反向);验证结果(如 ATCG→CGAT)

5. 计算 DNA 序列的 GC 含量(保留两位小数,排除 N 碱基)

  • 核心知识点:字符计数、条件过滤(排除 N)、数值格式化
  • 生物学意义:GC 含量与 DNA 稳定性(氢键数量)、基因表达、物种进化相关(如原核生物 GC 含量差异大)
  • 关键注意事项:必须排除 N 碱基(否则结果偏低);保留小数位数需统一(如两位),便于后续统计

6. 统计 DNA 序列中 A/T/C/G 的出现次数和频率(输出字典)

  • 核心知识点:字典操作、频率计算(计数 / 总长度)、数据格式化
  • 生物学意义:碱基组成分析可用于识别序列来源(如叶绿体 DNA vs 核 DNA)、检测序列污染
  • 关键注意事项:频率需基于「有效长度(排除 N)」计算;输出格式需清晰(如 {'A': 20, 'A_freq': 0.2})

7. 将 DNA 序列按密码子拆分(每 3 个碱基,长度非 3 倍数时补 N)

  • 核心知识点:字符串切片、循环步长(step=3)、补全逻辑
  • 生物学意义:密码子是翻译的基本单位,拆分是后续蛋白质翻译、密码子偏好性分析的前提
  • 关键注意事项:补 N 需补在序列末尾(如长度为 7→补 1 个 N,拆分为 3+3+1→补 2 个 N?需明确规则:总长度为 3 的倍数);注意起始位置(从第 1 个碱基开始)

8. 基于标准密码子表,将 DNA 序列翻译为蛋白质序列(识别终止密码子)

  • 核心知识点:密码子表字典、循环遍历、终止密码子(TAA/TAG/TGA)处理
  • 生物学意义:基因序列→蛋白序列是功能注释的核心步骤(如预测蛋白结构 / 功能)
  • 关键注意事项:终止密码子用 * 表示;需使用标准密码子表(避免线粒体密码子表混淆);仅翻译到第一个终止密码子为止

9. 定位 DNA 序列中所有终止密码子(TAA/TAG/TGA)的位置和数量

  • 核心知识点:滑动窗口、位置索引、列表存储结果
  • 生物学意义:终止密码子位置异常(如编码区提前出现)可能导致截短蛋白,是基因突变分析的重点
  • 关键注意事项:位置从 1 开始(符合生物学习惯,而非 0);需遍历所有 3 的倍数位置(如 3、6、9…)

10. 将 RNA 序列(含 U)转换为 DNA 序列(U→T)

  • 核心知识点:字符串替换、RNA/DNA 碱基对应关系
  • 生物学意义:RNA-seq 数据分析中,常需将 RNA 序列转换为 DNA 序列与参考基因组比对
  • 关键注意事项:仅替换 U 为 T,其他碱基(A/C/G)保持不变;注意大小写兼容(u→t)

11. 统计蛋白质序列中 20 种常见氨基酸的频率

  • 核心知识点:氨基酸分类、字典计数、频率归一化
  • 生物学意义:氨基酸组成与蛋白性质(如疏水性、等电点)相关,可用于预测蛋白功能类型
  • 关键注意事项:排除非标准氨基酸(如 X 表示未知);频率计算基于有效长度(排除 X)

12. 检测 DNA 序列中是否存在指定 motif,输出所有匹配起始位置

  • 核心知识点:字符串查找、循环滑动窗口、位置记录
  • 生物学意义:motif(如启动子元件 TATA 盒、酶切位点)定位是基因调控、分子克隆的核心
  • 关键注意事项:位置从 1 开始;支持 motif 大小写兼容;处理重叠匹配(如 motif 为 AAA,序列为 AAAA→匹配位置 1 和 2)

13. 对 FASTA 文件中所有序列按长度排序,输出最长 / 最短序列 ID

  • 核心知识点:FASTA 解析、列表排序(key=len)、极值提取
  • 生物学意义:序列长度筛选是数据质控的常用步骤(如过滤过短的测序拼接序列)
  • 关键注意事项:排序时需关联序列 ID 和长度;处理空序列(需过滤)

14. 合并多个 FASTA 文件,去重(按序列 ID 保留首个)

  • 核心知识点:多文件读取、字典去重(ID 为 key)、FASTA 格式输出
  • 生物学意义:批量处理测序数据时,常需合并多个 FASTA 并去重(避免重复分析)
  • 关键注意事项:去重规则需明确(按 ID / 按序列);输出时保持 FASTA 标准格式(每行 80 个碱基)

15. 从 DNA 序列中随机生成 10 个长度为 50 的无重复子序列

  • 核心知识点:随机数生成(random 模块)、切片、去重校验
  • 生物学意义:模拟测序 read、构建序列文库、验证序列分析算法的鲁棒性
  • 关键注意事项:确保子序列无重复;需判断原序列长度≥50×10(否则提示不足)

16. 计算两个等长 DNA 序列的碱基匹配数和匹配率

  • 核心知识点:逐位比对、计数、匹配率计算(匹配数 / 总长度)
  • 生物学意义:序列相似性初步判断(如物种进化分析、突变检测)
  • 关键注意事项:先校验序列长度一致;排除 N 碱基的比对(不计数)

17. 将 DNA 序列格式化为 FASTA 标准格式(每行 80 个碱基)

  • 核心知识点:字符串切片、换行符插入、FASTA 格式规范
  • 生物学意义:标准化序列格式,避免因格式问题导致下游工具(如 BLAST)报错
  • 关键注意事项:ID 行以 > 开头;序列行每行不超过 80 个碱基;末尾无多余换行

18. 计算 FASTA 文件中所有序列的平均长度、中位数、标准差

  • 核心知识点:统计函数(numpy)、FASTA 解析、异常值处理
  • 生物学意义:序列长度分布分析可评估测序 / 拼接质量(如标准差过大可能提示拼接错误)
  • 关键注意事项:排除空序列;使用 numpy 计算统计量更高效;结果保留合理小数位数

19. 判断 DNA 序列是否为「序列回文」(正向与反向互补一致)

  • 核心知识点:反向互补链、字符串相等判断
  • 生物学意义:回文序列是限制性内切酶识别位点的特征(如 EcoRI 识别 GAATTC,反向互补仍为 GAATTC)
  • 关键注意事项:严格区分「序列回文」和「普通回文」(普通回文是正向与反向一致,序列回文是正向与反向互补一致)

20. 编写函数批量替换 FASTA 序列中的模糊碱基(N→A)

  • 核心知识点:批量文件处理、字符串替换、函数参数化
  • 生物学意义:部分分析工具不支持模糊碱基(N),需替换后才能运行(如引物设计、序列比对)
  • 关键注意事项:可自定义替换规则(如 N→A / 随机碱基);替换后保留原 ID 和格式

二、序列分析进阶(21-40)

(进阶级:聚焦 Biopython 核心功能、序列特征挖掘,贴近实际科研场景)

21. 基于 Biopython 的Seq对象实现 DNA 转录(DNA→RNA)

  • 核心知识点:Biopython Seq/SeqRecord 对象、转录方法(transcribe ())
  • 生物学意义:基因表达的核心步骤(DNA→mRNA),是 RNA-seq 数据解读的基础
  • 关键注意事项:Seq 对象的转录会自动将 T→U;需导入 Bio.Seq 模块;区分「转录」和「反转录」

22. 自定义密码子表(如线粒体密码子),翻译 DNA 序列

  • 核心知识点:Biopython CodonTable 模块、自定义密码子映射、翻译函数
  • 生物学意义:线粒体 / 叶绿体密码子表与核密码子表不同(如 UGA 在核中是终止密码子,在线粒体中编码 Trp),需针对性翻译
  • 关键注意事项:需参考 NCBI 标准线粒体密码子表;终止密码子仍用 * 表示

23. 预测 DNA 序列的所有开放阅读框(ORF):ATG 起始→终止密码子结束

  • 核心知识点:六框翻译(3 个正向 + 3 个反向)、ATG 识别、终止密码子截断
  • 生物学意义:ORF 预测是基因注释的核心(如从基因组序列中识别编码区)
  • 关键注意事项:需遍历 6 个阅读框;ORF 长度需≥3(编码至少 1 个氨基酸);记录 ORF 的位置和方向(正向 / 反向)

24. 筛选 ORF 中编码≥100 个氨基酸的 DNA 片段

  • 核心知识点:ORF 长度过滤、氨基酸数计算(DNA 长度 / 3)、序列提取
  • 生物学意义:短 ORF 可能是假阳性,筛选长 ORF 可提高功能基因预测的准确性
  • 关键注意事项:氨基酸数 =(终止密码子位置 - 起始密码子位置)/3;需排除含终止密码子的 ORF

25. 实现简单序列比对得分(匹配 + 1,错配 - 1,空位 - 2)

  • 核心知识点:动态规划入门、比对得分矩阵、空位罚分
  • 生物学意义:序列比对是进化分析、同源基因识别的核心,得分可量化序列相似性
  • 关键注意事项:本练习为全局比对(Needleman-Wunsch)简化版;空位罚分需统一(-2)

26. 统计 DNA 序列的 k-mer(k=4)频率,输出频率最高的前 5 个

  • 核心知识点:k-mer 生成、字典计数、排序取 TopN
  • 生物学意义:k-mer 频率分析可用于基因组组装、物种鉴定(不同物种的 k-mer 分布特征不同)
  • 关键注意事项:k=4 是常用值(四聚体);需排除含 N 的 k-mer;频率计算基于总有效 k-mer 数

27. 绘制 k-mer(k=3)频率分布直方图

  • 核心知识点:matplotlib 绘图、k-mer 统计、直方图美化
  • 生物学意义:可视化 k-mer 分布可快速识别异常(如峰值异常可能提示序列重复)
  • 关键注意事项:x 轴为 k-mer 类型,y 轴为频率;需旋转 x 轴标签(避免重叠);添加标题 / 坐标轴标签

28. 查找 FASTA 文件中所有序列共有的 6bp 保守 motif

  • 核心知识点:多序列 motif 比对、交集查找、字符串匹配
  • 生物学意义:保守 motif 通常是功能元件(如启动子、转录因子结合位点),是调控分析的重点
  • 关键注意事项:6bp 是常用长度;需先筛选长度≥6 的序列;允许少量错配(可选扩展)

29. 用 Biopython 计算蛋白质序列的分子量

  • 核心知识点:Biopython ProtParam 模块、分子量计算(molecular_weight ())
  • 生物学意义:蛋白分子量是电泳、质谱鉴定的关键参数(如验证蛋白表达产物大小)
  • 关键注意事项:需排除非标准氨基酸;默认不计算二硫键(可自定义)

30. 分析蛋白质序列的等电点(pI)

  • 核心知识点:Biopython ProtParam、等电点计算(isoelectric_point ())
  • 生物学意义:等电点决定蛋白在不同 pH 下的带电性,是蛋白纯化(如离子交换层析)的核心参数
  • 关键注意事项:需基于氨基酸的解离常数计算;结果保留两位小数

31. 基于 Kyte-Doolittle 量表绘制蛋白质疏水性曲线

  • 核心知识点:疏水性量表映射、滑动窗口(window=9)、折线图绘制
  • 生物学意义:疏水性曲线可预测蛋白跨膜区、表面暴露区(跨膜区通常为高疏水区)
  • 关键注意事项:滑动窗口大小设为 9(经典值);y 轴为疏水性得分,x 轴为氨基酸位置

32. 检测蛋白质序列中的潜在跨膜区(疏水性窗口≥2.0)

  • 核心知识点:滑动窗口统计、阈值筛选、位置记录
  • 生物学意义:跨膜蛋白是药物靶点的重要来源,快速检测跨膜区可缩小功能研究范围
  • 关键注意事项:阈值 2.0 为经典临界值;记录跨膜区的起始 / 终止位置;输出跨膜区数量

33. 基于 BLOSUM62 矩阵计算两个蛋白质序列的相似性得分

  • 核心知识点:BLOSUM62 矩阵、序列逐位比对、得分累加
  • 生物学意义:BLOSUM 矩阵是蛋白序列比对的标准矩阵,得分越高序列相似性越高
  • 关键注意事项:需确保序列等长;空位罚分可设为 - 4(经典值);得分归一化(除以序列长度)

34. 用 Biopython 的AlignIO读取多序列比对(MSA)文件,统计一致性

  • 核心知识点:AlignIO 读取 Clustal/FASTA 格式 MSA、一致性计算(相同碱基 / 总碱基)
  • 生物学意义:MSA 一致性反映序列保守性,是进化树构建、功能位点分析的基础
  • 关键注意事项:支持常见 MSA 格式(ClustalW、MAFFT);排除空位(-)计算一致性

35. 从 GenBank 文件中提取物种、基因名称、CDS 序列

  • 核心知识点:Biopython GenBank 解析、Feature 提取(CDS、source)
  • 生物学意义:GenBank 是 NCBI 核心数据库,提取核心信息是基因注释、序列分析的前提
  • 关键注意事项:CDS 序列需从 feature 中提取(而非整个序列);处理多 CDS 的情况

36. 统计 DNA 序列中简单重复序列(如 AAT 重复)的数量和最长长度

  • 核心知识点:正则表达式(re)、重复序列匹配、长度统计
  • 生物学意义:简单重复序列(SSR)是分子标记(SSR 标记)、遗传病(如亨廷顿舞蹈症)的研究重点
  • 关键注意事项:用正则匹配重复单元(如 AAT {2,} 表示至少 2 次重复);支持多种重复单元(如 AT、AAT)

37. 对 DNA 序列进行随机突变(每个碱基突变概率 0.01)

  • 核心知识点:随机数生成、碱基替换、概率控制
  • 生物学意义:模拟基因突变(SNP/Indel),用于验证突变分析工具的准确性
  • 关键注意事项:突变后碱基不能与原碱基相同;控制总突变率(0.01);记录突变位置和类型

38. 计算 DNA 序列的熵值(衡量碱基多样性:-Σ(p_i×log2 (p_i)))

  • 核心知识点:信息熵公式、碱基频率计算、对数运算
  • 生物学意义:熵值越高,碱基多样性越高(如编码区熵值低,非编码区熵值高)
  • 关键注意事项:排除 N 碱基;log2 底数(信息熵标准);熵值范围 0~2(4 种碱基的最大熵)

39. 筛选 FASTA 文件中 GC 含量在 40%-60% 之间的序列

  • 核心知识点:批量 GC 计算、条件筛选、结果输出
  • 生物学意义:GC 含量异常的序列可能是污染(如质粒、外源 DNA),需筛选后分析
  • 关键注意事项:区间为左闭右闭 [40,60];输出筛选后的序列为新 FASTA 文件

40. 计算 FASTQ 序列的平均质量值(Phred33 编码)

  • 核心知识点:FASTQ 格式解析、Phred33 转换(质量字符→数值)、均值计算
  • 生物学意义:质量值反映测序碱基的准确性(Q20 表示错误率 1%),是测序数据质控的核心
  • 关键注意事项:Phred33 编码规则(!→0,~→93);排除空 read;输出平均质量值和 Q20/Q30 比例

三、统计与数据处理(41-60)

(核心级:聚焦生物数据的统计建模、差异分析,贴近高通量数据挖掘)

41. 读取基因表达量矩阵(CSV),计算每个基因的均值 / 标准差

  • 核心知识点:pandas 读取 CSV、按行统计(axis=1)、缺失值处理
  • 生物学意义:表达量均值反映基因基础表达水平,标准差反映表达稳定性
  • 关键注意事项:表达量矩阵格式(行:基因,列:样本);处理 0 值 / 缺失值(填充为 0 或删除)

42. 对表达量数据做 log2 转换(处理 0 值:替换为最小值的 1/10)

  • 核心知识点:log2 转换、最小值计算、异常值替换
  • 生物学意义:表达量数据通常呈偏态分布,log2 转换后更接近正态分布,便于统计分析
  • 关键注意事项:0 值不能直接 log2(无意义),需替换为极小值;转换后保留原索引(基因名)

43. 实现表达量 Z-score 归一化((x-μ)/σ)

  • 核心知识点:Z-score 公式、按基因 / 样本归一化、pandas 广播
  • 生物学意义:归一化消除样本间系统误差(如测序深度差异),使表达量可跨样本比较
  • 关键注意事项:明确归一化维度(按基因:axis=1;按样本:axis=0);避免标准差为 0 的情况(如基因在所有样本中表达量相同)

44. 计算两个基因表达量的皮尔逊相关系数,输出显著性(p 值)

  • 核心知识点:scipy.stats.pearsonr、相关性检验、p 值解读
  • 生物学意义:相关系数反映基因共表达关系(r>0.8 为强正相关),p 值验证相关性显著性
  • 关键注意事项:样本数≥3 才有统计意义;p<0.05 为显著相关;结果输出(r 值,p 值)

45. 筛选差异表达基因(FC≥2 且 p<0.05,t 检验)

  • 核心知识点:t 检验(scipy.stats.ttest_ind)、倍数变化(FC)计算、条件筛选
  • 生物学意义:差异表达基因是处理组 vs 对照组的核心差异,是功能富集分析的基础
  • 关键注意事项:FC = 处理组均值 / 对照组均值(log2FC=1 对应 FC=2);t 检验需满足正态分布(可选非参数检验扩展)

46. 对基因列表做 GO 富集分析(调用 goatools)

  • 核心知识点:goatools 安装与使用、GO 注释文件下载、富集 p 值计算
  • 生物学意义:GO 富集分析将差异基因映射到生物学过程(BP)、细胞组分(CC)、分子功能(MF),解释基因功能
  • 关键注意事项:需下载对应物种的 GO 注释文件;校正 p 值(FDR)避免假阳性;输出显著富集的 GO term(p<0.05)

47. 解析 VCF 文件,统计转换(A↔G/C↔T)和颠换的数量占比

  • 核心知识点:VCF 格式解析、SNP 类型判断、比例计算
  • 生物学意义:转换 / 颠换比(Ti/Tv)是基因组进化的重要指标(人类基因组 Ti/Tv≈2.1),异常比值提示测序误差
  • 关键注意事项:仅统计 SNP(排除 Indel);转换为嘌呤↔嘌呤(A/G)或嘧啶↔嘧啶(C/T),其余为颠换

48. 计算各染色体的 SNP 密度(SNP 数 / 染色体长度)

  • 核心知识点:染色体长度获取、SNP 计数、密度归一化
  • 生物学意义:SNP 密度反映基因组变异程度(如着丝粒区 SNP 密度低),是遗传多样性分析的核心
  • 关键注意事项:染色体长度需从参考基因组文件获取;密度单位为 SNP/Mb(转换为每百万碱基)

49. 分组统计甲基化 β 值(病例组 vs 对照组)的均值 / 中位数

  • 核心知识点:分组统计(pandas.groupby)、甲基化 β 值范围(0~1)
  • 生物学意义:甲基化 β 值反映 CpG 位点甲基化程度,分组统计可识别差异甲基化位点
  • 关键注意事项:β 值 = 甲基化信号 /(甲基化 + 非甲基化信号);排除 β 值为 NA 的位点

50. 用 t 检验验证两组基因表达量的显著性差异

  • 核心知识点:独立样本 t 检验、正态性检验、方差齐性检验
  • 生物学意义:验证处理组与对照组的表达差异是否具有统计学意义,是差异基因筛选的核心
  • 关键注意事项:非正态分布需用 Wilcoxon 秩和检验;方差不齐需用 t' 检验

51. 对表达量矩阵做 PCA,提取前 2 个主成分

  • 核心知识点:sklearn.decomposition.PCA、数据标准化、主成分提取
  • 生物学意义:PCA 降维可直观展示样本间的相似性(如对照组 / 处理组是否聚类)
  • 关键注意事项:PCA 前需对数据标准化(mean=0,std=1);按样本降维(行:样本,列:基因)

52. 对表达量数据做层次聚类(行:基因,列:样本)

  • 核心知识点:scipy.cluster.hierarchy、热图绘制前的聚类、距离矩阵计算
  • 生物学意义:层次聚类可将表达模式相似的基因 / 样本聚为一类,识别共表达模块
  • 关键注意事项:距离度量用欧氏距离 / 皮尔逊相关;聚类方法用 ward(最小方差)

53. 解析 GTF 文件,统计各基因类型(protein_coding/lncRNA)的数量

  • 核心知识点:GTF 格式解析(pandas/gtfparse)、feature 筛选(gene)、属性提取
  • 生物学意义:基因类型统计是基因组注释的基础(如 lncRNA 占比反映非编码 RNA 的重要性)
  • 关键注意事项:GTF 的第 3 列为 feature(筛选 gene);第 9 列含基因类型(gene_biotype)

54. 计算基因表达的变异系数(CV = 标准差 / 均值),筛选高变基因

  • 核心知识点:CV 公式、按基因统计、高变基因筛选(CV>1)
  • 生物学意义:高变基因通常是组织特异性表达基因或响应处理的核心基因
  • 关键注意事项:排除均值为 0 的基因;CV 无单位,可跨基因比较

55. 筛选在≥80% 样本中表达量 > 0 的基因

  • 核心知识点:pandas 条件计数、比例筛选、行过滤
  • 生物学意义:过滤低表达 / 仅在少数样本中表达的基因,减少后续分析的假阳性
  • 关键注意事项:阈值 80% 可自定义;表达量 > 0 需根据数据类型调整(如 TPM>0.1)

56. 合并多个差异基因列表,统计共同上调 / 下调基因

  • 核心知识点:集合操作(交集 / 并集)、Venn 图数据准备、计数统计
  • 生物学意义:多组学 / 多重复实验中,共同差异基因是核心候选基因(可靠性更高)
  • 关键注意事项:明确上调 / 下调标签;用集合求交集(common_up = set (list1_up) & set (list2_up))

57. 计算密码子使用偏性(CUB),识别最优密码子

  • 核心知识点:密码子计数、相对同义密码子使用度(RSCU)、最优密码子筛选
  • 生物学意义:密码子偏性与基因表达水平相关(高表达基因偏好使用 tRNA 丰度高的密码子)
  • 关键注意事项:RSCU = 实际计数 / 期望计数;最优密码子为 RSCU>1 且使用频率最高的密码子

58. 解析 BED 文件,统计 ChIP-seq 峰的平均长度和染色体分布

  • 核心知识点:BED 格式解析(pandas)、长度计算(end-start)、染色体计数
  • 生物学意义:ChIP-seq 峰的长度和分布反映转录因子结合位点的特征(如峰越长结合越稳定)
  • 关键注意事项:BED 文件前 3 列为 chr/start/end;start<end;排除 chrM(线粒体)等非核染色体

59. 拟合 RNA-seq read 计数的负二项分布(scipy.stats)

  • 核心知识点:负二项分布拟合、参数估计(均值 / 离散度)、拟合优度检验
  • 生物学意义:RNA-seq read 计数符合负二项分布,是差异表达分析(DESeq2/edgeR)的理论基础
  • 关键注意事项:需用原始 read 计数(未归一化);用 Kolmogorov-Smirnov 检验验证拟合效果

60. 计算进化树分支长度总和,评估物种进化距离

  • 核心知识点:Biopython Phylo、进化树解析、分支长度求和
  • 生物学意义:分支长度总和反映物种间的总进化距离,是进化速率分析的核心
  • 关键注意事项:支持 Newick/Nexus 格式进化树;排除根节点的分支长度(可选)

四、可视化(61-80)

(实战级:聚焦生物数据可视化,覆盖科研论文常用图表)

61. 绘制 DNA 序列碱基组成饼图(A/T/C/G 占比)

  • 核心知识点:matplotlib.pie、比例计算、饼图美化(标签、颜色)
  • 生物学意义:直观展示碱基组成特征,快速识别异常(如 A/T 占比过高可能为 AT-rich 区域)
  • 关键注意事项:颜色区分(A: 绿,T: 红,C: 蓝,G: 黄);添加百分比标签;避免饼图类别过多

62. 绘制 FASTA 序列长度分布直方图(带均值线)

  • 核心知识点:matplotlib.hist、均值线绘制(axvline)、直方图参数调整
  • 生物学意义:可视化序列长度分布,快速发现异常值(如过长 / 过短序列)
  • 关键注意事项:设置合理的 bin 数;均值线用红色标注;添加网格线提高可读性

63. 绘制基因表达量箱线图(分组:对照组 vs 处理组)

  • 核心知识点:seaborn.boxplot、分组着色、异常值标注
  • 生物学意义:箱线图展示表达量的分布特征(中位数、四分位数、异常值),直观比较两组差异
  • 关键注意事项:y 轴用 log2 转换后的表达量;分组颜色区分(对照组:蓝色,处理组:红色);添加标题和坐标轴标签

64. 绘制 PCA 散点图(按样本分组着色,标注解释方差)

  • 核心知识点:PCA 降维、seaborn.scatterplot、解释方差计算(pca.explained_variance_ratio_)
  • 生物学意义:PCA 图直观展示样本间的聚类关系(如对照组 / 处理组是否分离)
  • 关键注意事项:x 轴为 PC1(标注解释方差 %),y 轴为 PC2;按分组着色;添加样本标签(可选)

65. 绘制基因表达量热图(seaborn.clustermap,行标准化)

  • 核心知识点:seaborn.clustermap、行 Z-score 标准化、聚类参数调整
  • 生物学意义:热图是表达量分析的核心图表,可快速识别共表达基因和样本聚类
  • 关键注意事项:行标准化(使每个基因的表达量在不同样本间可比较);颜色映射用 RdBu_r;隐藏冗余刻度

66. 可视化多序列比对(MSA)结果(标注保守位点)

  • 核心知识点:Biopython AlignIO、matplotlib 绘制序列、保守位点标注
  • 生物学意义:可视化 MSA 可快速识别保守位点(如功能结构域的关键氨基酸)
  • 关键注意事项:保守位点用星号标注;序列 ID 对齐;颜色区分不同碱基 / 氨基酸

67. 绘制 GC 含量滑动窗口图(窗口 100bp,步长 50bp)

  • 核心知识点:滑动窗口计算 GC、折线图绘制、窗口位置标注
  • 生物学意义:滑动窗口 GC 图可识别 GC 富集区(如启动子区)或 GC 岛(CpG 岛)
  • 关键注意事项:窗口大小 100bp(可自定义);步长 50bp;y 轴为 GC 含量(0~100%)

68. 绘制蛋白质疏水性曲线(窗口 9,标注跨膜区)

  • 核心知识点:滑动窗口疏水性计算、折线图、跨膜区高亮(axvspan)
  • 生物学意义:疏水性曲线 + 跨膜区标注可直观展示蛋白的膜结构特征
  • 关键注意事项:窗口 9 为经典值;跨膜区(疏水性≥2.0)用灰色高亮;添加阈值线(y=2.0)

69. 绘制 SNP 曼哈顿图(染色体位置 x 轴,-log10 (p) y 轴)

  • 核心知识点:曼哈顿图绘制、染色体颜色交替、显著阈值线(y=-log10 (5e-8))
  • 生物学意义:曼哈顿图是 GWAS 分析的核心图表,识别显著关联的 SNP 位点
  • 关键注意事项:x 轴为累计染色体位置;不同染色体交替着色;添加显著阈值线(红色)

70. 绘制甲基化 β 值密度曲线(病例 / 对照组叠加)

  • 核心知识点:seaborn.kdeplot、密度曲线叠加、透明度调整
  • 生物学意义:密度曲线展示甲基化水平的整体分布,比较两组的甲基化模式差异
  • 关键注意事项:两组曲线用不同颜色 + 透明度(alpha=0.5);添加图例;y 轴为密度,x 轴为 β 值(0~1)

71. 用 Biopython.Phylo 可视化 Newick 格式进化树

  • 核心知识点:Phylo.read、进化树样式调整(分支颜色、标签)、保存图片
  • 生物学意义:进化树可视化是物种进化、基因家族分析的核心图表
  • 关键注意事项:支持圆形 / 矩形布局;标注 /bootstrap 值(可选);调整分支长度比例

72. 绘制 GO 富集分析条形图(按 p 值排序,显示前 10 条)

  • 核心知识点:seaborn.barplot、p 值排序、负对数转换(-log10 (p))
  • 生物学意义:条形图直观展示显著富集的 GO term,按 p 值排序便于识别核心功能
  • 关键注意事项:y 轴为 GO term(按 - plog10 (p) 降序),x 轴为 - log10 (p);颜色按 GO 类别(BP/CC/MF)区分

73. 绘制 RNA-seq read 覆盖度沿基因的分布图

  • 核心知识点:pysam 计算覆盖度、基因区域归一化(0~100%)、折线图
  • 生物学意义:覆盖度分布图可识别基因的可变剪切位点(如外显子覆盖度高,内含子低)
  • 关键注意事项:将基因分为 5'UTR、CDS、3'UTR;覆盖度归一化(均值);添加误差线(样本标准差)

74. 绘制密码子使用频率热力图

  • 核心知识点:密码子频率矩阵、seaborn.heatmap、颜色映射
  • 生物学意义:热力图展示不同密码子的使用频率,快速识别最优密码子
  • 关键注意事项:行为氨基酸,列为密码子;颜色映射用 YlGnBu;标注频率值(可选)

75. 绘制差异基因火山图(log2FC x 轴,-log10 (p) y 轴,标注关键基因)

  • 核心知识点:火山图绘制、差异基因着色(上调:红,下调:绿,无差异:灰)、基因标注
  • 生物学意义:火山图是差异表达分析的核心图表,快速识别显著差异的关键基因
  • 关键注意事项:阈值线(log2FC=±1,-log10 (p)=1.3);标注 Top10 差异基因;调整点的大小(可选)

76. 绘制 ChIP-seq 峰染色体分布条形图

  • 核心知识点:seaborn.countplot、染色体排序、计数标注
  • 生物学意义:条形图展示 ChIP-seq 峰在各染色体的分布,识别富集染色体
  • 关键注意事项:染色体按编号排序(chr1~chr22, chrX, chrY);标注每个染色体的峰数量;颜色统一或按计数渐变

77. 绘制蛋白质二级结构占比饼图(α 螺旋 /β 折叠 / 无规则卷曲)

  • 核心知识点:二级结构预测(Biopython PredictProtein)、比例计算、饼图美化
  • 生物学意义:二级结构占比反映蛋白的结构特征(如膜蛋白富含 α 螺旋)
  • 关键注意事项:颜色区分(α 螺旋:红,β 折叠:蓝,无规则卷曲:灰);添加百分比标签;避免小占比类别(合并为「其他」)

78. 绘制样本间表达量相关性热图(皮尔逊系数)

  • 核心知识点:相关性矩阵计算(pandas.corr)、seaborn.heatmap、下三角展示
  • 生物学意义:样本相关性热图验证实验重复性(重复样本间相关性应 > 0.8)
  • 关键注意事项:仅展示下三角(避免重复);颜色映射用 RdYlBu_r;标注相关系数值

79. 绘制 DNA 突变位点 Circos 图(入门版:染色体、突变类型)

  • 核心知识点:circosplotlib(或 pyCircos)、突变位点坐标映射、轨道绘制
  • 生物学意义:Circos 图直观展示突变位点在全基因组的分布,识别突变热点
  • 关键注意事项:入门版简化为 2 个轨道(染色体、突变类型);颜色区分突变类型(SNP/Indel);调整轨道大小

80. 绘制基因表达时间序列折线图(多处理组对比)

  • 核心知识点:seaborn.lineplot、时间点 x 轴、多组折线叠加、误差线
  • 生物学意义:时间序列图展示基因在不同处理时间的表达变化趋势,识别表达模式
  • 关键注意事项:y 轴为 log2 表达量;不同处理组用不同颜色 + 线型;添加误差线(标准差)

五、数据库与文件处理(81-90)

(工具级:聚焦生物信息学标准文件解析、数据库交互,提升实战效率)

81. 过滤 FASTQ 低质量序列(平均质量 < 20,Phred33)

  • 核心知识点:FASTQ 解析、Phred33 转换、质量过滤、结果输出
  • 生物学意义:低质量 read 会导致比对错误,过滤是测序数据质控的核心步骤
  • 关键注意事项:保留高质量 read 的完整信息(ID、序列、+、质量);输出过滤后的 FASTQ 文件;统计过滤率

82. 解析 GFF3 文件,提取基因坐标(染色体、起始、终止、链)

  • 核心知识点:GFF3 格式解析、feature 筛选(gene)、坐标提取
  • 生物学意义:GFF3 是基因组注释标准格式,提取基因坐标是后续区间分析(如 ChIP-seq 峰重叠)的基础
  • 关键注意事项:GFF3 第 3 列为 feature(筛选 gene);链信息(+/-)需保留;坐标从 1 开始

83. 调用 NCBI Entrez API,按基因名获取 GenBank Accession 号

  • 核心知识点:Entrez.email 设置、esearch/efetch、XML 解析
  • 生物学意义:批量获取 Accession 号是从 NCBI 下载序列的前提,提升数据获取效率
  • 关键注意事项:必须设置 email(NCBI 要求);控制请求频率(避免被封禁);处理多 Accession 的情况

84. 从 NCBI 下载指定 Accession 的 DNA 序列,保存为 FASTA

  • 核心知识点:Entrez.efetch、序列格式指定(fasta)、文件保存
  • 生物学意义:批量下载 NCBI 序列,避免手动操作,提升效率
  • 关键注意事项:支持多个 Accession 批量下载;保存为标准 FASTA 格式;验证序列完整性

85. 解析 BLAST tabular 结果,筛选 E 值 < 1e-10 的比对

  • 核心知识点:BLAST outfmt=6 解析、E 值筛选、结果输出
  • 生物学意义:E 值越小比对越显著,筛选低 E 值结果可减少假阳性,识别同源序列
  • 关键注意事项:outfmt=6 的列顺序(qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore);E 值为科学计数法(需转换为浮点数)

86. 将 VCF 文件转换为 CSV,保留核心字段(chr/pos/ref/alt)

  • 核心知识点:VCF 解析、字段筛选、CSV 保存
  • 生物学意义:CSV 格式更易被 pandas 处理,便于后续统计分析(如 SNP 类型统计)
  • 关键注意事项:过滤注释行(## 开头);保留核心字段 + 过滤 Indel(可选);处理多等位基因(alt 含多个碱基)

87. 批量重命名 FASTA 序列 ID(替换前缀,如「Gene_」→「LOC_」)

  • 核心知识点:FASTA 解析、字符串替换、ID 重命名、结果输出
  • 生物学意义:统一序列 ID 格式,避免下游分析因 ID 格式不一致报错
  • 关键注意事项:仅替换 ID 前缀,保留后缀(如 Gene_123→LOC_123);验证重命名后的 ID 无重复

88. 从 UniProt 批量下载蛋白质序列(按基因 ID)

  • 核心知识点:UniProt REST API、批量请求、FASTA 保存
  • 生物学意义:UniProt 是蛋白序列注释的权威数据库,批量下载提升效率
  • 关键注意事项:API 请求格式(https://www.uniprot.org/uniprot/?query=gene:XXX&format=fasta);处理基因 ID 无匹配的情况

89. 用 pysam 统计 BAM 文件中比对到参考基因组的 read 数

  • 核心知识点:pysam.AlignmentFile、flag 过滤(0/16 为有效比对)、计数
  • 生物学意义:比对率是测序数据质控的核心指标(合格数据比对率 > 80%)
  • 关键注意事项:flag=0(正向比对)、flag=16(反向比对);排除未比对的 read(flag=4);统计总 read 数和比对 read 数

90. 合并多个 GTF 文件,去重(按基因 ID + 坐标)

  • 核心知识点:GTF 解析、去重键(gene_id+chr+start+end)、结果输出
  • 生物学意义:批量合并 GTF 文件并去重,避免重复注释,提升基因组注释效率
  • 关键注意事项:去重规则需明确;保留第一个出现的记录;输出为标准 GTF 格式

六、高通量数据入门(91-100)

(进阶实战:聚焦测序数据核心分析流程,贴近生信工程师日常工作)

91. 计算 FASTQ 文件的 Q20/Q30 比例,评估测序质量

  • 核心知识点:FASTQ 质量值转换、Q20/Q30 筛选、比例计算
  • 生物学意义:Q20(错误率 1%)/Q30(错误率 0.1%)比例是测序质量的核心指标(合格数据 Q30>80%)
  • 关键注意事项:Phred33 编码;统计所有 read 的所有碱基;输出 Q20/Q30 比例和均值质量

92. 从 SAM 文件统计 RNA-seq read 比对率(flag=0/16 为有效比对)

  • 核心知识点:SAM 格式解析、flag 位判断、比对率计算
  • 生物学意义:RNA-seq 比对率反映数据质量(如 rRNA 去除效果差会导致比对率低)
  • 关键注意事项:SAM flag 的含义(4 = 未比对,0/16 = 已比对);统计总 read 数和有效比对数;排除 PCR 重复(flag=1024)

93. 入门级 SNP 检测:对比两个 DNA 序列,识别单碱基变异

  • 核心知识点:序列逐位比对、SNP 识别、位置记录、类型判断
  • 生物学意义:SNP 检测是基因组变异分析的核心,入门级实现可理解 SNP 识别的底层逻辑
  • 关键注意事项:仅识别单碱基变异(排除 Indel);记录 SNP 位置、参考碱基、变异碱基;验证结果(如用 BLAST 比对)

94. 基于 BAM 文件计算测序深度(coverage),输出均值 / 中位数

  • 核心知识点:pysam.depth、深度计算、统计量输出
  • 生物学意义:测序深度反映基因组覆盖程度(如全基因组测序深度≥30×),是数据质控的核心
  • 关键注意事项:计算指定区域(如编码区)的深度;排除深度为 0 的位点;输出均值 / 中位数 / 标准差

95. 筛选 ChIP-seq 峰中与基因启动子区(TSS±2000bp)重叠的峰

  • 核心知识点:BEDTools(或 pandas)区间重叠、TSS 坐标获取、峰筛选
  • 生物学意义:启动子区的 ChIP-seq 峰通常是转录因子结合位点,是调控分析的核心
  • 关键注意事项:TSS 坐标从 GTF 文件获取;启动子区定义为 TSS±2000bp;输出重叠峰的 ID 和位置

96. 过滤甲基化 450K 芯片的交叉反应探针

  • 核心知识点:交叉反应探针列表、探针 ID 匹配、过滤
  • 生物学意义:450K 芯片的交叉反应探针会导致甲基化结果假阳性,过滤是质控的必要步骤
  • 关键注意事项:下载标准交叉反应探针列表;按探针 ID 过滤;统计过滤前后的探针数量

97. 从 read 计数和基因长度计算 FPKM 值

  • 核心知识点:FPKM 公式(FPKM=read 数 ×1e9/(总 read 数 × 基因长度))、批量计算
  • 生物学意义:FPKM 是 RNA-seq 表达量的常用归一化方法(消除基因长度和测序深度的影响)
  • 关键注意事项:基因长度为外显子长度之和;总 read 数为比对到基因的总 read 数;结果保留两位小数

98. 基于序列互补性预测 miRNA 靶基因(简单匹配规则)

  • 核心知识点:miRNA 种子区(2-8nt)、3'UTR 序列互补、靶基因预测
  • 生物学意义:miRNA 通过结合靶基因 3'UTR 调控表达,靶基因预测是 miRNA 功能分析的核心
  • 关键注意事项:种子区互补是核心规则;允许 1 个错配(可选);输出靶基因列表和结合位点

99. 统计宏基因组 OTU 表中各物种的相对丰度

  • 核心知识点:OTU 表解析、按物种分组求和、相对丰度计算(百分比)
  • 生物学意义:相对丰度反映菌群结构(如致病菌丰度升高可能与疾病相关)
  • 关键注意事项:OTU 表格式(行:OTU,列:样本,值:计数);按分类水平统计(门 / 纲 / 目 / 科 / 属 / 种);结果保留两位小数

100. 构建基因共表达网络(r>0.8,输出边列表)

  • 核心知识点:相关性矩阵计算、阈值筛选(r>0.8)、边列表构建、文件输出
  • 生物学意义:共表达网络可识别功能相关的基因模块(如通路基因),是系统生物学的核心
  • 关键注意事项:用皮尔逊 / 斯皮尔曼相关;阈值 r>0.8 为强相关;边列表格式(gene1, gene2, r_value)
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐