Communitygithub.com

polars-bio

Hochperformante genomische Intervalloperationen und Bioinformatik-Datei-I/O auf Polars DataFrames. Überlappung, nächste, Zusammenführung, Abdeckung, Komplement, Subtraktion für BED/VCF/BAM/GFF-Intervalle. Streaming, Cloud-nativ, schnellere Alternative zu bioframe.

Was ist polars-bio?

polars-bio ist eine Hochleistungs-Python-Bibliothek für genomische Intervalloperationen und Bioinformatik-Datei-I/O, die auf Polars, Apache Arrow und Apache DataFusion basiert. Sie bietet eine vertraute DataFrame-zentrierte API für Intervallarithmetik (Überlappung, nächste, Zusammenführung, Abdeckung, Komplement, Subtraktion) sowie das Lesen und Schreiben gängiger Bioinformatikformate (BED, VCF, BAM, CRAM, GFF/GTF, FASTA, FASTQ). Die Bibliothek ist 6-38x schneller als bioframe in realen genomischen Benchmarks und unterstützt Streaming/Out-of-Core-Verarbeitung für große Genome über DataFusion, Cloud-natives Datei-I/O (S3, GCS, Azure) mit Prädikat-Pushdown und zwei API-Stile: funktional (`pb.overlap(df1, df2)`) und Method-Chaining (`df1.lazy().pb.overlap(df2)`). Sie ist ideal für Entwickler, die große genomische Datensätze verarbeiten, von bioframe migrieren oder SQL-Abfragen auf Genomdaten ausführen möchten, und wird von Plattformen wie Claude Code, Cursor und Codex unterstützt. Die Bibliothek wird mit Python 3.11–3.14 verwendet und ist über PyPI installierbar.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/K-Dense-AI/scientific-agent-skills/tree/main/skills/polars-bio

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht polars-bio?

Übersicht

polars-bio ist eine Hochleistungs-Python-Bibliothek für genomische Intervalloperationen und Bioinformatik-Datei-I/O, aufgebaut auf Polars, Apache Arrow und Apache DataFusion. Sie bietet eine vertraute DataFrame-zentrierte API für Intervallarithmetik (Überlappung, nächste, Zusammenführung, Abdeckung, Komplement, Subtraktion) und das Lesen/Schreiben gängiger Bioinformatikformate (BED, VCF, BAM, CRAM, GFF/GTF, FASTA, FASTQ).

Wichtige Wertversprechen:

  • 6-38x schneller als bioframe in realen genomischen Benchmarks
  • Streaming/Out-of-Core-Unterstützung für große Genome über DataFusion
  • Cloud-nativ Datei-I/O (S3, GCS, Azure) mit Prädikat-Pushdown
  • Zwei API-Stile: funktional (pb.overlap(df1, df2)) und Method-Chaining (df1.lazy().pb.overlap(df2))
  • SQL-Schnittstelle für Genomdaten über die DataFusion-SQL-Engine

Wann dieses Skill verwendet werden sollte

Verwenden Sie dieses Skill, wenn Sie:

  • Genomische Intervalloperationen durchführen (Überlappung, nächste, Zusammenführung, Abdeckung, Komplement, Subtraktion)
  • Bioinformatik-Dateiformate lesen/schreiben (BED, VCF, BAM, CRAM, GFF/GTF, FASTA, FASTQ)
  • Große genomische Datensätze verarbeiten, die nicht in den Arbeitsspeicher passen (Streaming-Modus)
  • SQL-Abfragen auf Genomdateien ausführen
  • Von bioframe zu einer schnelleren Alternative migrieren
  • Lesetiefe/Pileup aus BAM/CRAM-Dateien berechnen
  • Mit Polars DataFrames arbeiten, die genomische Intervalle enthalten

Kurzanleitung

Installation

Erfordert Python 3.11–3.14 (siehe PyPI).

uv pip install "polars-bio==0.31.0"

Für pandas-Kompatibilität (pandas ≥3.0):

uv pip install "polars-bio[pandas]==0.31.0"

Grundlegendes Überlappungsbeispiel

import polars as pl
import polars_bio as pb

# Erstelle zwei Intervall-DataFrames
df1 = pl.DataFrame({
    "chrom": ["chr1", "chr1", "chr1"],
    "start": [1, 5, 22],
    "end":   [6, 9, 30],
})

df2 = pl.DataFrame({
    "chrom": ["chr1", "chr1"],
    "start": [3, 25],
    "end":   [8, 28],
})

# Funktionale API (gibt standardmäßig LazyFrame zurück)
ergebnis = pb.overlap(df1, df2)
ergebnis_df = ergebnis.collect()

# Erhalte direkt einen DataFrame
ergebnis_df = pb.overlap(df1, df2, output_type="polars.DataFrame")

# Method-Chaining-API (über .pb-Accessor auf LazyFrame)
ergebnis = df1.lazy().pb.overlap(df2)
ergebnis_df = ergebnis.collect()

Lesen einer BED-Datei

import polars_bio as pb

# Eager-Lesen (lädt gesamte Datei)
df = pb.read_bed("regions.bed")

# Lazy-Scan (Streaming, für große Dateien)
lf = pb.scan_bed("regions.bed")
ergebnis = lf.collect()

Kernfunktionen

1. Genomische Intervalloperationen

polars-bio bietet 8 Kern-Intervalloperationen für genomische Bereichsarithmetik. Alle Operationen akzeptieren Polars DataFrames mit den Spalten chrom, start, end (konfigurierbar). Alle Operationen geben standardmäßig ein LazyFrame zurück (verwenden Sie output_type="polars.DataFrame" für sofortige Ergebnisse).

Operationen:

  • overlap / count_overlaps - Finden oder zählen sich überlappender Intervalle zwischen zwei Sätzen (overlap_output="left" gibt nur Treffer aus df1 seit 0.30.0)
  • nearest - Finden der nächsten Intervalle (mit konfigurierbaren k-, overlap-, distance-Parametern)
  • merge - Zusammenführen sich überlappender/aneinandergrenzender Intervalle innerhalb eines Satzes
  • cluster - Zuweisen von Cluster-IDs zu sich überlappenden Intervallen
  • coverage - Berechnen von Abdeckungszahlen pro Intervall (Zwei-Eingabe-Operation)
  • complement - Finden von Lücken zwischen Intervallen innerhalb eines Genoms
  • subtract - Entfernen von Teilen von Intervallen, die einen anderen Satz überlappen

Beispiel:

import polars_bio as pb

# Finde sich überlappende Intervalle (gibt LazyFrame zurück)
ergebnis = pb.overlap(df1, df2, suffixes=("_1", "_2"))

# Zähle Überlappungen pro Intervall
anzahl = pb.count_overlaps(df1, df2)

# Führe sich überlappende Intervalle zusammen
zusammengefuehrt = pb.merge(df1)

# Finde die nächsten Intervalle
naechste = pb.nearest(df1, df2)

# Sammle jedes LazyFrame-Ergebnis in ein DataFrame
ergebnis_df = ergebnis.collect()

Referenz: Siehe references/interval_operations.md für detaillierte Dokumentation aller Operationen, Parameter, Ausgabeschemata und Leistungsüberlegungen.

2. Bioinformatik-Datei-I/O

Lesen und Schreiben gängiger Bioinformatikformate mit den Funktionen read_*, scan_*, write_* und sink_*. Unterstützt Cloud-Speicher (S3, GCS, Azure) und Komprimierung (GZIP, BGZF).

Unterstützte Formate:

  • BED - Genomische Intervalle (read_bed, scan_bed, write_* über generisch)
  • VCF - Genetische Varianten (read_vcf, scan_vcf, write_vcf, sink_vcf)
  • VCF Zarr - Analysebereite Zarr-Stores (read_vcf_zarr, scan_vcf_zarr; lokale Verzeichnispfade)
  • BAM - Alignierte Reads (read_bam, scan_bam, write_bam, sink_bam)
  • CRAM - Komprimierte Alignments (read_cram, scan_cram, write_cram, sink_cram)
  • GFF - Genannotationen (read_gff, scan_gff)
  • GTF - Genannotationen (read_gtf, scan_gtf)
  • FASTA - Referenzsequenzen (read_fasta, scan_fasta, write_fasta, sink_fasta)
  • FASTQ - Sequenzierungsreads (read_fastq, scan_fastq, write_fastq, sink_fastq)
  • SAM - Text-Alignments (read_sam, scan_sam, write_sam, sink_sam)
  • Hi-C-Paare - Chromatinkontakte (read_pairs, scan_pairs)

Beispiel:

import polars_bio as pb

# Lesen einer VCF-Datei
varianten = pb.read_vcf("proben.vcf.gz")

# Lazy-Scan einer BAM-Datei (Streaming)
alignments = pb.scan_bam("aligned.bam")

# Lesen von GFF-Annotationen
gene = pb.read_gff("annotationen.gff3")

# Cloud-Speicher (einzelne Parameter, kein Dict)
df = pb.read_bed("s3://bucket/regionen.bed",
                 allow_anonymous=True)

Referenz: Siehe references/file_io.md für Spaltenschemata pro Format, Parameter, Cloud-Speicheroptionen und Komprimierungsunterstützung.

3. SQL-Datenverarbeitung

Registrieren Sie Bioinformatikdateien als Tabellen und fragen Sie sie mit der DataFusion SQL ab. Kombiniert die Leistungsfähigkeit von SQL mit den genomisch bewussten Readern von polars-bio.

import polars as pl
import polars_bio as pb

# Registriere Dateien als SQL-Tabellen (Pfad zuerst, name= als Schlüsselwortargument)
pb.register_vcf("proben.vcf.gz", name="varianten")
pb.register_bed("zielregionen.bed", name="regionen")

# Abfrage mit SQL (gibt LazyFrame zurück)
ergebnis = pb.sql("SELECT chrom, start, end, ref, alt FROM varianten WHERE qual > 30")
ergebnis_df = ergebnis.collect()

# Registriere einen Polars DataFrame als SQL-Tabelle
pb.from_polars("meine_intervalle", df)
ergebnis = pb.sql("SELECT * FROM meine_intervalle WHERE chrom = 'chr1'").collect()

Referenz: Siehe references/sql_processing.md für Registerfunktionen, SQL-Syntax und Beispiele.

4. Pileup-Operationen

Berechnen Sie die pro-Base-Lesetiefe aus BAM/CRAM-Dateien mit CIGAR-bewusster Tiefenberechnung.

import polars_bio as pb

# Berechne Tiefe über eine BAM-Datei
tiefe_lf = pb.depth("aligned.bam")
tiefe_df = tiefe_lf.collect()

# Mit Qualitätsfilter
tiefe_lf = pb.depth("aligned.bam", min_mapping_quality=20)

Referenz: Siehe references/pileup_operations.md für Parameter und Integrationsmuster.

Schlüsselkonzepte

Koordinatensysteme

polars-bio verwendet standardmäßig 1-basierte Koordinaten (genomische Konvention). Dies kann global geändert werden:

import polars_bio as pb

# Wechsel zu 0-basierten halboffenen Koordinaten (Standard ist 1-basiert / False)
pb.set_option("datafusion.bio.coordinate_system_zero_based", True)

# Zurück zu 1-basiert (Standard)
pb.set_option("datafusion.bio.coordinate_system_zero_based", False)

I/O-Funktionen akzeptieren auch use_zero_based, um Koordinatenmetadaten im resultierenden DataFrame zu setzen:

# Lese BED mit expliziten 0-basierten Metadaten
df = pb.read_bed("regionen.bed", use_zero_based=True)

Wichtig: BED-Dateien sind im Dateiformat immer 0-basiert halboffen. polars-bio übernimmt die Konvertierung automatisch beim Lesen von BED-Dateien. Koordinatenmetadaten werden von I/O-Funktionen an DataFrames angehängt und durch Operationen propagiert.

Zwei API-Stile

Funktionale API - eigenständige Funktionen, explizite Eingaben:

ergebnis = pb.overlap(df1, df2, suffixes=("_1", "_2"))
zusammengefuehrt = pb.merge(df)

Method-Chaining-API - über .pb-Accessor auf LazyFrames (nicht DataFrames):

ergebnis = df1.lazy().pb.overlap(df2)
zusammengefuehrt = df.lazy().pb.merge()

Wichtig: Der .pb-Accessor für Intervalloperationen ist nur auf LazyFrame verfügbar. Auf DataFrame bietet .pb nur Schreiboperationen (write_bam, write_vcf, etc.).

Method-Chaining ermöglicht fließende Pipelines:

# Verkette Intervalloperationen (Hinweis: overlap gibt Spalten mit Suffixen aus,
# daher vor merge umbenennen, das chrom/start/end erwartet)
ergebnis = (
    df1.lazy()
    .pb.overlap(df2)
    .filter(pl.col("start_2") > 1000)
    .select(
        pl.col("chrom_1").alias("chrom"),
        pl.col("start_1").alias("start"),
        pl.col("end_1").alias("end"),
    )
    .pb.merge()
    .collect()
)

Probe-Build-Architektur

Für Zwei-Eingabe-Operationen (overlap, nearest, count_overlaps, coverage) verwendet polars-bio eine Probe-Build-Join-Strategie:

  • Der erste DataFrame ist die Probe (über die iteriert wird)
  • Der zweite DataFrame ist der Build (für die Suche indiziert)

Für beste Leistung übergeben Sie den größeren DataFrame als erstes Argument (Probe) und den kleineren als zweites (Build).

Spaltenkonventionen

Standardmäßig erwartet polars-bio Spalten mit den Namen chrom, start, end. Benutzerdefinierte Spaltennamen können über Listen angegeben werden:

ergebnis = pb.overlap(
    df1, df2,
    cols1=["chromosom", "anfang", "ende"],
    cols2=["chr", "pos_start", "pos_end"],
)

Rückgabetypen und Sammeln von Ergebnissen

Alle Intervalloperationen und pb.sql() geben standardmäßig ein LazyFrame zurück. Verwenden Sie .collect(), um Ergebnisse zu materialisieren, oder übergeben Sie output_type="polars.DataFrame" für sofortige Auswertung:

# Lazy (Standard) - sammle bei Bedarf
ergebnis_lf = pb.overlap(df1, df2)
ergebnis_df = ergebnis_lf.collect()

# Eager - erhalte direkt DataFrame
ergebnis_df = pb.overlap(df1, df2, output_type="polars.DataFrame")

Streaming und Out-of-Core-Verarbeitung

Verwenden Sie für Datensätze, die größer als der verfügbare Arbeitsspeicher sind, scan_*-Funktionen und Streaming-Ausführung:

# Scanne Dateien lazy
lf = pb.scan_bed("grosse_intervalle.bed")

# Verarbeite mit Polars-Streaming (erfordert polars ≥1.37, das mit polars-bio gebündelt ist)
ergebnis = lf.collect(engine="streaming")

DataFusion-Streaming ist standardmäßig für Intervalloperationen aktiviert und verarbeitet Daten in Batches, ohne den vollständigen Datensatz in den Arbeitsspeicher zu laden.

Häufige Fallstricke

  1. .pb-Accessor auf DataFrame vs LazyFrame: Intervalloperationen (overlap, merge, etc.) sind nur auf LazyFrame.pb verfügbar. DataFrame.pb hat nur Schreibmethoden. Verwenden Sie .lazy(), um vor dem Verketten von Intervallops zu konvertieren.

  2. LazyFrame-Rückgaben: Alle Intervalloperationen und pb.sql() geben standardmäßig LazyFrame zurück. Vergessen Sie nicht .collect() oder verwenden Sie output_type="polars.DataFrame".

  3. Spaltennamen-Konflikte: polars-bio erwartet standardmäßig chrom, start, end. Verwenden Sie die Parameter cols1/cols2 (als Listen), wenn Ihre Spalten andere Namen haben.

  4. Koordinatensystem-Metadaten: Intervalloperationen lesen Koordinatenmetadaten von I/O-Funktionen oder dem DataFrame config_meta. Setzen Sie für manuell erstellte DataFrames df.config_meta.set(coordinate_system_zero_based=True) (0-basiert) oder False (1-basiert). Wenn Metadaten fehlen, fällt polars-bio auf die globale Einstellung datafusion.bio.coordinate_system_zero_based zurück (mit einer Warnung). Setzen Sie pb.set_option("datafusion.bio.coordinate_system_check", True), um stattdessen MissingCoordinateSystemError auszulösen. Unterschiedliche Systeme zwischen Eingaben lösen CoordinateSystemMismatchError aus.

  5. Probe-Build-Reihenfolge ist wichtig: Bei overlap, nearest und coverage wird der erste DataFrame gegen den zweiten geprüft. Das Vertauschen der Argumente ändert, welche Intervalle in den linken vs. rechten Ausgabespalten erscheinen, und kann die Leistung beeinflussen.

  6. INT32-Positionsgrenze: Genomische Positionen werden als 32-Bit-Ganzzahlen gespeichert, was Koordinaten auf ~2,1 Milliarden begrenzt. Dies ist für alle bekannten Genome ausreichend, könnte aber bei benutzerdefinierten Koordinatenräumen ein Problem sein.

  7. BAM-Index-Anforderungen: read_bam und scan_bam erfordern eine .bai-Indexdatei neben der BAM. Erstellen Sie eine mit samtools index, falls nicht vorhanden.

  8. Parallele Ausführung standardmäßig deaktiviert: DataFusion-Parallelität standardmäßig auf 1 Partition. Aktivieren Sie sie für große Datensätze:

    pb.set_option("datafusion.execution.target_partitions", 8)
    
  9. CRAM hat separate Funktionen: Verwenden Sie read_cram/scan_cram/register_cram für CRAM-Dateien (nicht read_bam). CRAM-Funktionen erfordern einen Parameter reference_path.

Best Practices

  1. Verwenden Sie scan_* für große Dateien: Bevorzugen Sie scan_bed, scan_vcf, etc. gegenüber read_* für Dateien, die größer als der verfügbare Arbeitsspeicher sind. Scan-Funktionen ermöglichen Streaming und Prädikat-Pushdown.

  2. Konfigurieren Sie Parallelität für große Datensätze:

    import os
    pb.set_option("datafusion.execution.target_partitions", os.cpu_count())
    
  3. Verwenden Sie BGZF-Komprimierung: BGZF-komprimierte Dateien (.bed.gz, .vcf.gz) unterstützen parallele Block-Dekomprimierung, die deutlich schneller als einfaches GZIP ist.

  4. Wählen Sie Spalten frühzeitig aus: Wenn nur bestimmte Spalten benötigt werden, wählen Sie sie frühzeitig aus, um die Speichernutzung zu reduzieren:

    df = pb.read_vcf("gross.vcf.gz").select("chrom", "start", "end", "ref", "alt")
    
  5. Verwenden Sie Cloud-Pfade direkt: Übergeben Sie S3/GCS/Azure-URIs direkt an Lese-/Scan-/Register-Funktionen, anstatt Dateien zuerst herunterzuladen. Authentifizierter Zugriff verwendet Ihre Cloud-SDK-Anmeldeinformationen (AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY, GOOGLE_APPLICATION_CREDENTIALS, Azure-Standardwerte) nur, wenn auf diese Cloud-Pfade zugegriffen wird:

    df = pb.read_bed("s3://my-bucket/regionen.bed", allow_anonymous=True)
    
  6. Bevorzugen Sie die funktionale API für einzelne Operationen, Method-Chaining für Pipelines: Verwenden Sie pb.overlap() für einmalige Operationen und .lazy().pb.overlap(), wenn Sie mehrstufige Pipelines erstellen.

Ressourcen

references/

Detaillierte Dokumentation für jede Hauptfunktion:

  • interval_operations.md - Alle 8 Intervalloperationen mit Parametern, Beispielen, Ausgabeschemata und Leistungstipps. Kernreferenz für genomische Bereichsarithmetik.

  • file_io.md - Tabelle der unterstützten Formate, Spaltenschemata pro Format, Parameter, Cloud-Speicheroptionen und Komprimierungsunterstützung. Vollständige I/O-Parameterdokumentation.

  • sql_processing.md - SQL-Tabellenregistrierung, Beispiele und Syntaxreferenz. Vollständige Anleitung zum Abfragen von Genomdaten mit SQL.

  • pileup_operations.md - Tiefenberechnungsparameter, Filteroptionen und Integrationsmuster für BAM/CRAM-Pileup.

Weitere Informationen

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

adaptyv

How to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.

aeon

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.

alphagenome

Look up precomputed AlphaGenome Atlas effects for any GRCh38 single-nucleotide variant (AVI score with Phred and 18 SHAP feature attributions, plus raw and quantile scores for RNA-seq, DNase, ATAC, ChIP-TF, ChIP-histone, CAGE, PRO-cap, splicing, polyadenylation and contact-map tracks), score variants or scan windows on demand with the AlphaGenome model for human and mouse (variant scoring, in silico mutagenesis, REF-versus-ALT track prediction), and build Atlas website deep links. Use when the user mentions AlphaGenome, AlphaGenome Atlas, AVI or AlphaGenome Variant Impact, DeepMind variant effect prediction, or wants to prioritise or mechanistically interpret non-coding, regulatory, splicing, enhancer, promoter, or chromatin-accessibility effects of SNVs from a VCF, credible set, or region. Research use only; not a clinical tool.

analytical-method-validation

Plan, execute, and document validation, verification, and transfer of analytical procedures under the governing framework - ICH Q2(R2) and Q14, USP <1220>/<1225>/<1226>, ICH M10 bioanalytical, CLSI EP, or ISO/IEC 17025. Use for HPLC, LC-MS/MS, GC, CE, ICP-MS, dissolution, qNMR, qPCR, NIR, and ligand binding or cell-based assays whenever the question is whether a procedure is fit for its intended purpose. Triggers include

anndata

Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.

arbor

Autonomously improve a real artifact (code, training recipe, agent harness, data pipeline, prompt) against an objective and an evaluator, using Hypothesis Tree Refinement (HTR) from the Arbor paper. Use this whenever someone wants to iteratively optimize something over many experiments without overfitting — e.g.

arboreto

Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.

astropy

Core Python library for astronomy and astrophysics workflows that need Astropy APIs, including units/quantities, coordinates, FITS I/O, tables, time systems, WCS, and cosmology. Use when implementing or debugging astronomical data analysis code with Astropy.

autoskill

Observe the user

benchling-integration

Benchling Python SDK and REST API integration for registry entities, inventory, ELN entries, workflows, Benchling Apps, and Data Warehouse queries. Use when automating lab data with benchling-sdk or the v2 API.

bgpt-paper-search

Search scientific papers and retrieve structured experimental data extracted from full-text studies via the BGPT MCP server. Returns 25+ fields per paper including methods, results, sample sizes, quality scores, and conclusions. Use for literature reviews, evidence synthesis, and finding experimental details not available in abstracts alone.

bids

>

biopython

Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.

bioservices

Unified Python interface to 40+ bioinformatics services. Use when querying multiple databases (UniProt, KEGG, ChEMBL, Reactome) in a single workflow with consistent API. Best for cross-database analysis, ID mapping across services. For quick single-database lookups use gget; for sequence/file manipulation use biopython.

bulk-rnaseq

End-to-end bulk RNA-seq orchestrator — takes raw FASTQ reads through QC and trimming (FastQC, fastp/Trim Galore), alignment and quantification (STAR, Salmon, featureCounts), assembles a gene-level counts matrix, then hands off to differential expression (pydeseq2), pathway/GSEA enrichment (pathway-enrichment), and publication figures (scientific-visualization). Use whenever the user has bulk RNA-seq reads or quant output and wants a complete, reproducible differential-expression workflow — e.g.

cellxgene-census

Query the CZ CELLxGENE Census programmatically for versioned public single-cell and spatial transcriptomics data. Use when you need population-scale cell metadata, gene expression slices, Census summary counts, source H5AD URIs/downloads, embeddings, spatial Census data, or reference atlas comparisons across organisms, tissues, diseases, assays, and cell types. For analyzing your own local single-cell data use scanpy, anndata, or scvi-tools.

cirq

Google quantum computing framework. Use when targeting Google Quantum AI hardware, designing noise-aware circuits, or running quantum characterization experiments. Best for Google hardware, noise modeling, and low-level circuit design. For IBM hardware use qiskit; for quantum ML with autodiff use pennylane; for physics simulations use qutip.

citation-management

Comprehensive citation management for academic research. Search OpenAlex, PubMed, and Google Scholar for papers, extract accurate metadata, validate citations, and generate properly formatted BibTeX entries. This skill should be used when you need to find papers, verify citation information, convert DOIs to BibTeX, or ensure reference accuracy in scientific writing.

clinical-decision-support

Prepare and validate research-only clinical decision-support evaluation, evidence-profile, cohort, survival, biomarker/model, privacy, and governance artifacts. Use for aggregate or synthetic research documentation and traceability—not patient care or live clinical operation.

clinical-reports

Create safety-bounded draft structures and run local deterministic checks for clinical case, diagnostic, trial, safety, and aggregate research reports. Use only with synthetic, de-identified, or aggregate inputs and verified source-fact manifests; every output requires qualified review.

Verwandte Skills