Repository navigation
Getting Started
- Operating System: Linux (required for Apptainer container support)
-
Hardware:
- 64 GB+ RAM recommended
- Multi-core processor (8+ cores recommended)
- Substantial storage for raw data and databases (raw Astral MS files are ~7 GB each; reference databases can reach 50–200 GB depending on method)
Note: Conduit does not run on macOS. Windows is not recommended but may work without containers.
- Snakemake (≥7.0.0)
- Apptainer/Singularity (≥1.1.0)
All other dependencies (R, Python, DIA-NN, MetaPhlAn, Bakta, eggNOG-mapper, etc.) are handled automatically via Apptainer containers.
conda create -n conduit
conda activate conduit
conda install -c bioconda snakemake
conda install -c bioconda apptainergit clone https://github.com/baynec2/conduit-ascent.git
cd conduit-ascentCreate a directory under experiments/ with this structure:
experiments/your_experiment/
├── input/
│ ├── raw_files/ # Your Thermo .raw files
│ └── sample_annotation.txt # Sample metadata
└── config/
└── snakemake.yaml # Experiment configuration
Additional input files may be required depending on your search space method (see Search Space).
Sample annotation file (input/sample_annotation.txt) — tab-delimited:
file condition
sample1 control
sample2 treatment
The file column must match the .raw filenames (without extension) in input/raw_files/.
For ncbi_taxonomy_id method — input/ncbi_taxa_ids.txt:
ncbi_taxa_id
83333
9606
For uniprot_proteome_id method — input/proteome_ids.txt:
UP000000625
UP000005640
For metaphlan method — place FASTQ files in input/fastq_files/.
For MAGs method — place MAG FASTA files in input/MAG_files/.
Copy the template and fill in the required fields:
cp config/snakemake.yaml experiments/your_experiment/config/snakemake.yamlAt minimum, set:
experiment: your_experiment
run_name: run1
search_space_method: ncbi_taxonomy_id # or whichever method fits your dataSee the Configuration Reference in the README for all available parameters.
snakemake --configfile experiments/your_experiment/config/snakemake.yaml --use-apptainerAdd --cores N to use multiple CPU cores (recommended).
All outputs for a run are written to experiments/{experiment}/runs/{run_name}/:
| Output | Description |
|---|---|
database_resources/database.fasta |
Protein FASTA used as the search space |
database_resources/taxonomy.txt |
Taxonomy information for organisms in the database |
database_resources/protein_info.txt |
Per-protein metadata |
database_resources/database.predicted.speclib |
DIA-NN predicted spectral library |
database_resources/README.md |
Summary metrics about the database |
database_resources/detected_protein_resources/ |
Proteins detected by DIA-NN and their annotations |
output_files/{experiment}_{run_name}_conduit.rds |
Final Conduit R object |
The .rds file can be loaded into R with conduitR or opened with Conduit-GUI for interactive exploration.
Each run is namespaced by run_name. You can run the same experiment with different search space methods or parameters by changing run_name in the config — outputs will not overwrite each other.
These instructions are for Knight Lab members running Conduit on Barnacle2 via SLURM. They can be adapted to other SLURM-based HPC systems.
ssh <username>@barnacle2.ucsd.edugit clone https://github.com/baynec2/conduit-ascent.git
cd conduit-ascent
mkdir slurm_outBarnacle2 has Singularity available system-wide. Install Snakemake into the base environment — do not create a separate conda environment, as that will shadow the system Singularity.
singularity --version # verify Singularity is available
pip install snakemake
pip install wheel
pip install datrieUse the run_conduit_barnacle2.slurm script in the repository root. Update --mail-user with your email before submitting.
sbatch run_conduit_barnacle2.slurm
squeue --me # check job status
cat slurm_out/*.err # check Snakemake logsNCBI API failures — If the ncbi_taxonomy_id method fails to fetch taxonomy, the NCBI API may be temporarily unavailable. Wait a few minutes and retry.
Configuration errors — Ensure your snakemake.yaml has values for all required fields: experiment, run_name, search_space_method, and sample_annotation.
File path errors — Verify that the file column in sample_annotation.txt matches the .raw filenames exactly (case-sensitive, no extension).
Container issues — Ensure Apptainer/Singularity is installed and accessible. On HPC systems this may differ from root-enabled personal Linux machines; see Dependency Management.
Memory issues — Increase available RAM (64 GB+ recommended) or reduce parallel jobs with --cores.
Network issues — Ensure internet access for UniProt/KEGG API access and database downloads. Check proxy settings if behind an institutional firewall.
For additional help, check the Issues page or open a new issue with your error message, configuration file, and relevant log from runs/{run_name}/logs/.