SRFAligner
and SRFChainer
are long-read alignment tools based on indexable Elastic Founder Graphs (iEFGs). iEFGs can be obtained from FASTA multiple sequence alignments using founderblockgraph
, or from a VCF file with the pipeline implemented in experiments/vcf-to-hapl-to-efg
using founderblockgraph
and vcf2multialign
. The graphs used in the experiments can be found at doi.org/10.5281/zenodo.14012881.
SRFAligner
, SRFChainer
and the other prototype aligners are Bash scripts and they depend on efg-locate
, chainx-block-graph
(tested on GCC >= 13), and GraphAligner
(tested on GitHub version >= 1.0.19). To clone this repository and compile the first two:
git clone https://github.com/algbio/SRFAligner && cd SRFAligner
git submodule update --init tools/{sdsl-lite-v3,concurrentqueue}
make
and GraphAligner
's executable is expected to be found in folder tools/GraphAligner/bin
, so you can run command git submodule update --init --recursive tools/GraphAligner
and follow its compilation instructions. If GraphAligner
is already installed in your system, you can just modify the relative line in SRFAligner
and SRFChainer
:
sed --in-place '7s/.*/graphaligner=GraphAligner/' SRFAligner SRFChainer efg-memsAligner efg-ahocorasickAligner
Test the aligners with commands
./SRFAligner -g test/graph1.gfa -f test/read1.fastq -a test/aln1.gaf
./SRFChainer -g test/graph2.gfa -f test/read2.fastq -a test/aln2.gaf
To use MEM seeds computed by efg-mems
, efg-memsAligner
expects efg-mems
's executable to be in tools/efg-mems/efg-mems
and seqtk
to be in tools/seqtk
:
git submodule update --init --recursive {tools/efg-mems,tools/seqtk}
make -C tools/seqtk
cd tools/efg-mems/sdsl-lite
./install.sh .
cd ..
cmake .
make
Analogously, to use full node seeds computed by daachorse
(Aho-Corasick automaton of the node labels, requires Rust >= 1.61), efg-ahocorasickAligner
expects efg-ahocorasick
and extractor
to be in tools/efg-ahocorasick
, and seqtk
to be in tools/seqtk
:
git submodule update --init --recursive {tools/daachorse,tools/seqtk}
make -C tools/seqtk
make -C tools/efg-ahocorasick