目录
一、Python基础语法
1.1 数据类型
Python是动态类型语言,常用数据类型包括:
1 | # 数字 |
生信案例:计算DNA序列的反向互补序列
1 | def reverse_complement(seq): |
1.2 控制流(循环与条件)
条件语句
1 | gc_content = 55 |
循环
1 | # for循环遍历序列 |
生信案例:计算密码子翻译
1 | genetic_code = { |
1.3 函数
函数是可重用的代码块,使用def定义。
1 | # 基本函数 |
1.4 文件操作
生信中经常需要处理FASTA、FASTQ、VCF等格式的文件。
1 | # 读取文件(推荐:使用with语句自动关闭) |
生信案例:解析FASTA文件
1 | def parse_fasta(filename): |
1.5 异常处理
处理文件不存在、格式错误等异常情况。
1 | def safe_read_fasta(filename): |
1.6 数据结构
列表(List)- 有序可变序列
1 | # 创建列表 |
字典(Dict)- 键值对
1 | # 创建字典 |
元组(Tuple)- 不可变序列
1 | # 元组用于不可变数据 |
集合(Set)- 无序不重复元素
1 | # 创建集合 |
1.7 类与面向对象
类用于封装数据和方法,适合表示生物实体。
1 | class Sequence: |
继承示例:创建特定类型的序列类
1 | class DNASequence(Sequence): |
1.8 模块与包
模块是包含Python代码的文件,包是模块的集合。
1 | # 导入模块 |
创建自己的模块:
1 | # 保存为 bio_utils.py |
二、生信常用第三方库
2.1 NumPy - 数值计算
NumPy是Python科学计算的基础,提供高效的多维数组操作。
1 | import numpy as np |
生信案例:处理基因表达矩阵
1 | import numpy as np |
2.2 Pandas - 数据处理
Pandas提供DataFrame和Series数据结构,是生信数据分析的利器。
1 | import pandas as pd |
生信案例:处理GTF基因注释文件
1 | import pandas as pd |
2.3 Matplotlib - 数据可视化
Matplotlib是Python最基础的绘图库。
1 | import matplotlib.pyplot as plt |
2.4 Biopython - 生物信息学
Biopython是生信领域最重要的Python库。
1 | from Bio import SeqIO |
三、生信核心算法与实战
3.1 序列比对算法
序列比对是生信最基础的算法,用于比较两个或多个序列的相似性。
全局比对:Needleman-Wunsch算法
1 | import numpy as np |
动态规划矩阵可视化:

上图展示了Needleman-Wunsch算法的动态规划矩阵:
- 颜色深浅表示得分高低(深色=高分)
- 蓝色箭头表示回溯路径,从右下角到左上角
- 对角线移动表示匹配/不匹配
- 向上/向左移动表示插入空位
局部比对:Smith-Waterman算法
1 | def smith_waterman(seq1, seq2, match=2, mismatch=-1, gap=-1): |
序列比对可视化:

上图展示了序列比对的可视化结果:
- 绿色块:匹配的碱基
- 红色块:不匹配的碱基
- 实线:匹配连接
- 虚线:不匹配连接
3.2 k-mer分析
k-mer是指序列中长度为k的所有子串,广泛用于序列组装、比对和分类。
1 | from collections import Counter |
k-mer频率可视化:

上图展示了2-mer和3-mer的频率分布:
- 左图:所有16种2-mer的频率
- 右图:最常见的8种3-mer
- 可用于识别序列特征和模式
k-mer在生信中的应用:
1 | def estimate_genome_size(kmer_counts): |
3.3 GC含量分析
GC含量是基因组研究中的重要指标,影响DNA稳定性和基因表达。
1 | import numpy as np |
GC含量滑动窗口可视化:

上图展示了基因组GC含量的滑动窗口分析:
- 青色区域:GC含量曲线
- 红色虚线:平均GC含量
- 橙色区域:基因区域(通常GC含量较高)
- 可用于识别基因岛和异染色质区域
3.4 层次聚类
层次聚类用于根据基因表达模式对样本或基因进行分组。
1 | import numpy as np |
层次聚类树状图:

上图展示了层次聚类的结果:
- Y轴:距离(不相似度)
- X轴:样本
- 树状结构:显示样本间的层次关系
- 可以切割树来得到指定数量的聚类
3.5 PCA降维分析
主成分分析(PCA)用于降维和可视化高维基因表达数据。
1 | import numpy as np |
PCA分析可视化:

上图展示了PCA分析结果:
- 左图:PCA散点图,不同颜色代表不同组别
- 右图:各主成分解释的方差比例
- PC1和PC2通常能解释大部分变异
3.6 Motif发现
Motif是DNA或蛋白质序列中的保守模式,通常具有生物学功能。
1 | import numpy as np |
序列Motif可视化:

上图展示了序列Motif的位置权重矩阵(PWM):
- 堆叠高度:该位置的信息含量
- 字母大小:该碱基在该位置的出现频率
- 颜色:A=红, C=蓝, G=橙, T=绿
- 可以清晰看到保守位置(如P1主要是T)
四、综合实战:RNA-seq数据分析流程
下面是一个完整的RNA-seq数据分析流程,整合前面所学的所有知识:
1 | import numpy as np |
五、学习资源与建议
推荐学习路径
Python基础(1-2周)
- 数据类型、控制流、函数
- 文件操作、异常处理
- 类与面向对象编程
科学计算库(1-2周)
- NumPy数组操作
- Pandas数据处理
- Matplotlib可视化
生信专项(2-4周)
- Biopython使用
- 序列分析算法
- 高通量数据处理
推荐资源
在线教程:
- Biopython官方教程
- Rosalind - 生信编程练习平台
- Python for Biologists
书籍:
- 《Python生物信息学数据管理》
- 《Bioinformatics with Python Cookbook》
实践项目:
- 编写FASTA/FASTQ解析器
- 实现简单的序列比对工具
- 分析真实的RNA-seq数据
附录:常用代码片段
1 | # 1. 快速读取FASTA |
结语:Python是生物信息学领域最重要的编程语言之一。掌握Python基础语法和常用库后,你可以处理从序列分析到高通量测序数据的各种任务。建议多动手实践,通过实际项目加深理解。