LQF module

class QualParams(*, min_mapping_quality: ~typing.Annotated[int, ~pydantic.functional_validators.AfterValidator(func=~hairpin2.process_wrappers.LQF.QualParams.<lambda>)], min_avg_clip_quality: ~typing.Annotated[int, ~pydantic.functional_validators.AfterValidator(func=~hairpin2.process_wrappers.LQF.QualParams.<lambda>)], min_base_quality: ~typing.Annotated[int, ~pydantic.functional_validators.AfterValidator(func=~hairpin2.process_wrappers.LQF.QualParams.<lambda>)])[source]

Bases: FixedParams

min_mapping_quality: <lambda>)]
min_avg_clip_quality: <lambda>)]
min_base_quality: <lambda>)]
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

tag_lq(run_params: RunParamsShared, params: QualParams)[source]
class TaggerLowQual(engine_fixed_params: FixedParams | None, require_marks: Sequence[str], exclude_marks: Sequence[str])[source]

Bases: ReadAwareProcess

AddsMarks: ClassVar[set[str] | None] = {Tags.LOW_QUAL_TAG}
EngineFactory() ProcessEngineProtocol[RunParams_T, None]
FixedParamClass

alias of QualParams

ProcessNamespace: ClassVar[str | None] = 'mark-low-qual'
ProcessType: ClassVar[ProcessKindEnum | None] = <class 'hairpin2.infrastructure.process_engines.ReadTaggerEngine'>
class ResultLQF(variant_flagged: TestOutcomes, info_flag: enum.Flag | None, reads_seen: int, loss_ratio: float)[source]

Bases: FlagResult

loss_ratio: float
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] = 'LQF'
InfoFlags

alias of Info

InfoFlagsAllSet: ClassVar[Flag | None] = 7
class FixedParamsLQF(*, read_loss_threshold: ~typing.Annotated[float, ~pydantic.functional_validators.AfterValidator(func=~hairpin2.process_wrappers.LQF.FixedParamsLQF.<lambda>)], min_pass_reads: ~typing.Annotated[int, ~pydantic.functional_validators.AfterValidator(func=~hairpin2.process_wrappers.LQF.FixedParamsLQF.<lambda>)], nsamples_threshold: int)[source]

Bases: FixedParams

read_loss_threshold - percent threshold of N lq reads compared to N input reads for a given variant and sample, above which we flag LQF min_pass_reads - the absolute minimum number of reads required for a variant not to be flagged LQF

read_loss_threshold: <lambda>)]
min_pass_reads: <lambda>)]
nsamples_threshold: int
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_variant_LQF(run_params: RunParamsShared, fixed_params: FixedParamsLQF)[source]
class FlaggerLQF(engine_fixed_params: FixedParams | None, require_marks: Sequence[str], exclude_marks: Sequence[str])[source]

Bases: ReadAwareProcess

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

alias of FixedParamsLQF

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