
Pileup approach:
1) compute coverage at every aligned position of every read. (In case of deletion write down D, in case of insertion write down inserted string).
2) filter positions which disagree with reference, and have strong support.
3) join those from filtered positions that are adjacent into one variant.

Freebayes approach:
1) compute coverage at every aligned position of every read.
2) filter positions which disagree with reference, and have strong support - those are potential variants
3) try to extend these positions to the left and right by k positions of reference (if two such regions intersect join them)
4) string formed by those positions write into map/ increase counter

Approaches described above detect also insertions and deletions.

Sampling
1) For every read - read signal from fast5 file
2) Generate probabilites into txt file
3) For every read read probablities from file
4) Generate sample described by these probabilities.
5) Write into fasta file, align to reference

Evaluating
1) Input consists of two vcf files: one with answers - variants which we believe to be true,
and one with variants that have been found by our method.
2) Compute weights based on qualities of true variants - variants with higher quality are more important.
3) For every found variant that is true increase score by its weight
3) For every found variant that is not true, decrease score (how much ?).

All of the above parameters can be provided as command line arguments.

Other classes:
1) Plotter - gets method for computing precision, recall, paramater which should be iterated and plots precision and recall
with iterating parameter on the x axis
2) VCFReader - gets path to vcf file, parses it returning variants in a list, each variant represented as a dictionary.
3) Evaluator - Gets two vcf files (one which is considered as answers sheet and one which should be evaluated), computes precision and recall

For simple install you need following packages:
pysam >= 0.16
fastaparser >= 1.1

For plotting you need:
matplotlib >= 3.4

For sampling you need:
ont_fast5_api >= 3.3
download DeepNano-blitz available here: git@github.com:fmfi-compbio/deepnano-blitz.git
checkout commit: 15bd04b94c291debac75823811a2c86820dda589
replace deepnano-blitz/src/lib.rs with our lib.rs, compile according to instructions from github

Test setup:
for testing (plotting precision, recall) checkout src/test_*.py
