ADF module

class ResultADF(variant_flagged: TestOutcomes, info_flag: enum.Flag | None, reads_seen: int, strand: Strand)[source]

Bases: FlagResult

reads_seen: int
strand: Strand
getinfo(alt: str) str[source]

Return basic filter info in a string formatted for use in the VCF INFO field - “<flag>|<code>”.

Each filter must return INFO as it should be formatted for the VCF INFO field, or None if not applicable. Subclasses must override this method to return more specific info.

FlagName: ClassVar[str] = 'ADF'
InfoFlags

alias of Info

InfoFlagsAllSet: ClassVar[Flag | None] = 127
validate_positive(val: int | float)[source]
class FixedParamsADF(*, edge_definition: ~typing.Annotated[float, ~pydantic.functional_validators.AfterValidator(func=~hairpin2.process_wrappers.ADF.FixedParamsADF.<lambda>)], edge_clustering_threshold: ~typing.Annotated[float, ~pydantic.functional_validators.AfterValidator(func=~hairpin2.process_wrappers.ADF.FixedParamsADF.<lambda>)], min_MAD_one_strand: ~typing.Annotated[float, ~pydantic.functional_validators.AfterValidator(func=~hairpin2.process_wrappers.ADF.validate_positive)], min_sd_one_strand: ~typing.Annotated[float, ~pydantic.functional_validators.AfterValidator(func=~hairpin2.process_wrappers.ADF.validate_positive)], min_MAD_both_strand_weak: ~typing.Annotated[float, ~pydantic.functional_validators.AfterValidator(func=~hairpin2.process_wrappers.ADF.validate_positive)], min_sd_both_strand_weak: ~typing.Annotated[float, ~pydantic.functional_validators.AfterValidator(func=~hairpin2.process_wrappers.ADF.validate_positive)], min_MAD_both_strand_strong: ~typing.Annotated[float, ~pydantic.functional_validators.AfterValidator(func=~hairpin2.process_wrappers.ADF.validate_positive)], min_sd_both_strand_strong: ~typing.Annotated[float, ~pydantic.functional_validators.AfterValidator(func=~hairpin2.process_wrappers.ADF.validate_positive)], min_non_edge_reads: ~typing.Annotated[int, ~pydantic.functional_validators.AfterValidator(func=~hairpin2.process_wrappers.ADF.validate_positive)], low_n_supporting_reads_boundary: ~typing.Annotated[int, ~pydantic.functional_validators.AfterValidator(func=~hairpin2.process_wrappers.ADF.validate_positive)])[source]

Bases: FixedParams

edge_definition: <lambda>)]
edge_clustering_threshold: <lambda>)]
min_MAD_one_strand: Annotated[float, AfterValidator(func=validate_positive)]
min_sd_one_strand: Annotated[float, AfterValidator(func=validate_positive)]
min_MAD_both_strand_weak: Annotated[float, AfterValidator(func=validate_positive)]
min_sd_both_strand_weak: Annotated[float, AfterValidator(func=validate_positive)]
min_MAD_both_strand_strong: Annotated[float, AfterValidator(func=validate_positive)]
min_sd_both_strand_strong: Annotated[float, AfterValidator(func=validate_positive)]
min_non_edge_reads: Annotated[int, AfterValidator(func=validate_positive)]
low_n_supporting_reads_boundary: Annotated[int, AfterValidator(func=validate_positive)]
model_config: ConfigDict = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'frozen': True, 'strict': True}

parent dataclass to be be inherited from to store specific fixed parameters for a particular subclass of FilterTester, or in other words for a particular filtering test. Using subclasses of this class for the fixed parameters provides type-safety and a consistent interface for implementing filters

test_adf(run_params: RunParamsShared, fixed_params: FixedParamsADF)[source]
class FlaggerADF(engine_fixed_params: FixedParams | None, require_marks: Sequence[str], exclude_marks: Sequence[str])[source]

Bases: ReadAwareProcess

Anomalous Distribution Filter based on the hairpin filtering algorithm described in Ellis et al. 2020 (DOI: 10.1038/s41596-020-00437-6)

AddsMarks: ClassVar[set[str] | None] = None
EngineFactory() ProcessEngineProtocol[RunParams, FlagResult]
FixedParamClass

alias of FixedParamsADF

ProcessNamespace: ClassVar[str | None] = 'ADF'
ProcessType: ClassVar[ProcessKindEnum | None] = <class 'hairpin2.infrastructure.process_engines.VariantFlaggerEngine'>