SuperAPI AI 工具集

scikit-bio

数据与分析

查看项目

更新于 10-21 16:33

技能介绍

用途

scikit-bio 是一个面向生物数据的综合 Python 库,适用于生物信息学分析,涵盖序列操作、序列比对、系统发育、微生物生态与多元统计等方向。当需要处理 DNA、RNA、蛋白质序列,读写生物文件格式,构建或分析系统发育树,计算多样性指标,进行排序分析或对生物/生态数据做统计检验时,可使用该库。它也适用于微生物组与群落生态数据分析、蛋白质语言模型嵌入处理以及生物数据表操作。

主要能力

1. 序列操作

使用 DNA、RNA、Protein 等专用类处理带字母表校验的序列,通用序列可用 Sequence 类。支持从 FASTA、FASTQ、GenBank、EMBL 读写序列,进行切片、拼接、搜索、反向互补、转录(DNA→RNA)、翻译(RNA→蛋白质),用正则查找基序,计算 Hamming 与 k-mer 距离,处理质量分数与元数据。FASTQ 的质量分数会自动载入位置元数据。元数据类型包括序列级(ID、描述)、位置级(逐碱基)和区间级(区域/特征)。

2. 序列比对

使用 pair_align 引擎(scikit-bio 0.7.0 引入)进行成对与多序列比对。支持全局、局部和半全局比对(末端自由可配置),提供 pair_align_nucl(类 BLASTN)和 pair_align_prot(类 BLASTP)便捷封装。评分可配置:匹配/错配元组或命名替换矩阵,线性或仿射空位罚分。PairAlignPath 结果携带 CIGAR 字符串并可转换为带空位的比对序列。多序列比对用 TabularMSA 存储与操作。pair_align 取代了已移除的 SSW 封装和已弃用的纯 Python 比对器。

3. 系统发育树

从距离矩阵构建树(UPGMA/WPGMA、邻接法 NJ、GME、BME),用最近邻互换(nni)重排拓扑,支持修剪、重根、遍历等操作。可计算 patristic 距离(cophenet)和 Robinson-Foulds 距离(compare_rfd),提供 ASCII 可视化与 Newick 格式读写。GME 和 BME 对大树具有良好可扩展性。树可带根或不带根,部分指标要求特定带根方式。

4. 多样性分析

计算 alpha 多样性(sobs、observed_features、chao1、ace、Shannon、Simpson、Hill 数、Faith's PD、广义 PD、Pielou 均匀度)和 beta 多样性(Bray-Curtis、Jaccard、加权/非加权 UniFrac、欧氏距离),支持稀疏化与子采样。计数须为整数丰度而非相对频率。系统发育指标需提供 tree 和 taxa 到叶节点的映射。alpha 多样性返回 pandas.Series,beta 多样性返回 DistanceMatrix。可用 partial_beta_diversity() 计算特定样本对,block_beta_diversity() 处理大规模分块计算。

5. 排序方法

提供 PCoA(从距离矩阵)、CA(对应分析)、CCA(带环境约束的典范对应分析)、RDA(冗余分析)以及用于特征解释的 biplot 投影。OrdinationResults 暴露基于 pandas 的属性:samples、features、eigvals、proportion_explained、biplot_scores、sample_constraints,并可用 plot() 生成 matplotlib 图。

6. 统计检验

提供 PERMANOVA、ANOSIM、PERMDISP、Mantel 检验、Bioenv,以及 skbio.stats.composition 中的差异丰度方法 ancom、dirmult_ttest 和纵向混合效应 dirmult_lme。置换检验提供非参数显著性,建议使用 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)。大文件可用生成器避免内存问题,支持 stdin/stdout 管道(verify=False)。

8. 距离矩阵

DistanceMatrix 存储对称、对角为零的矩阵,PairwiseMatrix 允许一般/非对称值。支持基于 ID 的索引与切片,与多样性、排序和统计检验集成,可读写分隔文本格式,兼容 pandas、numpy 和 scikit-learn。

9. 生物表

通过原生 Table 类读写 BIOM 格式(HDF5 与 JSON)。0.7.0+ 的表分发系统允许函数直接接受任意 table_like 输入(BIOM Table、pandas/polars DataFrame、NumPy 数组或 AnnData),无需显式转换。支持数据增强技术(phylomix、mixup、aitchison_mixup、compos_cutmix)、样本/特征过滤与归一化、元数据集成。BIOM 表是 QIIME 2 工作流的标准格式,行通常为样本、列为特征(OTU/ASV),支持稀疏与稠密表示。

10. 蛋白质嵌入

使用 ProteinEmbedding、ProteinVector 存储蛋白质语言模型(ESM、ProtTrans 等)的嵌入,可转换为距离矩阵、生成排序对象用于可视化,并导出为 numpy/pandas 供机器学习使用。适用于序列聚类、分类和可视化。

使用方式

安装命令资料中仅显示为“uv p”,未提供完整内容,暂未提供完整安装说明。基本使用模式为:导入 skbio 后,用 skbio.DNA.read('input.fasta') 读取序列,用 reverse_complement()、transcribe()、translate() 等做序列操作;用 skbio.alignment 的 pair_align_nucl、pair_align_prot、pair_align 做比对;用 skbio.tree 的 nj、upgma、gme、bme 建树;用 skbio.diversity 的 alpha_diversity、beta_diversity 计算多样性;用 skbio.stats.ordination 的 pcoa、cca 做排序;用 skbio.stats.distance 的 permanova、anosim、mantel 做统计检验;用 skbio.io.read/write 做格式转换。

适用场景

  • 生物序列(DNA、RNA、蛋白质)的读写、转换与分析
  • 成对与多序列比对、基序搜索
  • 系统发育树构建、比较与可视化
  • 微生物组与群落生态的多样性计算
  • 高维生物数据的排序降维与可视化
  • 生态与生物数据的假设检验
  • 蛋白质语言模型嵌入的下游分析

限制

资料未提供关于收费、价格、平台支持范围、性能上限或具体效果的信息,暂未提供。计数数据须为整数丰度;系统发育指标需提供树和 taxa 映射;部分树指标要求特定带根方式;PERMANOVA 对离散度差异敏感;差异丰度检验应使用原始计数。