LLMomics
LLMomics is an open-source Python library that leverages Large Language Models (LLMs) to automatically generate complete bioinformatics pipelines from natural language queries. It dramatically reduces the technical barrier for researchers who need to perform omics analyses (genomics, transcriptomics, proteomics, metabolomics) without extensive computational expertise.
Features
- Natural Language Interface: Generate pipelines from simple English queries
- Multi-Omics Support: RNA-seq, ChIP-seq, ATAC-seq, variant calling, and more
- Public Database Integration: Automatic data fetching from GEO, SRA, and other repositories
- Production-Ready Pipelines: Generates complete Snakemake workflows with proper logging and error handling
- Extensible Architecture: Easy to add new pipeline templates and data sources
- Smart Query Parsing: Automatically extracts dataset IDs, tools, and parameters from queries
Table of Contents
Installation
Prerequisites
- Python 3.8 or higher
- OpenAI API key (for LLM functionality)
Install from source
# Clone the repository
git clone https://github.com/allanps/llmomics.git
cd llmomics
# Install in development mode
pip install -e .
# Or install directly
pip install .
Set up environment variables
Create a .env file in your project directory:
# Required
OPENAI_API_KEY=your_openai_api_key_here
# Optional (for enhanced NCBI access)
NCBI_EMAIL=your.email@example.com
NCBI_API_KEY=your_ncbi_api_key_here
Quick Start
Basic Usage
Generate a complete RNA-seq differential expression pipeline with a single command:
llmomics run "Perform differential expression analysis with DESeq2 on GSE123456"
This command will:
- Parse your natural language query
- Fetch dataset information from GEO
- Generate a complete Snakemake pipeline
- Create all necessary configuration files
- Provide clear instructions for running the analysis
Search for Datasets
# Search across all databases
llmomics search "RNA-seq liver cancer"
# Search specific database
llmomics search "breast cancer" --database geo --limit 20
Fetch Dataset Information
# Automatically detect database from ID
llmomics fetch GSE123456
# Specify database explicitly
llmomics fetch SRR999999 --database sra
Check Configuration
llmomics config
Usage Examples
Example 1: RNA-seq Differential Expression
llmomics run "Analyze RNA-seq data from GSE200366 to find differentially expressed genes between treatment and control groups using DESeq2"
This generates a complete pipeline including:
- Quality control with FastQC
- Read trimming with Trim Galore
- Alignment with STAR
- Gene counting with featureCounts
- Differential expression with DESeq2
- MultiQC report generation
Example 2: ChIP-seq Peak Calling
llmomics run "Perform ChIP-seq peak calling on H3K27ac data using MACS2"
Example 3: Custom Parameters
llmomics run "RNA-seq analysis with p-value < 0.01 and fold change > 2.5 for GSE123456"
Python API Usage
from llmomics import LLMProvider, DataFetcher, PipelineGenerator
# Initialize components
llm = LLMProvider()
fetcher = DataFetcher()
generator = PipelineGenerator()
# Analyze query
query = "Perform RNA-seq analysis on GSE123456"
analysis = llm.analyze_query(query)
# Fetch dataset
dataset_info = fetcher.fetch("GSE123456")
# Generate pipeline
pipeline_path = generator.generate(
pipeline_type="rna-seq",
analysis_type="differential-expression",
dataset_info=dataset_info
)
Configuration
LLMomics uses a flexible configuration system with the following hierarchy:
- Environment variables (highest priority)
.envfile in current directory- Default values
Key Configuration Options
| Setting | Environment Variable | Default | Description |
|---|---|---|---|
| LLM Provider | LLM_PROVIDER |
openai |
LLM service to use |
| OpenAI API Key | OPENAI_API_KEY |
Required | Your OpenAI API key |
| OpenAI Model | OPENAI_MODEL |
gpt-4 |
Model to use |
| Output Directory | LLMOMICS_OUTPUT_DIR |
./pipelines |
Where to save pipelines |
| NCBI Email | NCBI_EMAIL |
None | Email for NCBI API |
Architecture
graph TD
A[Natural Language Query] --> B[Query Parser]
B --> C[LLM Analysis]
C --> D[Data Fetcher]
D --> E[Pipeline Generator]
E --> F[Snakemake Pipeline]
D --> G[GEO Database]
D --> H[SRA Database]
C --> I[OpenAI API]
Core Modules
core: LLM communication and query processingdata: Integration with bioinformatics databasespipeline: Snakemake pipeline generation
Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
Development Setup
# Clone the repository
git clone https://github.com/allanps/llmomics.git
cd llmomics
# Install in development mode with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Format code
black src/
# Run linting
flake8 src/
Documentation
For detailed documentation, visit our documentation site.
Citation
If you use LLMomics in your research, please cite:
@software{llmomics2025,
title = {LLMomics: LLM-powered bioinformatics pipeline generation},
author = {Allan Paulo},
year = {2025},
url = {https://github.com/allanps/llmomics}
}
Issues and Support
- Report bugs at GitHub Issues
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Metadata
Release files for llmomics 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| llmomics-0.1.0.tar.gz | 27.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| llmomics-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.6 kB
Release files / llmomics-0.1.0.tar.gz
| Download URL | llmomics-0.1.0.tar.gz |
|---|---|
| Size | 27.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2146973e0e158f5945745d962cf56ca17201afd15771277bcd7cccc55dadf834
|
|
BLAKE2b-256 checksum How to use checksums |
13306305d678e8faf32937a587ad90f9127beeb355c28a68c05bf277f48711e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.11.5 Windows/10
|
Release files / llmomics-0.1.0-py3-none-any.whl
| Download URL | llmomics-0.1.0-py3-none-any.whl |
|---|---|
| Size | 30.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d41eda1ac29bbde689d98b73e8cbdfa7d0fabc87aa721909d87af45cbf12dc38
|
|
BLAKE2b-256 checksum How to use checksums |
daa776f7d2d1d96e4ae828b07f2846fe8f0472f3555d0aa27f658ebc2bcdc6d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.11.5 Windows/10
|
Security for llmomics 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.