Communitygithub.com

lamindb

À utiliser avec LaminDB, le lakehouse open-source natif de lignée pour les jeux de données et modèles biologiques. Couvre la configuration, l'enregistrement des artefacts, la recherche/interrogation, le suivi de lignée, la validation, l'annotation avec ontologies Bionty, les collections, les branches, le stockage et les intégrations de workflows.

Qu'est-ce que lamindb ?

Cette compétence est conçue pour les développeurs et les data scientists travaillant avec LaminDB, un lakehouse open-source natif de lignée pour les données biologiques. Elle permet de gérer, valider, annoter et interroger des jeux de données biologiques tout en assurant leur traçabilité et leur conformité FAIR. Le skill couvre l'ensemble du cycle de vie des données : de la configuration initiale (installation, authentification, gestion du stockage local ou cloud) à l'enregistrement d'artefacts (DataFrames, AnnData, Parquet, etc.), en passant par le suivi de l'exécution des notebooks et pipelines avec `ln.track()` et `@ln.flow()`. Il offre des capacités avancées d'interrogation avec filtres, recherche plein texte et requêtes basées sur les caractéristiques (features), ainsi que la validation et la standardisation des métadonnées via des ontologies biologiques (Bionty) et des schémas flexibles ou stricts. Le skill s'intègre avec des outils comme Weights & Biases, MLflow, Hugging Face, Nextflow, Snakemake, et des systèmes de stockage S3, GCS, SQLite et Postgres. Il inclut également des workflows pour l'analyse single-cell, la construction de data lakehouses interrogeables, et l'intégration de pipelines ML, en respectant les bonnes pratiques de sécurité (gestion des secrets, validation des entrées).

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/K-Dense-AI/scientific-agent-skills/tree/main/skills/lamindb

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait lamindb ?

Vue d'ensemble

LaminDB est un lakehouse open-source natif de lignée pour la biologie. Il rend les jeux de données et les modèles interrogeables, traçables, validés, reproductibles et conformes FAIR (Facile à trouver, Accessible, Interopérable, Réutilisable) tout en stockant les données dans des formats ouverts sur des systèmes de fichiers locaux, S3, GCS, Hugging Face, SQLite et Postgres.

Proposition de valeur principale :

  • Interrogeabilité : Rechercher et filtrer les artefacts, enregistrements, exécutions, caractéristiques, schémas et collections
  • Traçabilité : Suivre les entrées, sorties, paramètres, code source et environnements pour les notebooks, scripts, fonctions et pipelines
  • Validation : Curater les DataFrame, AnnData, SpatialData, TileDB-SOMA, Parquet, Zarr et autres formats biologiques avec des schémas
  • Conformité FAIR : Standardiser les annotations avec des ontologies Bionty et des registres personnalisés
  • Gestion du changement : Organiser le travail avec des projets, branches, espaces, collections et notes/plans sauvegardés

Quand utiliser cette compétence

Utilisez cette compétence lorsque :

  • Vous gérez des jeux de données biologiques : scRNA-seq, bulk RNA-seq, transcriptomique spatiale, cytométrie en flux, données multimodales, données EHR
  • Vous suivez des workflows computationnels : Notebooks, scripts, fonctions, scripts shell et exécution de pipelines (Nextflow, Snakemake, Redun)
  • Vous curez et validez des données : Validation de schéma, standardisation, annotation basée sur les ontologies
  • Vous travaillez avec des ontologies biologiques : Gènes, protéines, types cellulaires, tissus, maladies, voies (via Bionty)
  • Vous construisez des data lakehouses : Interface d'interrogation unifiée sur plusieurs jeux de données
  • Vous assurez la reproductibilité : Versionnage automatique, suivi de lignée, capture d'environnement
  • Vous intégrez des pipelines ML : Connexion avec Weights & Biases, MLflow, Hugging Face, Lightning, scVI-tools
  • Vous déployez une infrastructure de données : Configuration de systèmes de gestion de données locaux ou cloud
  • Vous collaborez sur des jeux de données : Partage de données curées et annotées avec des métadonnées standardisées

Capacités principales

LaminDB offre six domaines de capacités interconnectés, chacun documenté en détail dans le dossier references.

1. Concepts de base et lignée des données

Entités principales :

  • Artefacts : Jeux de données versionnés (DataFrame, AnnData, Parquet, Zarr, etc.)
  • Enregistrements et ULabels : Entités expérimentales, enregistrements typés et étiquettes simples
  • Collections : Ensembles d'artefacts versionnés et immuables
  • Exécutions et Transformations : Suivi de la lignée computationnelle (quel code a produit quelles données)
  • Caractéristiques : Champs de métadonnées typés pour l'annotation et l'interrogation
  • Projets, Branches et Espaces : Regroupement de projets, gestion du changement et limites d'accès

Workflows clés :

  • Créer et versionner des artefacts à partir de fichiers ou d'objets Python
  • Suivre l'exécution de notebooks/scripts avec ln.track() et ln.finish()
  • Suivre les workflows de fonctions avec @ln.flow() et @ln.step()
  • Annoter des artefacts avec des enregistrements, ulabels, projets et caractéristiques typées
  • Visualiser les graphes de lignée des données avec artifact.view_lineage()
  • Interroger par provenance (trouver toutes les sorties d'un code/entrées spécifiques)

Référence : references/core-concepts.md - Lisez ceci pour des informations détaillées sur les artefacts, enregistrements, exécutions, transformations, caractéristiques, versionnage et suivi de lignée.

2. Gestion des données et interrogation

Capacités d'interrogation :

  • Exploration et recherche de registres avec auto-complétion
  • Récupération d'un seul enregistrement avec get(), one(), one_or_none()
  • Filtrage avec des opérateurs de comparaison (__gt, __lte, __contains, __startswith)
  • Requêtes basées sur les caractéristiques, y compris les requêtes de type expression avec des objets Feature
  • Navigation inter-registres avec la syntaxe double-underscore
  • Recherche plein texte sur les registres
  • Requêtes logiques avancées avec des objets ln.Q (ET, OU, NON)
  • Streaming de grands jeux de données sans les charger en mémoire

Workflows clés :

  • Parcourir les artefacts avec des filtres et des tris
  • Interroger par caractéristiques, date de création, créateur, taille, etc.
  • Diffuser des fichiers volumineux par morceaux ou avec découpage de tableau
  • Organiser les données avec des clés hiérarchiques
  • Grouper les artefacts en collections

Référence : references/data-management.md - Lisez ceci pour des modèles d'interrogation complets, des exemples de filtrage, des stratégies de streaming et les meilleures pratiques d'organisation des données.

3. Annotation et validation

Processus de curation :

  1. Validation : Confirmer que les jeux de données correspondent aux schémas souhaités
  2. Standardisation : Corriger les fautes de frappe, mapper les synonymes aux termes canoniques
  3. Annotation : Lier les jeux de données aux entités de métadonnées pour l'interrogeabilité

Types de schémas :

  • Schémas flexibles : Valider uniquement les colonnes connues, autoriser des métadonnées supplémentaires
  • Schémas minimaux requis : Spécifier les colonnes essentielles, autoriser des extras
  • Schémas stricts : Contrôle complet sur la structure et les valeurs

Types de données pris en charge :

  • DataFrames (Parquet, CSV)
  • AnnData (génomique unicellulaire)
  • MuData (multimodal)
  • SpatialData (transcriptomique spatiale)
  • TileDB-SOMA (tableaux évolutifs)

Workflows clés :

  • Définir des caractéristiques et des schémas pour la validation des données
  • Utiliser DataFrameCurator, AnnDataCurator, SpatialDataCurator ou TiledbsomaExperimentCurator pour la validation
  • Standardiser les valeurs avec .cat.standardize()
  • Mapper aux ontologies avec .cat.add_ontology()
  • Sauvegarder des artefacts curés avec liaison de schéma
  • Interroger les jeux de données validés par caractéristiques

Référence : references/annotation-validation.md - Lisez ceci pour des workflows de curation détaillés, des modèles de conception de schémas, la gestion des erreurs de validation et les meilleures pratiques.

4. Ontologies biologiques

Ontologies disponibles (via Bionty) :

  • Gènes (Ensembl), Protéines (UniProt)
  • Types cellulaires (CL), Lignées cellulaires (CLO)
  • Tissus (Uberon), Maladies (Mondo, DOID)
  • Phénotypes (HPO), Voies (GO)
  • Facteurs expérimentaux (EFO), Stades de développement
  • Organismes (NCBItaxon), Médicaments (DrugBank)

Workflows clés :

  • Importer des ontologies publiques avec bt.CellType.import_source()
  • Rechercher dans les ontologies avec correspondance par mot-clé ou exacte
  • Standardiser les termes en utilisant le mappage de synonymes
  • Explorer les relations hiérarchiques (parents, enfants, ancêtres)
  • Valider les données par rapport aux termes d'ontologie
  • Annoter des jeux de données avec des enregistrements d'ontologie
  • Créer des termes personnalisés et des hiérarchies
  • Gérer des contextes multi-organismes (humain, souris, etc.)

Référence : references/ontologies.md - Lisez ceci pour des opérations d'ontologie complètes, des stratégies de standardisation, la navigation hiérarchique et les workflows d'annotation.

5. Intégrations

Gestionnaires de workflows :

  • Nextflow : Suivre les processus et sorties du pipeline
  • Snakemake : Intégrer dans les règles Snakemake
  • Redun : Combiner avec le suivi des tâches Redun
  • Lightning : Persister les points de contrôle et les métadonnées d'entraînement

Plateformes MLOps :

  • Weights & Biases : Lier les expériences avec les artefacts de données
  • MLflow : Suivre les modèles et les expériences
  • Hugging Face : Suivre le fine-tuning des modèles
  • scVI-tools : Workflows d'analyse unicellulaire

Systèmes de stockage :

  • Système de fichiers local, AWS S3, Google Cloud Storage
  • Compatible S3 (MinIO, Cloudflare R2)
  • Points de terminaison HTTP/HTTPS (lecture seule)
  • Jeux de données HuggingFace

Magasins de tableaux :

  • TileDB-SOMA (avec support cellxgene)
  • DuckDB pour les requêtes SQL sur les fichiers Parquet

Visualisation :

  • Vitessce pour la visualisation interactive spatiale/unicellulaire

Contrôle de version :

  • Intégration Git pour le suivi du code source

Référence : references/integrations.md - Lisez ceci pour les modèles d'intégration, les exemples de code et le dépannage pour les systèmes tiers.

6. Configuration et déploiement

Installation :

  • Baseline stable actuelle : lamindb==2.5.1 (publiée le 2026-06-01 ; Python >=3.10, <=3.14)
  • Base : uv pip install 'lamindb==2.5.1'
  • Avec extras : uv pip install 'lamindb[gcp,zarr-v2,fcs]==2.5.1'
  • Espace de noms minimal uniquement : uv pip install 'lamindb-core==2.5.1'
  • Module Bionty : inclus dans la documentation LaminDB et disponible avec uv pip install 'bionty==2.4.0'
  • Modules optionnels : épingler les versions de révision pour les modules de schéma wetlab ou clinique plutôt que d'installer les dernières versions flottantes

Types d'instances :

  • SQLite local (développement)
  • Stockage cloud + SQLite (petites équipes)
  • Stockage cloud + PostgreSQL (production)

Options de stockage :

  • Système de fichiers local
  • AWS S3 avec régions et permissions configurables
  • Google Cloud Storage
  • Points de terminaison compatibles S3 (MinIO, Cloudflare R2)

Configuration :

  • Gestion du cache pour les fichiers cloud
  • Configurations système multi-utilisateurs
  • Synchronisation du dépôt Git
  • Variables d'environnement nommées pour les identifiants et les URL de connexion

Modèles de déploiement :

  • Migration dev local → production cloud
  • Déploiements multi-régions
  • Stockage partagé avec instances personnelles

Référence : references/setup-deployment.md - Lisez ceci pour une installation détaillée, la configuration, la configuration du stockage, la gestion de la base de données, les meilleures pratiques de sécurité et le dépannage.

Sécurité et valeurs par défaut

Lorsque vous aidez avec la configuration ou les intégrations de LaminDB :

  • N'affichez, ne journalisez ou ne transmettez jamais les clés API réelles, les identifiants cloud, les mots de passe de base de données ou les chaînes de connexion complètes contenant des secrets.
  • Préférez les rôles IAM, les identités de workload, les gestionnaires de secrets ou les variables d'environnement nommées telles que LAMIN_DB_URL, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY et GOOGLE_APPLICATION_CREDENTIALS ; vérifiez uniquement si une variable nommée est présente, pas sa valeur.
  • Avant de sauvegarder le contenu des API REST, des bases de données externes ou des fichiers fournis par l'utilisateur, validez et nettoyez-le avec un schéma ou un curator explicite.
  • Pour les installations reproductibles, épinglez les versions de paquets ou utilisez un fichier de verrouillage. Les installations flottantes sont acceptables uniquement lorsque l'utilisateur souhaite explicitement la dernière version en amont.

Workflows de cas d'utilisation courants

Cas d'utilisation 1 : Analyse scRNA-seq avec validation d'ontologie

import lamindb as ln
import bionty as bt
import anndata as ad

# Commencer le suivi d'une exécution de notebook/script
ln.track(params={"analysis": "scRNA-seq QC et annotation"})

# Importer l'ontologie des types cellulaires
bt.CellType.import_source()

# Charger les données
adata = ad.read_h5ad("raw_counts.h5ad")

# Valider et standardiser les types cellulaires
adata.obs["cell_type"] = bt.CellType.standardize(adata.obs["cell_type"])

# Curater avec un schéma
curator = ln.curators.AnnDataCurator(adata, schema)
curator.validate()
artifact = curator.save_artifact(key="scrna/validated.h5ad")

# Lier les annotations basées sur l'ontologie pour l'interrogeabilité
cell_types = bt.CellType.from_values(adata.obs["cell_type"])
artifact.cell_types.add(*cell_types)

ln.finish()

Cas d'utilisation 2 : Construction d'un data lakehouse interrogeable

import lamindb as ln

# Enregistrer plusieurs expériences
for i, file in enumerate(data_files):
    artifact = ln.Artifact.from_anndata(
        ad.read_h5ad(file),
        key=f"scrna/batch_{i}.h5ad",
        description=f"scRNA-seq lot {i}"
    ).save()

    # Annoter avec des caractéristiques
    artifact.features.set_values({
        "batch": i,
        "tissue": tissues[i],
        "condition": conditions[i]
    })

# Interroger toutes les expériences par caractéristiques annotées
immune_datasets = ln.Artifact.filter(
    key__startswith="scrna/",
    tissue="PBMC",
    condition="traité"
).to_dataframe()

# Charger des jeux de données spécifiques
for artifact in immune_datasets:
    adata = artifact.load()
    # Analyser

Cas d'utilisation 3 : Pipeline ML avec intégration W&B

import lamindb as ln
import wandb

# Initialiser les deux systèmes
wandb.init(project="réponse-médicament", name="exp-42")
ln.track(params={"model": "random_forest", "n_estimators": 100})

# Charger les données d'entraînement depuis LaminDB
train_artifact = ln.Artifact.get(key="datasets/train.parquet")
train_data = train_artifact.load()

# Entraîner le modèle
model = train_model(train_data)

# Journaliser dans W&B
wandb.log({"accuracy": 0.95})

# Sauvegarder le modèle dans LaminDB avec lien W&B
import joblib
joblib.dump(model, "model.pkl")
model_artifact = ln.Artifact("model.pkl", key="models/exp-42.pkl").save()
model_artifact.features.set_values({"wandb_run_id": wandb.run.id})

ln.finish()
wandb.finish()

Cas d'utilisation 4 : Intégration du pipeline Nextflow

# Dans le script de processus Nextflow
import lamindb as ln

ln.track()

# Charger l'artefact d'entrée
input_artifact = ln.Artifact.get(key="raw/batch_${batch_id}.fastq.gz")
input_path = input_artifact.cache()

# Traiter (alignement, quantification, etc.)
# ... Logique du processus Nextflow ...

# Sauvegarder la sortie
output_artifact = ln.Artifact(
    "counts.csv",
    key="processed/batch_${batch_id}_counts.csv"
).save()

ln.finish()

Pour les projets Nextflow natifs, privilégiez le plugin nf-lamin et les modèles nextflow.config actuels lorsqu'ils sont disponibles ; utilisez le suivi Python en ligne pour les étapes de pipeline petites ou personnalisées.

Liste de vérification pour commencer

Pour commencer à utiliser LaminDB efficacement :

  1. Installation et configuration (references/setup-deployment.md)

    • Installer LaminDB épinglé et les extras requis
    • S'authentifier avec lamin login
    • Initialiser l'instance avec lamin init --storage ...
  2. Apprendre les concepts de base (references/core-concepts.md)

    • Comprendre les artefacts, enregistrements, exécutions, transformations
    • Pratiquer la création et la récupération d'artefacts
    • Implémenter ln.track()/ln.finish() ou @ln.flow()/@ln.step() dans les workflows
  3. Maîtriser l'interrogation (references/data-management.md)

    • Pratiquer le filtrage et la recherche dans les registres
    • Apprendre les requêtes basées sur les caractéristiques et les filtres de type expression
    • Expérimenter avec le streaming de fichiers volumineux
  4. Configurer la validation (references/annotation-validation.md)

    • Définir les caractéristiques pertinentes pour le domaine de recherche
    • Créer des schémas pour les types de données
    • Pratiquer les workflows de curation
  5. Intégrer les ontologies (references/ontologies.md)

    • Importer les ontologies biologiques pertinentes (gènes, types cellulaires, etc.)
    • Valider les annotations existantes
    • Standardiser les métadonnées avec les termes d'ontologie
  6. Connecter les outils (references/integrations.md)

    • Intégrer avec les gestionnaires de workflows existants
    • Lier les plateformes ML pour le suivi des expériences
    • Configurer le stockage cloud et le calcul

Principes clés

Suivez ces principes lorsque vous travaillez avec LaminDB :

  1. Tout suivre : Utilisez ln.track() au début de chaque analyse pour une capture automatique de la lignée

  2. Valider tôt : Définissez des schémas et validez les données avant une analyse approfondie

  3. Utiliser les ontologies : Exploitez les ontologies biologiques publiques pour des annotations standardisées

  4. Versionner : Chaque artefact est immuable et versionné ; utilisez les collections pour gérer des ensembles d'artefacts

  5. Intégrer : Connectez LaminDB à vos outils existants pour un flux de travail transparent

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.

Skills associés