lamindb
Helps your agent manage biological data and models with LaminDB. It tracks data lineage and ensures schema validation for reproducibility.
What it does
LaminDB helps organize and track biological data and its analysis processes. It allows you to register datasets, annotate metadata, and ensure results are reproducible.
When to use it
- ✓Registering biological datasets.
- ✓Annotating DataFrame or AnnData metadata.
- ✓Tracking scientific scripts or workflows.
Example of what to ask your AI
“Organize my genetic experiment data and track the analyses I performed.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
You define how your data should be structured (schema) and what information is important (features). Then, you can register your files and scripts, ensuring everything can be found and reproduced.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add K-Dense-AI/scientific-agent-skills --skill lamindbOr download just the file:
curl -L https://raw.githubusercontent.com/K-Dense-AI/scientific-agent-skills/main/skills/lamindb/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
LaminDB
When to use
Use for registering biological datasets, curating DataFrame/AnnData metadata, querying annotated artifacts, and tracking scientific scripts or workflows. LaminDB stores metadata in SQLite/PostgreSQL and files in configured storage; registration alone does not establish scientific validity or FAIR compliance.
This skill targets LaminDB 2.10.0 and Bionty 2.5.0. The local examples were
executed on Python 3.12, pandas 3.0.6, and AnnData 0.13.2. The LaminDB release
caps AnnData at 0.13.2; preserve its dependency constraints. Install IPython for
registry synonym helpers (add_synonym() imports it in this release).
Workflow
- Confirm the intended instance, storage, and write scope with
lamin info. Use a new local development directory for experiments. See setup and deployment. - Define typed
Featurerecords and aSchemafor the biological data. Use registry-backed categorical dtypes for controlled vocabularies;dtype=stronly checks strings. See annotation and validation. - Review the ontology source/version and organism. Standardize only reviewed synonyms and preserve unresolved annotations. See Bionty ontologies.
- In a script or notebook, start
ln.track(), load registered inputs, validate, and save outputs.curator.validate()returnsNoneon success and raisesln.errors.ValidationErroron failure. Repair, then validate again. - Save through the curator or a schema-aware artifact constructor. Check the
stored schema and round-trip content; finish a successful run with
ln.finish(). - Query metadata before loading content. Record artifact UIDs and schema/source provenance for reproducibility; a key can resolve to a newer version later. See queries and streaming.
Local worked example
Run in a dedicated environment and an empty project directory:
uv venv --python 3.12
uv pip install 'lamindb==2.10.0' 'bionty==2.5.0' 'ipython==9.17.1'
source .venv/bin/activate
lamin init --storage ./storage --name biology-demo --modules bionty
Save the following as curate_qc.py, then run python curate_qc.py:
import pandas as pd
import lamindb as ln
ln.track(params={"analysis": "QC metadata curation"})
count = ln.Feature(name="gene_count", dtype=int).save()
condition = ln.Feature(name="condition", dtype=str).save()
schema = ln.Schema(
name="qc_metadata",
features=[count, condition],
maximal_set=True, # reject extra columns
).save()
df = pd.DataFrame({
"gene_count": [120, 130],
"condition": ["control", "treated"],
})
curator = ln.curators.DataFrameCurator(df, schema)
curator.validate() # raises on invalid data; do not use as an if condition
artifact = curator.save_artifact(key="experiments/qc.parquet")
assert artifact.schema == schema
pd.testing.assert_frame_equal(artifact.load(), df)
ln.finish()
This validates table structure/types, not whether the counts satisfy assay QC. Add assay-specific checks (units, allowed ranges, missingness, duplicate sample IDs, batch balance) before publication or downstream analysis.
Core objects and contracts
| Object | Purpose and important constraint |
|---|---|
Artifact |
A file/folder or serialized dataset; cache() gets a local path, load() materializes content, open() returns a format-specific accessor. |
Feature |
A typed metadata field; save its definition before artifact.features.set_values(...). |
Schema |
Validation rules and feature membership; maximal_set=True rejects extras. flexible=False alone does not. |
Record, ULabel |
Experimental entities and simple labels. A custom term is not an ontology assertion. |
Run, Transform |
An execution and its code definition. Inputs are run.input_artifacts; outputs are run.output_artifacts. |
Collection |
A versioned group of artifacts; iterate collection.artifacts.all(). |
Project, Branch, Space |
Grouping, change organization, and access scope; branches do not replace permissions. |
Use @ln.flow() for a workflow entry point and @ln.step() within it. Lineage
captures tracked accesses, not arbitrary reads outside LaminDB. Review
core concepts for tracking, labels, and revisions.
Failure patterns to avoid
…
FAQ
What is an 'artifact'?
An artifact is a file or folder you register, like a dataset or a script. LaminDB keeps track of these artifacts.
How does LaminDB ensure reproducibility?
It tracks the input data, the scripts used, and the analysis parameters, creating a complete history so you can redo the work.
What are 'schemas' and 'features'?
Schemas define the expected structure of your data (columns and types), and features are the individual fields within that structure, such as 'gene count' or 'experimental condition'.
Details
Original description by the author
Manages biological datasets and models with LaminDB, including artifact registration, lineage tracking, schema validation, Bionty ontology annotation, query/search, collections, branches, storage, and workflow integrations. Use for reproducible biological data curation or a LaminDB lakehouse.
Popularity
- GitHub stars
- 51k
- Ranking position
- #1893
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
13c-metabolic-flux
Estimates metabolic fluxes using carbon-13 isotope tracing data. It is useful for analyzing cellular metabolism and biochemical pathways.
K-Dense-AI/scientific-agent-skills
adaptyv
Designs protein characterization experiments using the Adaptyv API. It helps estimate costs, submit sequences, and monitor lab results.
K-Dense-AI/scientific-agent-skills
aeon
Performs machine learning tasks on time series data. It is useful for classifying, forecasting, detecting anomalies, and finding patterns in sequential data.
K-Dense-AI/scientific-agent-skills
alphagenome
Looks up precomputed genomic effects for genetic variants. It provides scores and explanations to understand the impact of variants on the genome.
K-Dense-AI/scientific-agent-skills
Similar skills
pytorch-patterns
Helps your agent use PyTorch for machine learning models. It applies best practices for efficient model training and ensures reproducible results.
affaan-m/ECC
evm-token-decimals
Helps your agent avoid errors with decimal numbers across different blockchain networks. It ensures token values are accurate in transactions and calculations.
affaan-m/ECC
knowledge-agent
Creates and queries knowledge bases using AI. It allows asking questions about past work or compiling expertise on a topic.
thedotmack/claude-mem