Communitygithub.com

umap-learn

Verwenden Sie UMAP-learn für nichtlineare Dimensionsreduktion, 2D/3D-Einbettungen, Cluster-Vorverarbeitung, überwachtes oder halbüberwachtes UMAP, DensMAP, AlignedUMAP und parametrische UMAP-Workflows.

Was ist umap-learn?

Dieses Skill ermöglicht die Nutzung der UMAP (Uniform Manifold Approximation and Projection) Bibliothek für eine effiziente, nichtlineare Dimensionsreduktion. Im Gegensatz zu Methoden wie t-SNE skaliert UMAP gut auf große Datensätze und kann sowohl lokale als auch globale Datenstrukturen bewahren. Es eignet sich besonders zur Visualisierung hochdimensionaler Daten in 2D oder 3D, zur Vorverarbeitung von Clustern (z.B. mit HDBSCAN) und zur Merkmalsextraktion für nachgelagerte Machine-Learning-Modelle. Das Skill unterstützt sowohl überwachte als auch halbüberwachte Workflows (durch Einbeziehung von Labels), die Transformation neuer Daten mit trainierter Modellen, sowie erweiterte Funktionen wie parametrisches UMAP (mit TensorFlow/Keras) und inverse Transformationen. Es folgt den scikit-learn Konventionen und lässt sich nahtlos in bestehende ML-Pipelines integrieren. Die detaillierte Anleitung zur Parameteroptimierung (n_neighbors, min_dist, n_components, metric) hilft Nutzern, die Einbettung an spezifische Anwendungsfälle anzupassen.

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

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht umap-learn?

Überblick

UMAP (Uniform Manifold Approximation and Projection) ist eine Technik zur Dimensionsreduktion für die Visualisierung und allgemeine nichtlineare Dimensionsreduktion. Wenden Sie dieses Skill an für schnelle, skalierbare Einbettungen, die lokale und globale Strukturen bewahren, überwachtes Lernen und die Vorverarbeitung von Clustern.

Schnellstart

Installation

Aktuelle stabile Version: umap-learn 0.5.12 (veröffentlicht April 2026). Erfordert Python 3.9+ und hängt ab von scikit-learn>=1.6, numba, pynndescent, numpy und scipy. Fixieren Sie eine verifizierte Version:

uv pip install umap-learn==0.5.12

Grundlegende Verwendung

UMAP folgt den scikit-learn Konventionen und kann als direkter Ersatz für t-SNE oder PCA verwendet werden.

import umap
from sklearn.preprocessing import StandardScaler

# Daten vorbereiten (Standardisierung ist entscheidend)
scaled_data = StandardScaler().fit_transform(data)

# Methode 1: Einzelschritt (anpassen und transformieren)
embedding = umap.UMAP().fit_transform(scaled_data)

# Methode 2: Getrennte Schritte (zur Wiederverwendung des trainierten Modells)
reducer = umap.UMAP(random_state=42)
reducer.fit(scaled_data)
embedding = reducer.embedding_  # Auf die trainierte Einbettung zugreifen

Vorverarbeitungsanforderung: Passen Sie die Vorverarbeitung an die Metrik an. Für numerische euklidische Metriken skalieren Sie die Merkmale vor dem Anpassen, sodass Spalten mit hoher Varianz nicht dominieren. Für Kosinus-, Binär-, vorberechnete Distanz- oder gemischte Merkmals-Workflows wählen Sie eine Vorverarbeitung, die zur Metrik passt, anstatt jede Spalte blind zu standardisieren.

Typischer Workflow

import umap
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler

# 1. Daten vorverarbeiten
scaler = StandardScaler()
scaled_data = scaler.fit_transform(raw_data)

# 2. UMAP erstellen und anpassen
reducer = umap.UMAP(
    n_neighbors=15,
    min_dist=0.1,
    n_components=2,
    metric='euclidean',
    random_state=42
)
embedding = reducer.fit_transform(scaled_data)

# 3. Visualisieren
plt.scatter(embedding[:, 0], embedding[:, 1], c=labels, cmap='Spectral', s=5)
plt.colorbar()
plt.title('UMAP Embedding')
plt.show()

Leitfaden zur Parametereinstellung

UMAP hat vier primäre Parameter, die das Einbettungsverhalten steuern. Das Verständnis dieser ist entscheidend für eine effektive Nutzung.

n_neighbors (Standard: 15)

Zweck: Balanciert lokale versus globale Struktur in der Einbettung.

Funktionsweise: Steuert die Größe der lokalen Nachbarschaft, die UMAP beim Lernen der Mannigfaltigkeitsstruktur untersucht.

Auswirkungen nach Wert:

  • Niedrige Werte (2-5): Betont feine lokale Details, kann Daten jedoch in nicht zusammenhängende Komponenten fragmentieren
  • Mittlere Werte (15-20): Ausgewogene Sicht auf sowohl lokale als auch globale Beziehungen (empfohlener Startpunkt)
  • Hohe Werte (50-200): Priorisiert breite topologische Struktur auf Kosten feiner Details

Empfehlung: Beginnen Sie mit 15 und passen Sie basierend auf den Ergebnissen an. Erhöhen Sie für mehr globale Struktur, verringern Sie für mehr lokale Details.

min_dist (Standard: 0.1)

Zweck: Steuert, wie eng Punkte im niedrigdimensionalen Raum gruppiert werden.

Funktionsweise: Legt den minimalen Abstand fest, den Punkte in der Ausgabedarstellung haben dürfen.

Auswirkungen nach Wert:

  • Niedrige Werte (0.0-0.1): Erzeugt klumpige Einbettungen, die für das Clustering nützlich sind; zeigt feine topologische Details
  • Hohe Werte (0.5-0.99): Verhindert dichte Packung; betont breite topologische Bewahrung über lokale Struktur

Empfehlung: Verwenden Sie 0.0 für Clusteranwendungen, 0.1-0.3 für Visualisierung, 0.5+ für lose Struktur.

n_components (Standard: 2)

Zweck: Bestimmt die Dimensionalität des eingebetteten Ausgaberaums.

Schlüsselfunktion: Im Gegensatz zu t-SNE skaliert UMAP gut in der Einbettungsdimension und ermöglicht die Nutzung über die Visualisierung hinaus.

Häufige Verwendungen:

  • 2-3 Dimensionen: Visualisierung
  • 5-10 Dimensionen: Vorverarbeitung für das Clustering (bewahrt Dichte besser als 2D)
  • 10-50 Dimensionen: Feature Engineering für nachgelagerte ML-Modelle

Empfehlung: Verwenden Sie 2 für Visualisierung, 5-10 für Clustering, höher für ML-Pipelines.

metric (Standard: 'euclidean')

Zweck: Gibt an, wie der Abstand zwischen Eingabedatenpunkten berechnet wird.

Unterstützte Metriken:

  • Minkowski-Varianten: euclidean, manhattan, chebyshev
  • Räumliche Metriken: canberra, braycurtis, haversine
  • Korrelationsmetriken: cosine, correlation (gut für Text-/Dokumenteinbettungen)
  • Binäre Datenmetriken: hamming, jaccard, dice, russellrao, kulsinski, rogerstanimoto, sokalmichener, sokalsneath, yule
  • Benutzerdefinierte Metriken: Benutzerdefinierte Distanzfunktionen über Numba

Empfehlung: Verwenden Sie euclidean für numerische Daten, cosine für Text-/Dokumentvektoren, hamming für binäre Daten.

Beispiel zur Parametereinstellung

# Für Visualisierung mit Betonung auf lokale Struktur
umap.UMAP(n_neighbors=15, min_dist=0.1, n_components=2, metric='euclidean')

# Für Cluster-Vorverarbeitung
umap.UMAP(n_neighbors=30, min_dist=0.0, n_components=10, metric='euclidean')

# Für Dokumenteinbettungen
umap.UMAP(n_neighbors=15, min_dist=0.1, n_components=2, metric='cosine')

# Zum Bewahren der globalen Struktur
umap.UMAP(n_neighbors=100, min_dist=0.5, n_components=2, metric='euclidean')

Überwachte und halbüberwachte Dimensionsreduktion

UMAP unterstützt die Einbeziehung von Label-Informationen zur Steuerung des Einbettungsprozesses, was Klassentrennung unter Bewahrung der internen Struktur ermöglicht.

Überwachtes UMAP

Übergeben Sie Ziel-Labels über den Parameter y beim Anpassen:

# Überwachte Dimensionsreduktion
embedding = umap.UMAP().fit_transform(data, y=labels)

Wichtige Vorteile:

  • Erzielt sauber getrennte Klassen
  • Bewahrt die interne Struktur innerhalb jeder Klasse
  • Behält globale Beziehungen zwischen Klassen bei

Halbüberwachtes UMAP

Für partielle Labels markieren Sie nicht gekennzeichnete Punkte mit -1 gemäß der scikit-learn Konvention:

# Halbüberwachte Labels erstellen
semi_labels = labels.copy()
semi_labels[unlabeled_indices] = -1

# Mit partiellen Labels anpassen
embedding = umap.UMAP().fit_transform(data, y=semi_labels)

Wann verwenden: Wenn das Labeln teuer ist oder Sie mehr Daten als Labels haben.

UMAP für Clustering

UMAP dient als effektive Vorverarbeitung für dichtebasierte Cluster-Algorithmen wie HDBSCAN und überwindet den Fluch der Dimensionalität.

Best Practices für Clustering

Schlüsselprinzip: Konfigurieren Sie UMAP für Clustering anders als für die Visualisierung.

Empfohlene Parameter:

  • n_neighbors: Erhöhen Sie auf ~30 (Standardwert 15 ist zu lokal und kann künstliche feinkörnige Cluster erzeugen)
  • min_dist: Setzen Sie auf 0.0 (packt Punkte dicht in Clustern für klarere Grenzen)
  • n_components: Verwenden Sie 5-10 Dimensionen (behält die Leistung bei, während die Dichtebewahrung im Vergleich zu 2D verbessert wird)

Cluster-Workflow

Installieren Sie HDBSCAN separat für dichtebasiertes Clustering:

uv pip install hdbscan
import umap
import hdbscan
from sklearn.preprocessing import StandardScaler

# 1. Daten vorverarbeiten
scaled_data = StandardScaler().fit_transform(data)

# 2. UMAP mit clusteroptimierten Parametern
reducer = umap.UMAP(
    n_neighbors=30,
    min_dist=0.0,
    n_components=10,  # Höher als 2 für bessere Dichtebewahrung
    metric='euclidean',
    random_state=42
)
embedding = reducer.fit_transform(scaled_data)

# 3. HDBSCAN-Clustering anwenden
clusterer = hdbscan.HDBSCAN(
    min_cluster_size=15,
    min_samples=5,
    metric='euclidean'
)
labels = clusterer.fit_predict(embedding)

# 4. Evaluieren
from sklearn.metrics import adjusted_rand_score
score = adjusted_rand_score(true_labels, labels)
print(f"Adjusted Rand Score: {score:.3f}")
print(f"Anzahl der Cluster: {len(set(labels)) - (1 if -1 in labels else 0)}")
print(f"Rauschpunkte: {sum(labels == -1)}")

Visualisierung nach dem Clustering

# 2D-Einbettung für die Visualisierung erstellen (getrennt vom Clustering)
vis_reducer = umap.UMAP(n_neighbors=15, min_dist=0.1, n_components=2, random_state=42)
vis_embedding = vis_reducer.fit_transform(scaled_data)

# Mit Cluster-Labels plotten
import matplotlib.pyplot as plt
plt.scatter(vis_embedding[:, 0], vis_embedding[:, 1], c=labels, cmap='Spectral', s=5)
plt.colorbar()
plt.title('UMAP Visualization mit HDBSCAN Clustern')
plt.show()

Wichtiger Hinweis: UMAP bewahrt die Dichte nicht vollständig und kann künstliche Clustergrenzen erzeugen. Überprüfen und erforschen Sie die resultierenden Cluster immer.

Transformieren neuer Daten

UMAP ermöglicht die Vorverarbeitung neuer Daten über die Methode transform(), die es trainierten Modellen erlaubt, unsichtbare Daten in den gelernten Einbettungsraum zu projizieren.

Grundlegende Transform-Verwendung

# Auf Trainingsdaten trainieren
trans = umap.UMAP(n_neighbors=15, random_state=42).fit(X_train)

# Testdaten transformieren
test_embedding = trans.transform(X_test)

Integration mit Machine-Learning-Pipelines

from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import umap

# Daten aufteilen
X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2)

# Vorverarbeiten
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

# UMAP trainieren
reducer = umap.UMAP(n_components=10, random_state=42)
X_train_embedded = reducer.fit_transform(X_train_scaled)
X_test_embedded = reducer.transform(X_test_scaled)

# Klassifikator auf Einbettungen trainieren
clf = SVC()
clf.fit(X_train_embedded, y_train)
accuracy = clf.score(X_test_embedded, y_test)
print(f"Testgenauigkeit: {accuracy:.3f}")

Wichtige Überlegungen

Datenkonsistenz: Die Transform-Methode setzt voraus, dass die Gesamtverteilung im höherdimensionalen Raum zwischen Trainings- und Testdaten konsistent ist. Wenn diese Annahme nicht zutrifft, ziehen Sie die Verwendung von Parametrischem UMAP in Betracht.

Leistung: Transform-Operationen sind effizient (typischerweise <1 Sekunde), obwohl anfängliche Aufrufe aufgrund der Numba-JIT-Kompilierung langsamer sein können.

Scikit-learn-Kompatibilität: UMAP folgt den standardmäßigen sklearn-Konventionen und funktioniert in Pipelines. Neuere 0.5.x-Versionen haben auch die Unterstützung für Merkmalsnamen und die Kompatibilität mit aktuellen scikit-learn-Validierungs-APIs verbessert:

from sklearn.pipeline import Pipeline

pipeline = Pipeline([
    ('scaler', StandardScaler()),
    ('umap', umap.UMAP(n_components=10)),
    ('classifier', SVC())
])

pipeline.fit(X_train, y_train)
predictions = pipeline.predict(X_test)
feature_names = pipeline.named_steps['umap'].get_feature_names_out()

Erweiterte Funktionen

Parametrisches UMAP

Parametrisches UMAP ersetzt die direkte Einbettungsoptimierung durch eine gelernte neuronale Netzwerkzuordnungsfunktion.

Wesentliche Unterschiede zum Standard-UMAP:

  • Verwendet TensorFlow/Keras zum Trainieren von Encoder-Netzwerken
  • Ermöglicht effiziente Transformation neuer Daten
  • Unterstützt Rekonstruktion über Decoder-Netzwerke (inverse Transformation)
  • Ermöglicht benutzerdefinierte Architekturen (CNNs für Bilder, RNNs für Sequenzen)

Installation:

uv pip install "umap-learn[parametric-umap]==0.5.12"
# Installiert das TensorFlow-gestützte Parametrische UMAP-Extra.

Grundlegende Verwendung:

from umap.parametric_umap import ParametricUMAP

# Standardarchitektur (3-schichtiges 100-Neuron-fully-connected Netzwerk)
embedder = ParametricUMAP()
embedding = embedder.fit_transform(data)

# Neue Daten effizient transformieren
new_embedding = embedder.transform(new_data)

Benutzerdefinierte Architektur:

import tensorflow as tf

# Benutzerdefinierten Encoder definieren
encoder = tf.keras.Sequential([
    tf.keras.layers.InputLayer(shape=(input_dim,)),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(2)  # Ausgabedimension
])

embedder = ParametricUMAP(encoder=encoder, dims=(input_dim,))
embedding = embedder.fit_transform(data)

Persistenz: Speichern Sie Parametrisches UMAP mit seinen integrierten Keras-bewussten Methoden anstelle von einfachem Pickle:

embedder.save("parametric_umap_model", exclude_raw_data=True)

from umap.parametric_umap import load_ParametricUMAP
gelandener = load_ParametricUMAP("parametric_umap_model")
new_embedding = gelandener.transform(new_data)

Aktuelle 0.5.12-Fixes beinhalten Verbesserungen der Stabilität beim Neutrainieren von Parametrischem UMAP und Korrekturen der Metrik-Gradienten. Bevorzugen Sie daher die fixierte aktuelle Version für neuronale Netzwerk-Workflows.

Wann Parametrisches UMAP verwenden:

  • Sie benötigen eine effiziente Transformation neuer Daten nach dem Training
  • Sie benötigen Rekonstruktionsfähigkeiten (inverse Transformationen)
  • Sie möchten UMAP mit Autoencodern kombinieren
  • Sie arbeiten mit komplexen Datentypen (Bilder, Sequenzen), die von spezialisierten Architekturen profitieren

Inverse Transformationen

Inverse Transformationen ermöglichen die Rekonstruktion hochdimensionaler Daten aus niedrigdimensionalen Einbettungen.

Grundlegende Verwendung:

reducer = umap.UMAP()
embedding = reducer.fit_transform(data)

# Hochdimensionale Daten aus Einbettungskoordinaten rekonstruieren
reconstructed = reducer.inverse_transform(embedding)

Wichtige Einschränkungen:

  • Rechenintensive Operation
  • Funktioniert außerhalb der konvexen Hülle der Einbettung schlecht
  • Genauigkeit nimmt in Bereichen mit Lücken zwischen Clustern ab

Beispiel: Einbettungsraum erkunden:

import numpy as np

# Gitter von Punkten im Einbettungsraum erstellen
x = np.linspace(embedding[:, 0].min(), embedding[:, 0].max(), 10)
y = np.linspace(embedding[:, 1].min(), embedding[:, 1].max(), 10)
xx, yy = np.meshgrid(x, y)
grid_points = np.c_[xx.ravel(), yy.ravel()]

# Stichproben aus dem Gitter rekonstruieren
reconstructed_samples = reducer.inverse_transform(grid_points)

AlignedUMAP

Für zeitliche oder verwandte Datensätze, die ein gemeinsames Koordinatensystem benötigen (z.B. Zeitreihenexperimente, Batches), verwenden Sie umap.AlignedUMAP().fit(datasets, relations=relations), wobei relations Stichprobenindizes zwischen aufeinanderfolgenden Datensätzen abbildet und für eine sinnvolle Ausrichtung erforderlich ist. Parameter, Methoden und ein ausführliches Beispiel finden Sie in references/api_reference.md unter "AlignedUMAP Class" und "Usage Examples".

Reproduzierbarkeit

Um reproduzierbare Ergebnisse zu gewährleisten, setzen Sie immer den Parameter random_state:

reduc

…

[gekürzt für die Übersetzung]

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