mcpField
B
bioinformatics

bioinformatics

github.com/itallstartedwithaidea数据与数据库44108 次安装28 周前更新
代码仓库

关于 bioinformatics

Bioinformatics 是面向计算生物学分析的 Agent 技能,可生成可复现的数据分析流程,涵盖测序、转录组、蛋白质和系统生物学。它根据数据类型组织标准步骤,并提供参数化、文档化的流程。

主要功能

  1. 01单细胞 RNA-seq 与 Scanpy 分析
  2. 02序列比对与同源性搜索
  3. 03基因调控网络推断
  4. 04GO、KEGG 通路富集分析
  5. 05变异分析与蛋白质结构预测

适用场景

  1. 01处理 FASTA/FASTQ 序列数据
  2. 02分析单细胞 RNA-seq 表达数据
  3. 03开展基因调控网络或通路分析
  4. 04从序列预测蛋白质结构或功能

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/itallstartedwithaidea/agent-skills --skill bioinformatics

安装后在 Claude Code 中输入/bioinformatics确认已加载。

详细介绍

生物信息学

属于 Agent Skills™,由 googleadsagent.ai™ 提供

描述

生物信息学提供计算生物学工作流,涵盖序列分析、蛋白质结构预测、使用 Scanpy 进行单细胞 RNA-seq 分析、基因调控网络推断和通路富集分析。Agent 使用 BioPython、Scanpy 和标准生物信息学工具生成可复现的分析流程,并遵循各类分析的社区最佳实践。

现代生物学生成数据的速度超过了生物学家分析数据的速度。一次单细胞 RNA-seq 实验会生成数万个细胞的表达谱,每个细胞都测量了数千个基因。本技能编码了标准分析流程,可将原始测序数据转化为生物学见解:质量控制、归一化、降维、聚类、差异表达和通路富集。

本技能的范围不仅限于转录组学,还包括基因组学(变异检测、注释)、蛋白质组学(序列分析、结构域预测)和系统生物学(基因调控网络、蛋白质-蛋白质相互作用)。每个流程都有参数配置、文档记录且可复现——相同的输入始终产生相同的输出。

适用场景

  • 使用 Scanpy 分析单细胞 RNA-seq 数据
  • 执行序列比对或同源性搜索
  • 构建基因调控网络模型
  • 运行通路富集分析(GO、KEGG)
  • 使用 BioPython 处理 FASTA/FASTQ 文件
  • 根据序列预测蛋白质结构或功能

工作原理

graph TD
    A[Raw Sequencing Data] --> B[Quality Control]
    B --> C[Alignment / Quantification]
    C --> D{Analysis Type}
    D -->|Single-Cell| E[Scanpy Pipeline]
    D -->|Bulk RNA-seq| F[DESeq2 / edgeR]
    D -->|Genomics| G[Variant Calling]
    E --> H[Normalize → PCA → UMAP → Cluster]
    H --> I[Differential Expression]
    I --> J[Pathway Enrichment]
    F --> I
    G --> K[Annotation + Impact Prediction]
    J --> L[Biological Interpretation]
    K --> L

流程会根据数据类型分支处理。单细胞数据遵循 Scanpy 标准工作流;批量 RNA-seq 使用 DESeq2 或 edgeR;基因组数据则进行变异检测和注释。所有路径最终都会汇聚到生物学解释。

实现

import scanpy as sc
import numpy as np

def scrna_pipeline(adata_path: str, min_genes: int = 200, min_cells: int = 3) -> sc.AnnData:
    adata = sc.read_h5ad(adata_path)

    sc.pp.filter_cells(adata, min_genes=min_genes)
    sc.pp.filter_genes(adata, min_cells=min_cells)

    adata.var["mt"] = adata.var_names.str.startswith("MT-")
    sc.pp.calculate_qc_metrics(adata, qc_vars=["mt"], inplace=True)
    adata = adata[adata.obs.pct_counts_mt < 20, :].copy()

    sc.pp.normalize_total(adata, target_sum=1e4)
    sc.pp.log1p(adata)

    sc.pp.highly_variable_genes(adata, n_top_genes=2000, flavor="seurat_v3")
    adata.raw = adata
    adata = adata[:, adata.var.highly_variable].copy()

    sc.pp.scale(adata, max_value=10)
    sc.tl.pca(adata, n_comps=50)
    sc.pp.neighbors(adata, n_pcs=30)
    sc.tl.umap(adata)
    sc.tl.leiden(adata, resolution=0.5)

    sc.tl.rank_genes_groups(adata, groupby="leiden", method="wilcoxon")

    return adata

def pathway_enrichment(gene_list: list[str], organism: str = "hsapiens") -> pd.DataFrame:
    from gprofiler import GProfiler
    gp = GProfiler(return_dataframe=True)
    results = gp.profile(
        organism=organism,
        query=gene_list,
        sources=["GO:BP", "GO:MF", "KEGG", "REAC"],
    )
    return results[results["significant"]].sort_values("p_value")
from Bio import SeqIO, Align

def sequence_analysis(fasta_path: str) -> dict:
    records = list(SeqIO.parse(fasta_path, "fasta"))
    aligner = Align.PairwiseAligner()
    aligner.mode = "global"

    stats = {
        "num_sequences": len(records),
        "lengths": [len(r.seq) for r in records],
        "gc_content": [float(r.seq.count("G") + r.seq.count("C")) / len(r.seq) for r in records],
    }
    return stats

最佳实践

  • 将少于 200 个基因的细胞以及出现在少于 3 个细胞中的基因过滤掉,作为最低质量阈值
  • 移除线粒体读数占比超过 20% 的细胞,因为它们可能已经死亡或濒临死亡
  • 对单细胞数据的差异表达分析使用 Wilcoxon 秩和检验
  • 对所有基因层级的检验进行多重检验校正(Benjamini-Hochberg)
  • 在流程的每个阶段保存中间 AnnData 对象,以确保可复现性
  • 报告分析所用的 Scanpy、AnnData 和 Python 版本

平台兼容性

平台支持情况备注
Cursor完全支持支持 Python 和 Jupyter
VS Code完全支持支持 Jupyter + Scanpy 集成
Windsurf完全支持科学计算 Python
Claude Code完全支持流程脚本生成
Cline完全支持生物信息学工作流
aider部分支持代码层级支持

相关技能

关键词

bioinformatics scanpy single-cell rna-seq biopython gene-expression pathway-enrichment sequence-analysis


© 2026 googleadsagent.ai™ | Agent Skills™ | MIT License

评论

支持 Markdown