SuperAPI AI 工具集

scikit-bio

数据与分析

查看项目

更新于 10-16 04:03

技能介绍

scikit-bio 是一个用于处理生物数据的综合 Python 库,面向生物信息学分析,覆盖序列操作、比对、系统发育、微生物生态学和多元统计等方向。本介绍依据其能力说明整理,未提供的收费、平台或效果信息不作推测。

一、用途

该工具适用于以下场景:处理生物序列(DNA、RNA、蛋白质);读写生物文件格式(FASTA、FASTQ、GenBank、Newick、BIOM 等);进行序列比对或基序查找;构建或分析系统发育树;计算多样性指标(alpha/beta 多样性、UniFrac 距离);执行排序分析(PCoA、CCA、RDA);对生物或生态数据运行统计检验(PERMANOVA、ANOSIM、Mantel);分析微生物组或群落生态数据;处理蛋白质语言模型嵌入;操作生物数据表。

二、主要能力

  1. 序列操作:使用 DNA、RNA、蛋白质专用类;支持从 FASTA、FASTQ、GenBank、EMBL 读取与写入;序列切片、拼接、搜索;反向互补、转录(DNA→RNA)、翻译(RNA→蛋白质);用正则查找基序;计算距离(Hamming、基于 k-mer);处理序列质量分数与元数据。通用 Sequence 类可用于无字母表限制的序列,FASTQ 质量分数自动载入位置元数据,元数据类型包括序列级、位置级和区间级。

  2. 序列比对:全局比对(Needleman-Wunsch 及半全局变体)、局部比对(Smith-Waterman,local_pairwise_align_ssw 更快)、可配置评分方案、CIGAR 字符串转换、TabularMSA 多序列比对存储与操作、共识序列计算,并可在 scikit-bio、BioPython、Biotite 比对格式间转换。蛋白质比对可用 StripedSmithWaterman。

  3. 系统发育树:从距离矩阵构建树(UPGMA、WPGMA、邻接法 nj、GME、BME);树修剪、重根、遍历;距离计算(patristic、cophenetic、Robinson-Foulds);ASCII 可视化;Newick 读写。GME、BME 对大树可扩展性较好。

  4. 多样性分析:alpha 多样性(丰富度、Shannon 熵、Simpson 指数、Faith's PD、Pielou 均匀度);beta 多样性(Bray-Curtis、Jaccard、加权/非加权 UniFrac、欧氏距离);系统发育多样性指标需要树输入;稀疏化与子采样。计数须为整数丰度,系统发育指标需树与 OTU ID 映射,beta 多样性返回 DistanceMatrix。

  5. 排序方法:PCoA、CA、CCA、RDA 及双标投影,结果包含特征值、解释比例与样本/特征坐标,可与 matplotlib、seaborn、plotly 配合可视化,并支持保存与读取。

  6. 统计检验:PERMANOVA、ANOSIM、PERMDISP、Mantel 检验、Bioenv。置换检验提供非参数显著性,建议 999 次以上置换;PERMANOVA 对离散度差异敏感,宜配合 PERMDISP。

  7. 文件 I/O 与格式转换:支持 19 种以上生物格式,包括序列(FASTA、FASTQ、GenBank、EMBL、QSeq)、比对(Clustal、PHYLIP、Stockholm)、树(Newick)、表(BIOM 的 HDF5 与 JSON)、距离矩阵、BLAST+6/7、GFF3、排序结果及带校验的 TSV/CSV 元数据。大文件可用生成器节约内存,格式可自动检测。

  8. 距离矩阵:DistanceMatrix(对称、对角为零)与 DissimilarityMatrix(允许非对称);基于 ID 的索引与切片;可读写分隔文本格式;与 pandas、numpy、scikit-learn 兼容。

  9. 生物表:BIOM 格式读写,与 pandas、polars、AnnData、numpy 集成,支持数据增强(phylomix、mixup、组成型方法)、样本/特征过滤与归一化、元数据集成。BIOM 表常见于 QIIME 2 工作流。

  10. 蛋白质嵌入:支持蛋白质语言模型嵌入(ESM、ProtTrans 等)的存储、转换为距离矩阵、生成排序对象以可视化,并可导出为 numpy/pandas 供机器学习使用,衔接蛋白质语言模型与传统生物信息学分析。

三、使用方式

安装命令:uv pip install scikit-bio。

典型代码模式示例(资料原文给出):

读取序列:seq = skbio.DNA.read('input.fasta')

序列操作:rc = seq.reverse_complement();rna = seq.transcribe();protein = rna.translate()

基序查找:motif_positions = seq.find_with_regex('ATG[ACGT]{3}')

双序列比对:from skbio.alignment import local_pairwise_align_ssw

多序列比对:msa = TabularMSA.read('alignment.fasta', constructor=skbio.DNA)

树构建:from skbio.tree import nj;tree = nj(distance_matrix)

多样性:alpha = alpha_diversity('shannon', counts_matrix, ids=sample_ids);bc_dm = beta_diversity('braycurtis', counts_matrix, ids=sample_ids)

排序:from skbio.stats.ordination import pcoa;pcoa_results = pcoa(distance_matrix)

统计:from skbio.stats.distance import permanova;permanova_results = permanova(distance_matrix, grouping, permutations=999)

四、适用场景

常见工作流包括:微生物组多样性分析(读 BIOM 表 → 计算 alpha/beta 多样性 → PCoA 排序 → PERMANOVA 检验);系统发育分析(读序列 → 比对 → 构建距离矩阵 → 建树 → 计算系统发育距离);序列处理(读 FASTQ → 质量过滤 → 修剪 → 基序查找 → 翻译 → 写 FASTA);比较基因组学(读序列 → 双序列比对 → 计算距离 → 建树 → 分析支系)。

五、限制与注意

计数须为整数丰度而非相对频率;系统发育指标需要树与 OTU ID 映射;Beta 多样性可用 partial_beta_diversity() 并行计算指定样本对;大树建议用 GME 或 BME 而非 NJ;BIOM 的 HDF5 格式比 JSON 更高效;大文件建议使用生成器避免内存问题;PERMANOVA 对离散度差异敏感,需配合 PERMDISP。其余关于收费、价格、平台支持等信息暂未提供。

六、参考资源

官方文档:https://scikit.bio/docs/latest/;GitHub 仓库:https://github.com/scikit-bio/scikit-bio;论坛支持:https://forum.qiime2.org(scikit-bio 属于 QIIME 2 生态)。