Here we will version the main project consisting on building a sequence to graph aligner based on Co-linear Chaining.
To compile, run these:
- Install miniconda https://conda.io/projects/conda/en/latest/user-guide/install/index.html
git submodule update --init --recursiveconda env create -f CondaEnvironment.ymlconda activate GraphChainermake bin/GraphChainer
Quickstart: ./bin/GraphChainer -t 4 -f reads.fastq -g graph.gfa -a out.gam
Parameters inherited from GraphAligner:
-tNumber of threads.-fInput reads. Format .fasta / .fastq / .fasta.gz / .fastq.gz. You can input multiple files with-f file1 -f file2 ...or-f file1 file2 ....-gInput graph. Format .gfa / .vg.-aOutput file name. Format .gam or .json.
Parameters related to colinear chaining:
--speed <int>Default 1. Use 2 or 3 (or larger values) if you want GraphChainer to be faster, but sligthly less accurate.--colinear-split-len <int>Default 35. The length of the fragments in which the long read is split to create anchors.--colinear-split-gap <int>Default 35. The distance between consecutive fragments. If--speedis set, then always--colinear-split-gap = --speed * --colinear-split-len.--colinear-gap 1000Default 10000. When converting an optimal chain of anchors into an alignment path, split the path if the distance between consecutive anchors is greater than this value.
GraphChainer is built on the excellent code base of GraphAligner, which is released under MIT License. GraphAligner is described in the paper [GraphAligner: Rapid and Versatile Sequence-to-Graph Alignment](GraphAligner: rapid and versatile sequence-to-graph alignment) by Mikko Rautiainen and Tobias Marschall.