sassy 0.2.0

Approximate string matching using SIMD
Documentation

api:
    cargo modules structure --package sassy --lib --sort-by visibility

doc:
    cargo doc --no-deps --open

cbindgen:
    cbindgen --config cbindgen.toml --output c/sassy.h

perm:
    sudo sysctl -w kernel.perf_event_paranoid=-1
    sudo sh -c 'echo 1 > /proc/sys/kernel/perf_event_paranoid'

unperm:
	sudo sysctl -w kernel.perf_event_paranoid=2
	sudo sysctl -w kernel.kptr_restrict=1

perf: 
    sudo sudo cpupower frequency-set -u 3.7GHz -g performance



### Sassy 2 evals

# Off-targets
sassy2_prep_off_targets:
    mkdir -p evals/src/sassy2/data
    mkdir -p evals/src/sassy2/data/downloaded
    wget -O evals/src/sassy2/data/downloaded/chm13v2.0.fa.gz https://s3-us-west-2.amazonaws.com/human-pangenomics/T2T/CHM13/assemblies/analysis_set/chm13v2.0.fa.gz
    gunzip evals/src/sassy2/data/downloaded/chm13v2.0.fa.gz

sassy2_run_off_targets:
    just perf
    mkdir -p evals/src/sassy2/output
    cargo run -r -p evals -- sassy2 off-targets --config evals/src/sassy2/configs/crispr_off_target_config.toml

# Nanopore 
sassy2_prep_nanopore:
    mkdir -p evals/src/sassy2/data
    mkdir -p evals/src/sassy2/data/downloaded
    wget -O evals/src/sassy2/data/downloaded/SRR26425221_1.fastq.gz ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR264/021/SRR26425221/SRR26425221_1.fastq.gz
    gunzip evals/src/sassy2/data/downloaded/SRR26425221_1.fastq.gz

sassy2_run_nanopore:
    just perf
    mkdir -p evals/src/sassy2/output
    cargo run -r -p evals -- sassy2 nanopore --config evals/src/sassy2/configs/nanopore_config.toml

# Text and pattern scaling fig
sassy2_fig1:
    just perm
    just perf   
    mkdir -p evals/src/sassy2/output/
    mkdir -p evals/src/sassy2/figs/
    cargo run -r -p evals -- sassy2 pattern-scaling --config evals/src/sassy2/configs/pattern_scaling_config.toml
    cargo run -r -p evals -- sassy2 text-scaling --config evals/src/sassy2/configs/text_scaling_config.toml
    python3  evals/src/sassy2/scripts/generate_fig1.py
    just unperm

# Flamegraph: run lib unit test (workaround when package has lib + bin with same name)
flamegraph test_name:
    cargo test --no-run --lib
    flamegraph -- $(cargo test --release --no-run --lib 2>&1 | sed -n '/Executable/s/.*(\(.*\))/\1/p') {{test_name}}