- MetaGraph (development commit bd39d9594e77f276e674033b52d9b26ec3a281e3, includes KMC)
- bbmap (v38.86)
- samtools (experiments were run with v1.17)
- PLAST (commit 451369eb23e84328ff9334398d185798d2dc5149)
- GraphAligner (v1.0.17b)
- WGSUniFrac (commit d5c698ba4699aba168fd29fc00024d655c36183f, included here)
- numpy (v1.26.0)
- pandas (v.2.1.1)
- To install most of the required software for the evaluation, set up a
conda
environment using the providedenvironment.yml
file:conda env create -f environment.yml
- Activate the environment:
conda activate mla
- Download the pre-compiled binaries of
metagraph
,PLAST
,kmc
, andparse_plast
from here and place them in your working directory. - Download the genomes from here to a directory named
references
. A list of accessions is inaccession_list
- Download the random entropy source file
seed2
(used to generate query sets) - Download the accession-ID augmented taxonomic tree from the
augmented
directory here
- Simulate reads for each genome:
for a in references/*.fa; do ./make_sample.sh $a; done for a in illumina hifi clr ont; do ./make_subset.sh $a; done
- Build the MetaGraph, PLAST, and GFA indexes by running
./make_graph.sh
. In this script, you can set the number of threads in the variable$NTHREADS
. We provide precomputed indexes forMetaGraph
here and forPLAST
here. - Generate query reads by running
./make_subset.sh
for a in query_reads/*.fa; do
./map_query_sca.sh $a
./map_query_mla.sh $a
./map_query_plast.sh $a
./map_query_ga.sh $a
done
- To compile some of the software yourself from source
parse_plast.cpp
: we have provided aMakefile
.PLAST
: we have provided a templateCMakeLists.txt
file inplast_cmake
. Please edit it to point to theinclude
directory and static lib ofBifrost
.MetaGraph
(with packagedkmc
): follow the instructions here. Remember to checkout the commit listed above from thehm/aln_alt_label_change
branch before compiling.
- Run
metagraph align
to view the help menu listing alignment parameters. To list a more advanced set of parameters, runmetagraph align --advanced
.