Site Filtration

Site Filtration#

sfsutils offers a number of filtrations that are either applied on the fly while parsing, or run through the Filterer class to filter an input and write the result to a file. Some useful filtrations include DeviantOutgroupFiltration, CodingSequenceFiltration, and BiasedGCConversionFiltration. For a complete list of available filtrations, refer to the API reference.

import sfsutils as su
# example for filtration
f = su.Filterer(
    source="resources/genome/betula/biallelic.subset.10000.vcf.gz",
    filtrations=[su.BiasedGCConversionFiltration()],
    output="genome.gc.vcf.gz"
)

f.filter()
INFO:Filterer: Start filtering
INFO:Filterer: Loading VCF file
Filterer>Counting sites: 10000it [00:00, 478468.65it/s]
Filterer>Processing sites: 100%|██████████| 10000/10000 [00:00<00:00, 78253.40it/s]
INFO:BiasedGCConversionFiltration: Filtered out 7903 sites.
INFO:Filterer: Filtered out 7903 of 10000 sites in total.

Note that all components can easily be customized by extending the corresponding base class.