Quick start#

This example runs the full Conda-based BASALT workflow on one assembly and one paired-end short-read sample. It is designed to expose path, environment, database, and checkpoint problems before a larger analysis.

Before you run#

Confirm that:

  • BASALT is installed in an active environment;

  • BASALT_WEIGHT points to the extracted model directory;

  • CheckM2 can locate its database;

  • the assembly and both read files belong to the intended sample or study design;

  • the working directory is new or contains only this run.

1. Create an isolated working directory#

mkdir -p /project/basalt_runs/study_01
cd /project/basalt_runs/study_01

BASALT writes checkpoints and intermediates to the current working directory. One directory per run prevents checkpoint collisions and makes provenance easier to audit.

3. Run BASALT#

conda activate basalt

BASALT \
  -a assembly.fasta \
  -s sample_R1.fastq,sample_R2.fastq \
  -t 32 \
  -m 128 \
  --sensitive sensitive \
  --refinepara quick \
  --min-cpn 35 \
  --max-ctn 20 \
  -q checkm2 \
  --mode new \
  -o study_01_basalt \
  > basalt.stdout.log 2> basalt.stderr.log

-t controls requested threads. -m reports available RAM in GB to BASALT and influences some internal parallelism; it is not a hard operating-system memory limit.

4. Monitor without changing the run#

tail -f Basalt_log.txt

In another shell, inspect the last checkpoint:

tail -n 5 Basalt_checkpoint.txt

Do not launch a second BASALT process in the same directory.

5. Inspect completion and outputs#

A completed full run should contain the final output directory named by -o:

test -d study_01_basalt
find study_01_basalt -maxdepth 1 -type f -name '*.fa' | wc -l

Retain these provenance files with the final MAGs:

BASALT_command.txt
Basalt_checkpoint.txt
Basalt_log.txt
basalt.stdout.log
basalt.stderr.log
input.sha256
study_01_basalt/

The presence of FASTA files establishes that the workflow produced bins. It does not establish that every bin meets a study-specific quality or taxonomic criterion. Inspect the final CheckM2 report and document all downstream filters.

Resume an interrupted run#

Resume from the same directory, environment, code version, models, and databases:

BASALT --mode continue \
  > basalt.resume.stdout.log 2> basalt.resume.stderr.log

The current CLI defaults omitted arguments to empty values and relies on checkpointed intermediate files during continuation. Preserve the original command in BASALT_command.txt. If inputs, parameters, code, models, or databases changed, start a new run directory instead of resuming.

Common input variants#

BASALT \
  -a assembly.fasta \
  -s sample_R1.fastq,sample_R2.fastq \
  -l nanopore.fastq \
  -t 64 -m 256 --mode new -o study_01_basalt
BASALT \
  -a assembly.fasta \
  -hf hifi.fastq \
  -t 32 -m 128 --mode new -o study_01_basalt
BASALT \
  -a assembly.fasta \
  -s sample_1_R1.fastq,sample_1_R2.fastq/sample_2_R1.fastq,sample_2_R2.fastq \
  -t 64 -m 256 --mode new -o study_01_basalt

Read Input formats and paths before using several samples or assemblies. The delimiter describes file grouping; it does not encode biological pairing between assemblies and samples.

Next steps#