<< All versions
Skill v1.0.0
currentAutomated scan100/100aipoch/medical-research-skills/scikit-bio
──Details
PublishedSeptember 28, 2026 at 02:27 AM
Content Hashsha256:b2768a19b03ce27e...
Git SHA
──Files
Files (1 file, 5.4 KB)
SKILL.md5.4 KBactive
SKILL.md · 128 lines · 5.4 KB
version: "1.0.0" name: scikit-bio description: A Python bioinformatics toolkit for sequence, phylogeny, and microbiome/community-ecology analysis; use it when you need to compute diversity/ordination/statistics from biological data and standard formats (FASTA/FASTQ/Newick/BIOM). license: MIT author: AIPOCH
When to Use
- You need to parse, validate, and manipulate biological sequences (DNA/RNA/protein) and their metadata.
- You are running microbiome/community-ecology workflows (alpha/beta diversity, UniFrac, ordination, PERMANOVA).
- You need to build, transform, or compare phylogenetic trees (Newick I/O, pruning/rerooting, patristic distances).
- You want to compute and work with distance matrices and downstream multivariate analyses (PCoA, Mantel, ANOSIM).
- You need to read/write common bioinformatics formats (FASTA/FASTQ, Newick, BIOM) and convert between them.
Key Features
- Sequence objects:
DNA,RNA,Protein, and genericSequencewith validation, slicing, motif search, reverse complement, transcription/translation, and metadata handling. - Alignment utilities: pairwise local alignment (SSW-based) and multiple sequence alignment containers (
TabularMSA) with consensus support. - Phylogenetics:
TreeNodemanipulation, tree construction from distance matrices (e.g., Neighbor Joining), and tree distance/metrics. - Diversity: alpha diversity (e.g., Shannon, Faith’s PD) and beta diversity (e.g., Bray-Curtis, UniFrac) returning
Series/DistanceMatrix. - Ordination & stats: PCoA and ecological hypothesis tests (PERMANOVA, ANOSIM, Mantel) operating on distance matrices.
- I/O ecosystem: FASTA/FASTQ and Newick reading/writing; BIOM table support via
Table.
Dependencies
scikit-bio>=0.6.0numpy>=1.23pandas>=1.5
Example Usage
python
# pip install scikit-bio numpy pandasimport numpy as npimport pandas as pdimport skbiofrom skbio import DNA, TreeNodefrom skbio.diversity import alpha_diversity, beta_diversityfrom skbio.stats.ordination import pcoafrom skbio.stats.distance import permanova# ----------------------------# 1) Sequence manipulation# ----------------------------seq = DNA("ACGTACGTNN--ACGT", metadata={"id": "seq1"})seq_clean = seq.degap()rc = seq_clean.reverse_complement()motif_hits = seq_clean.find_with_regex("ACG[TA]")print("Original:", str(seq))print("Degapped:", str(seq_clean))print("Reverse complement:", str(rc))print("Motif hits:", list(motif_hits))# ----------------------------# 2) Microbiome-style counts# ----------------------------# rows = samples, cols = features/OTUs/ASVscounts = np.array([[10, 0, 3, 1],[ 0, 8, 2, 0],[ 5, 1, 0, 4],], dtype=int)sample_ids = ["S1", "S2", "S3"]feature_ids = ["F1", "F2", "F3", "F4"]# Alpha diversity (Shannon)shannon = alpha_diversity("shannon", counts, ids=sample_ids)print("\nAlpha diversity (Shannon):")print(shannon)# Beta diversity (Bray-Curtis) -> DistanceMatrixdm = beta_diversity("braycurtis", counts, ids=sample_ids)print("\nBeta diversity (Bray-Curtis) distance matrix:")print(dm)# ----------------------------# 3) Ordination (PCoA)# ----------------------------ord_res = pcoa(dm)print("\nPCoA sample coordinates (first 2 axes):")print(ord_res.samples[["PC1", "PC2"]])# ----------------------------# 4) PERMANOVA on the distance matrix# ----------------------------grouping = pd.Series(["A", "A", "B"], index=sample_ids)perma = permanova(dm, grouping=grouping, permutations=99)print("\nPERMANOVA result:")print(perma)# ----------------------------# 5) Tree I/O (Newick) + basic manipulation# ----------------------------newick = "((F1:0.1,F2:0.2):0.3,(F3:0.2,F4:0.4):0.1);"tree = TreeNode.read([newick])subtree = tree.shear(["F1", "F2", "F3"])print("\nSheared tree (tips F1,F2,F3):")print(subtree.ascii_art())
Implementation Details
- Sequence model
- Use
DNA/RNA/Proteinfor alphabet-aware validation and biological operations (e.g.,reverse_complement,transcribe,translate). - Use
Sequencewhen you need a generic container without strict alphabet constraints. - FASTQ quality scores (when read via scikit-bio I/O) are stored as positional metadata.
- Diversity computations
alpha_diversity(metric, counts, ids=...)returns a per-sample vector (typically a pandasSeries).beta_diversity(metric, counts, ids=...)returns aDistanceMatrixsuitable for ordination and hypothesis tests.- Count inputs should be non-negative integers representing abundances (not relative frequencies). Phylogenetic metrics (e.g., Faith’s PD, UniFrac) additionally require a tree and feature/OTU IDs.
- Distance matrices
DistanceMatrixenforces symmetry and a zero diagonal; IDs are used for consistent alignment with metadata and group labels.- Many downstream methods (PCoA, PERMANOVA, ANOSIM, Mantel) operate directly on
DistanceMatrix.
- Ordination
pcoa(dm)performs eigen-decomposition on a transformed distance matrix and returnsOrdinationResultscontaining eigenvalues and sample coordinates.
- Permutation-based statistics
permanova(dm, grouping, permutations=N)estimates significance by permuting group labels; increasepermutations(e.g., 999+) for more stable p-values in real analyses.