gain.annotation package
Submodules
gain.annotation.annotatable module
- class gain.annotation.annotatable.Annotatable(chrom: str, pos: int, pos_end: int, annotatable_type: Type)[source]
Bases:
objectBase class for annotatables used in annotation pipeline.
- class Type(*values)[source]
Bases:
EnumDefines annotatable types.
- COMPLEX = 5
- LARGE_DELETION = 7
- LARGE_DUPLICATION = 6
- POSITION = 0
- REGION = 1
- SMALL_DELETION = 4
- SMALL_INSERTION = 3
- SUBSTITUTION = 2
- property chrom: str
- property chromosome: str
- property end_position: int
- static from_string(value: str) Annotatable[source]
Deserialize an Annotatable instance from a string value.
- property pos: int
- property pos_end: int
- property position: int
- class gain.annotation.annotatable.CNVAllele(chrom: str, pos_begin: int, pos_end: int, cnv_type: Type)[source]
Bases:
AnnotatableDefines copy number variants annotatable.
- class gain.annotation.annotatable.Position(chrom: str, pos: int)[source]
Bases:
AnnotatableAnnotatable class representing a single position in a chromosome.
- class gain.annotation.annotatable.Region(chrom: str, pos_begin: int, pos_end: int)[source]
Bases:
AnnotatableAnnotatable class representing a region in a chromosome.
- class gain.annotation.annotatable.VCFAllele(chrom: str, pos: int, ref: str, alt: str)[source]
Bases:
AnnotatableDefines small variants annotatable.
- property alt: str
- property alternative: str
- static from_string(value: str) VCFAllele[source]
Deserialize an Annotatable instance from a string value.
- property ref: str
- property reference: str
gain.annotation.annotate_columns module
- gain.annotation.annotate_columns.annotate_columns(input_path: str, pipeline: AnnotationPipeline, output_path: str, args: dict[str, Any], *, reference_genome: ReferenceGenome | None = None, region: Region | None = None, attributes_to_delete: Sequence[str] | None = None) None[source]
Annotate a columns file using a processing pipeline.
gain.annotation.annotate_doc module
gain.annotation.annotate_utils module
- gain.annotation.annotate_utils.add_common_annotation_arguments(parser: ArgumentParser) None[source]
Add common arguments to an annotation command line parser.
- gain.annotation.annotate_utils.add_input_files_to_task_graph(args: dict, task_graph: TaskGraph) None[source]
- gain.annotation.annotate_utils.build_cli_genomic_context(cli_args: dict[str, Any]) GenomicContext[source]
Helper method to collect necessary objects from the genomic context.
- gain.annotation.annotate_utils.build_output_path(raw_input_path: str, output_path: str | None) str[source]
Build an output filepath for an annotation tool’s output.
- gain.annotation.annotate_utils.cache_pipeline_resources(grr: GenomicResourceRepo, pipeline: AnnotationPipeline) None[source]
Cache resources that the given pipeline will use.
- gain.annotation.annotate_utils.get_grr_from_context(context: GenomicContext) GenomicResourceRepo[source]
Get the genomic resource repository from the genomic context.
- gain.annotation.annotate_utils.get_pipeline_from_context(context: GenomicContext) AnnotationPipeline[source]
Get the annotation pipeline from the genomic context.
- gain.annotation.annotate_utils.handle_default_args(args: dict[str, Any]) dict[str, Any][source]
Handle default arguments for annotation command line tools.
- gain.annotation.annotate_utils.produce_partfile_paths(input_file_path: str, regions: list[Region], work_dir: str) list[str][source]
Produce a list of file paths for output region part files.
gain.annotation.annotate_vcf module
- gain.annotation.annotate_vcf.annotate_vcf(input_path: str, pipeline: AnnotationPipeline, output_path: str, args: dict[str, Any], *, region: Region | None = None, attributes_to_delete: Sequence[str] | None = None) None[source]
Annotate a columns file using a processing pipeline.
gain.annotation.annotation_config module
- class gain.annotation.annotation_config.AnnotationConfigParser[source]
Bases:
objectParser for annotation configuration.
- ANNOTATION_CONFIG_GRAMMAR = '\n?start: resource_id [filter]\n\n?resource_id: (resource_name | wildcard)\n\nwildcard: /[\\w\\d\\/_*]+/\n\nfilter: "[" (equals | and_)+ "]"\n\nand_: operation "and" operation\n\nequals: (name"=\\""value"\\"") | (name"=\'"value"\'")\n\nin: ("\\""value"\\"" " in " name) | ("\'"value"\'" " in " name)\n\nresource_name: /[\\w\\d\\/_\\-!@#$%^<>+]+/\n\n?name: /[\\w\\d\\/_\\-!@#$%^<>+*]+/\n\n?value: /[\\w\\d\\/ _\\-!@#$%^<>+*]+/\n\n?operation: equals | in | and_\n\n%ignore " "\n'
- WILDCARD_LIMIT = 500
- static build_labels_query(node: Any, labels_query: dict[str, Any] | None = None) dict[str, Callable[[str], bool]][source]
Build labels query from parsed tree node.
- static has_wildcard(string: str) bool[source]
Ascertain whether a string contains a valid wildcard.
- static match_labels_query(query: dict[str, Callable[[str], bool]], resource_labels: dict[str, str]) bool[source]
Check if the labels query for a wildcard matches.
- static parse_complete(raw: dict[str, Any], idx: int, grr: GenomicResourceRepo | None = None) list[AnnotatorInfo][source]
Parse a full-form annotation config.
- static parse_minimal(raw: str, idx: int) AnnotatorInfo[source]
Parse a minimal-form annotation config.
- static parse_raw(pipeline_raw_config: list[dict[str, Any]] | RawFullConfig | None, grr: GenomicResourceRepo | None = None) tuple[AnnotationPreamble | None, list[AnnotatorInfo]][source]
Parse raw dictionary annotation pipeline configuration.
- static parse_raw_attribute_config(raw_attribute_config: dict[str, Any]) AttributeInfo[source]
Parse annotation attribute raw configuration.
- static parse_raw_attributes(raw_attributes_config: Any) list[AttributeInfo][source]
Parse annotator pipeline attribute configuration.
- static parse_short(raw: dict[str, Any], idx: int, grr: GenomicResourceRepo | None = None) list[AnnotatorInfo][source]
Parse a short-form annotation config.
- static parse_str(content: str, source_file_name: str | None = None, grr: GenomicResourceRepo | None = None) tuple[AnnotationPreamble | None, list[AnnotatorInfo]][source]
Parse annotation pipeline configuration string.
- static query_resources(annotator_type: str, resource_id: str, grr: GenomicResourceRepo) list[str][source]
Collect resources matching a given query.
- exception gain.annotation.annotation_config.AnnotationConfigurationError(message: str | None, other_error: Exception | None = None, error_mark: ErrorMark | None = None)[source]
Bases:
ExceptionException raised for errors in the annotation configuration.
- message: str | None
- class gain.annotation.annotation_config.AnnotationPreamble(summary: 'str', description: 'str', input_reference_genome: 'str', input_reference_genome_res: 'GenomicResource | None', metadata: 'dict[str, Any]')[source]
Bases:
object- description: str
- input_reference_genome: str
- input_reference_genome_res: GenomicResource | None
- metadata: dict[str, Any]
- summary: str
- class gain.annotation.annotation_config.AnnotatorInfo(_type: str, attributes: list[AttributeInfo], parameters: ParamsUsageMonitor | dict[str, Any], documentation: str = '', resources: list[GenomicResource] | None = None, annotator_id: str = 'N/A')[source]
Bases:
objectDefines annotator configuration.
- annotator_id: str
- attributes: list[AttributeInfo]
- documentation: str = ''
- parameters: ParamsUsageMonitor
- resources: list[GenomicResource]
- type: str
- class gain.annotation.annotation_config.AttributeInfo(name: str, source: str, *, internal: bool | None, parameters: ParamsUsageMonitor | dict[str, Any], _type: str = 'str', description: str = '', documentation: str | None = None, attribute_type: str = 'attribute', default: bool = True)[source]
Bases:
objectDefines annotation attribute configuration.
- attribute_type: str = 'attribute'
- static create(source: str, name: str | None = None, *, internal: bool = False) AttributeInfo[source]
Create an AttributeInfo instance.
- default: bool = True
- description: str = ''
- property documentation: str
- internal: bool | None
- name: str
- parameters: ParamsUsageMonitor
- source: str
- value_type: str = 'str'
- class gain.annotation.annotation_config.ErrorMark(row: int, column: int)[source]
Bases:
objectMarks an error position in a file.
- column: int
- row: int
- class gain.annotation.annotation_config.ParamsUsageMonitor(data: dict[str, Any])[source]
Bases:
MappingClass to monitor usage of annotator parameters.
- class gain.annotation.annotation_config.RawFullConfig[source]
Bases:
TypedDict- annotators: list[dict[str, Any]]
- preamble: RawPreamble
gain.annotation.annotation_factory module
Factory for creation of annotation pipeline.
- gain.annotation.annotation_factory.build_annotation_pipeline(config: list[dict[str, Any]] | RawFullConfig, grr: GenomicResourceRepo, *, allow_repeated_attributes: bool = False, work_dir: Path | None = None) AnnotationPipeline[source]
Build an annotation pipeline.
- gain.annotation.annotation_factory.build_pipeline_annotator(pipeline: AnnotationPipeline, annotator_config: AnnotatorInfo, work_dir: Path) Annotator[source]
Build an annotator for the pipeline.
- gain.annotation.annotation_factory.check_for_repeated_attributes_in_annotator(annotator_config: AnnotatorInfo) None[source]
Check for repeated attributes in annotator configuration.
- gain.annotation.annotation_factory.check_for_repeated_attributes_in_pipeline(pipeline: AnnotationPipeline, *, allow_repeated_attributes: bool = False, annotator_config: AnnotatorInfo | None = None) None[source]
Check for repeated attributes in pipeline configuration.
- gain.annotation.annotation_factory.check_for_unused_parameters(info: AnnotatorInfo) None[source]
Check annotator configuration for unused parameters.
- gain.annotation.annotation_factory.get_annotator_factory(annotator_type: str) Callable[[AnnotationPipeline, AnnotatorInfo], Annotator][source]
Find and return a factory function for creation of an annotator type.
If the specified annotator type is not found, this function raises ValueError exception.
- Returns:
the annotator factory for the specified annotator type.
- Raises:
ValueError – when can’t find an annotator factory for the specified annotator type.
- gain.annotation.annotation_factory.get_available_annotator_types() list[str][source]
Return the list of all registered annotator factory types.
- gain.annotation.annotation_factory.load_pipeline_from_file(raw_path: str, grr: GenomicResourceRepo, *, allow_repeated_attributes: bool = False, work_dir: Path | None = None) AnnotationPipeline[source]
Load an annotation pipeline from a configuration file.
- gain.annotation.annotation_factory.load_pipeline_from_grr(grr: GenomicResourceRepo, resource: GenomicResource) AnnotationPipeline[source]
Load a pipeline from a grr and a resource.
- gain.annotation.annotation_factory.load_pipeline_from_yaml(raw: str, grr: GenomicResourceRepo, *, allow_repeated_attributes: bool = False, work_dir: Path | None = None) AnnotationPipeline[source]
Load an annotation pipeline from a YAML-formatted string.
- gain.annotation.annotation_factory.register_annotator_factory(annotator_type: str, factory: Callable[[AnnotationPipeline, AnnotatorInfo], Annotator]) None[source]
Register additional annotator factory.
By default all annotator factories should be registered at the [gain.annotation.annotators] entry point. All registered factories are loaded automatically. This function should be used if you want to bypass the entry point mechanism and register an additional annotator factory programmatically.
- gain.annotation.annotation_factory.resolve_repeated_attributes(pipeline: AnnotationPipeline, repeated_attributes: set[str]) None[source]
Resolve repeated attributes in pipeline configuration via renaming.
gain.annotation.annotation_genomic_context_cli module
Command line helpers for constructing annotation pipelines.
The utilities in this module complement the generic genomic context
providers by supplying annotation pipeline objects. They enable CLI tools to
load pipeline definitions from the file system or from genomic resource
repositories, and to make the resulting AnnotationPipeline
instances available through the shared genomic context mechanism.
- class gain.annotation.annotation_genomic_context_cli.CLIAnnotationContextProvider[source]
Bases:
GenomicContextProviderExpose annotation pipeline configuration through CLI options.
The provider allows users to point to an annotation pipeline definition (either as a file path or a genomic resource identifier) and optionally tweak pipeline behaviour via command-line flags. When invoked without a
pipelineargument the provider abstains from creating a context so that other providers can supply their default pipelines.- add_argparser_arguments(parser: ArgumentParser, **kwargs: Any) None[source]
Register arguments that describe the annotation pipeline source.
Parameters
- parser
The parser that should receive the provider specific CLI options.
- init(**kwargs: Any) GenomicContext | None[source]
Materialise a genomic context containing an annotation pipeline.
Parameters
- **kwargs
Keyword arguments parsed from the command line. The provider looks at
pipeline,allow_repeated_attributes, andwork_dir.
Returns
- GenomicContext | None
A context containing the annotation pipeline, or
Nonewhen no pipeline could be created (for example when thepipelineargument is omitted).
- gain.annotation.annotation_genomic_context_cli.get_context_pipeline(context: GenomicContext) AnnotationPipeline | None[source]
Extract a validated
AnnotationPipelinefrom context.Parameters
- context
The genomic context from which to retrieve the pipeline object.
Returns
- AnnotationPipeline | None
The pipeline instance or
Nonewhen the context does not expose a pipeline.
Raises
- TypeError
If the context entry is present but does not contain the expected
AnnotationPipelinetype.
gain.annotation.annotation_pipeline module
Provides annotation pipeline class.
- class gain.annotation.annotation_pipeline.AnnotationPipeline(repository: GenomicResourceRepo)[source]
Bases:
objectProvides annotation pipeline abstraction.
- annotate(annotatable: Annotatable | None, context: dict | None = None) dict[source]
Apply all annotators to an annotatable.
- batch_annotate(annotatables: Sequence[Annotatable | None], contexts: list[dict] | None = None, batch_work_dir: str | None = None) list[dict][source]
Apply all annotators to a list of annotatables.
- get_annotator_by_attribute_info(attribute_info: AttributeInfo) Annotator | None[source]
- get_attribute_info(attribute_name: str) AttributeInfo | None[source]
- get_attributes() list[AttributeInfo][source]
- get_attributes_by_type(attribute_type: str) list[AttributeInfo][source]
- get_info() list[AnnotatorInfo][source]
- open() AnnotationPipeline[source]
Open all annotators in the pipeline and mark it as open.
- class gain.annotation.annotation_pipeline.Annotator(pipeline: AnnotationPipeline | None, info: AnnotatorInfo)[source]
Bases:
ABCAnnotator provides a set of attrubutes for a given Annotatable.
- abstractmethod annotate(annotatable: Annotatable | None, context: dict[str, Any]) dict[str, Any][source]
Produce annotation attributes for an annotatable.
- property attributes: list[AttributeInfo]
- batch_annotate(annotatables: Sequence[Annotatable | None], contexts: list[dict[str, Any]], batch_work_dir: str | None = None) Iterable[dict[str, Any]][source]
- abstractmethod get_all_attribute_descriptions() dict[str, AttributeDesc][source]
Get descriptions of all attributes provided by the annotator.
- get_info() AnnotatorInfo[source]
- property resource_ids: set[str]
- property resources: list[GenomicResource]
- property used_context_attributes: tuple[str, ...]
- class gain.annotation.annotation_pipeline.AnnotatorDecorator(child: Annotator)[source]
Bases:
AnnotatorDefines annotator decorator base class.
- get_all_attribute_descriptions() dict[str, AttributeDesc][source]
Get descriptions of all attributes provided by the annotator.
- class gain.annotation.annotation_pipeline.AttributeDesc(source: str, type: str, description: str, name: str | None = None, default: bool = True, internal: bool = False, params: dict[str, ~typing.Any] = <factory>, attribute_type: str = 'attribute')[source]
Bases:
objectHolds default attribute configuration for annotators.
- attribute_type: str = 'attribute'
- default: bool = True
- description: str
- internal: bool = False
- name: str | None = None
- params: dict[str, Any]
- source: str
- type: str
- class gain.annotation.annotation_pipeline.InputAnnotableAnnotatorDecorator(child: Annotator)[source]
Bases:
AnnotatorDecoratorDefines annotator decorator to use input annotatable if defined.
- annotate(annotatable: Annotatable | None, context: dict[str, Any]) dict[str, Any][source]
Produce annotation attributes for an annotatable.
- property used_context_attributes: tuple[str, ...]
- class gain.annotation.annotation_pipeline.ReannotationPipeline(pipeline_new: AnnotationPipeline, pipeline_previous: AnnotationPipeline, *, full_reannotation: bool = False)[source]
Bases:
AnnotationPipelineProvides functionality for reannotation.
- get_attributes() list[AttributeInfo][source]
- class gain.annotation.annotation_pipeline.ValueTransformAnnotatorDecorator(child: Annotator, value_transformers: dict[str, Callable[[Any], Any]])[source]
Bases:
AnnotatorDecoratorDefine value transformer annotator decorator.
- annotate(annotatable: Annotatable | None, context: dict[str, Any]) dict[str, Any][source]
Produce annotation attributes for an annotatable.
gain.annotation.annotator_base module
Provides base class for annotators.
- class gain.annotation.annotator_base.AnnotatorBase(pipeline: AnnotationPipeline | None, info: AnnotatorInfo)[source]
Bases:
AnnotatorBase implementation of the Annotator class.
- BASE_DOC_URL = 'https://iossifovlab.com/gpfuserdocs/administration/annotation.html'
- annotate(annotatable: Annotatable | None, context: dict[str, Any]) dict[str, Any][source]
Produce annotation attributes for an annotatable.
- batch_annotate(annotatables: Sequence[Annotatable | None], contexts: list[dict[str, Any]], batch_work_dir: str | None = None) list[dict[str, Any]][source]
gain.annotation.chrom_mapping_annotator module
- class gain.annotation.chrom_mapping_annotator.ChromMappingAnnotator(pipeline: AnnotationPipeline, info: AnnotatorInfo)[source]
Bases:
AnnotatorBaseAnnotator for adjusting chromosome values.
- get_all_attribute_descriptions() dict[str, AttributeDesc][source]
Get descriptions of all attributes provided by the annotator.
- gain.annotation.chrom_mapping_annotator.build_chrom_mapping_annotator(pipeline: AnnotationPipeline, info: AnnotatorInfo) Annotator[source]
gain.annotation.cnv_collection_annotator module
- class gain.annotation.cnv_collection_annotator.CnvCollectionAnnotator(pipeline: AnnotationPipeline, info: AnnotatorInfo)[source]
Bases:
AnnotatorSimple effect annotator class.
- CNV_FILTER_GRAMMAR = '\n?start: filter | and_ | or\n\nand_: filter "and" filter\n\nor: filter "or" filter\n\n?filter: subject operator subject | or | and_\n\n?subject: variable | value\n\nvalue: "\\"" word "\\"" | number\n\nvariable: word\n\noperator: equals | greater_than | less_than | in\n\nequals: "=="\n\ngreater_than: ">"\n\nless_than: "<"\n\nin: "in"\n\nword: /[a-zA-Z!@#$%^&*()_+]+/\n\nnumber: /[0-9\\.]+/\n\n%ignore " "\n'
- annotate(annotatable: Annotatable | None, context: dict[str, Any]) dict[str, Any][source]
Produce annotation attributes for an annotatable.
- get_all_attribute_descriptions() dict[str, AttributeDesc][source]
Get descriptions of all attributes provided by the annotator.
- gain.annotation.cnv_collection_annotator.build_cnv_collection_annotator(pipeline: AnnotationPipeline, info: AnnotatorInfo) Annotator[source]
gain.annotation.debug_annotator module
- class gain.annotation.debug_annotator.HelloWorldAnnotator(pipeline: AnnotationPipeline, info: AnnotatorInfo)[source]
Bases:
AnnotatorDefines example annotator.
- annotate(annotatable: Annotatable | None, context: dict[str, Any]) dict[str, Any][source]
Produce annotation attributes for an annotatable.
- get_all_attribute_descriptions() dict[str, AttributeDesc][source]
Get descriptions of all attributes provided by the annotator.
- gain.annotation.debug_annotator.build_annotator(pipeline: AnnotationPipeline, info: AnnotatorInfo) Annotator[source]
Create an example hello world annotator.
gain.annotation.docker_annotator module
- class gain.annotation.docker_annotator.DockerAnnotator(pipeline: AnnotationPipeline | None, info: AnnotatorInfo)[source]
Bases:
AnnotatorBaseBase class for annotators that use docker containers.
gain.annotation.effect_annotator module
- class gain.annotation.effect_annotator.EffectAnnotatorAdapter(pipeline: AnnotationPipeline, info: AnnotatorInfo)[source]
Bases:
AnnotatorBaseAdapts effect annotator to be used in annotation infrastructure.
- annotate(annotatable: Annotatable | None, context: dict[str, Any]) dict[str, Any][source]
Produce annotation attributes for an annotatable.
- get_all_attribute_descriptions() dict[str, AttributeDesc][source]
Get descriptions of all attributes provided by the annotator.
- gain.annotation.effect_annotator.build_effect_annotator(pipeline: AnnotationPipeline, info: AnnotatorInfo) Annotator[source]
gain.annotation.gene_score_annotator module
Module containing the gene score annotator.
- class gain.annotation.gene_score_annotator.GeneScoreAnnotator(pipeline: AnnotationPipeline | None, info: AnnotatorInfo, gene_score_resource: GenomicResource, input_gene_list: str)[source]
Bases:
AnnotatorGene score annotator class.
- DEFAULT_AGGREGATOR_TYPE = 'dict'
- aggregate_gene_values(score_id: str, gene_symbols: list[str], aggregator_type: str) Any[source]
Aggregate gene score values.
- annotate(annotatable: Annotatable | None, context: dict[str, Any]) dict[str, Any][source]
Produce annotation attributes for an annotatable.
- get_all_attribute_descriptions() dict[str, AttributeDesc][source]
Get descriptions of all attributes provided by the annotator.
- property used_context_attributes: tuple[str, ...]
- gain.annotation.gene_score_annotator.build_gene_score_annotator(pipeline: AnnotationPipeline, info: AnnotatorInfo) Annotator[source]
Create a gene score annotator.
gain.annotation.gene_set_annotator module
- class gain.annotation.gene_set_annotator.GeneSetAnnotator(pipeline: AnnotationPipeline | None, info: AnnotatorInfo, gene_set_resource: GenomicResource, input_gene_list: str)[source]
Bases:
AnnotatorBaseGene set annotator class.
- get_all_attribute_descriptions() dict[str, AttributeDesc][source]
Get descriptions of all attributes provided by the annotator.
- property used_context_attributes: tuple[str, ...]
- gain.annotation.gene_set_annotator.build_gene_set_annotator(pipeline: AnnotationPipeline, info: AnnotatorInfo) Annotator[source]
Create a gene set annotator.
gain.annotation.liftover_annotator module
Provides a lift over annotator and helpers.
- class gain.annotation.liftover_annotator.AbstractLiftoverAnnotator(pipeline: AnnotationPipeline, info: AnnotatorInfo, chain: LiftoverChain, source_genome: ReferenceGenome, target_genome: ReferenceGenome)[source]
Bases:
AnnotatorBaseLiftovver annotator class.
- get_all_attribute_descriptions() dict[str, AttributeDesc][source]
Get descriptions of all attributes provided by the annotator.
- liftover_cnv(cnv_allele: Annotatable) Annotatable | None[source]
Liftover CNV allele annotatable.
- liftover_position(position: Annotatable) Annotatable | None[source]
Liftover position annotatable.
- liftover_region(region: Annotatable) Annotatable | None[source]
Liftover region annotatable.
- class gain.annotation.liftover_annotator.BasicLiftoverAnnotator(pipeline: AnnotationPipeline, info: AnnotatorInfo, chain: LiftoverChain, source_genome: ReferenceGenome, target_genome: ReferenceGenome)[source]
Bases:
AbstractLiftoverAnnotatorBasic liftover annotator class.
- class gain.annotation.liftover_annotator.BcfLiftoverAnnotator(pipeline: AnnotationPipeline, info: AnnotatorInfo, chain: LiftoverChain, source_genome: ReferenceGenome, target_genome: ReferenceGenome)[source]
Bases:
AbstractLiftoverAnnotatorBCF tools liftover re-implementation annotator class.
- class gain.annotation.liftover_annotator.LiftoverFunction(*args, **kwargs)[source]
Bases:
ProtocolProtocol for liftover function.
- gain.annotation.liftover_annotator.basic_liftover_allele(chrom: str, pos: int, ref: str, alt: str, liftover_chain: LiftoverChain, *, source_genome: ReferenceGenome, target_genome: ReferenceGenome) tuple[str, int, str, str] | None[source]
Basic liftover an allele.
- gain.annotation.liftover_annotator.basic_liftover_variant(chrom: str, pos: int, ref: str, alts: list[str], liftover_chain: LiftoverChain, *, source_genome: ReferenceGenome, target_genome: ReferenceGenome) tuple[str, int, str, list[str]] | None[source]
Basic liftover variant utility function.
- gain.annotation.liftover_annotator.bcf_liftover_allele(chrom: str, pos: int, ref: str, alt: str, liftover_chain: LiftoverChain, *, source_genome: ReferenceGenome, target_genome: ReferenceGenome) tuple[str, int, str, str] | None[source]
Liftover a variant.
- gain.annotation.liftover_annotator.bcf_liftover_variant(chrom: str, pos: int, ref: str, alts: list[str], liftover_chain: LiftoverChain, *, source_genome: ReferenceGenome, target_genome: ReferenceGenome) tuple[str, int, str, list[str]] | None[source]
BCF liftover variant utility function.
- gain.annotation.liftover_annotator.build_liftover_annotator(pipeline: AnnotationPipeline, info: AnnotatorInfo) Annotator[source]
Create a liftover annotator.
gain.annotation.normalize_allele_annotator module
Provides normalize allele annotator and helpers.
- class gain.annotation.normalize_allele_annotator.NormalizeAlleleAnnotator(pipeline: AnnotationPipeline, info: AnnotatorInfo)[source]
Bases:
AnnotatorBaseAnnotator to normalize VCF alleles.
- get_all_attribute_descriptions() dict[str, AttributeDesc][source]
Get descriptions of all attributes provided by the annotator.
- gain.annotation.normalize_allele_annotator.build_normalize_allele_annotator(pipeline: AnnotationPipeline, info: AnnotatorInfo) Annotator[source]
- gain.annotation.normalize_allele_annotator.normalize_allele(allele: VCFAllele, genome: ReferenceGenome) VCFAllele[source]
Normalize an allele.
Using algorithm defined in following https://genome.sph.umich.edu/wiki/Variant_Normalization
gain.annotation.processing_pipeline module
- class gain.annotation.processing_pipeline.Annotation(annotatable: ~gain.annotation.annotatable.Annotatable | None, context: dict[str, ~typing.Any] = <factory>)[source]
Bases:
objectA pair of an annotatable and its relevant context.
The context can hold any key/value pair relevant to the annotatable and is typically used to store the results of annotators.
- annotatable: Annotatable | None
- context: dict[str, Any]
- class gain.annotation.processing_pipeline.AnnotationPipelineAnnotatablesBatchFilter(annotation_pipeline: AnnotationPipeline)[source]
Bases:
AnnotationsWithSourceBatchFilter,AnnotationPipelineContextManagerFilter that annotates an AnnotationWithSource batch using a pipeline.
- class gain.annotation.processing_pipeline.AnnotationPipelineAnnotatablesFilter(annotation_pipeline: AnnotationPipeline)[source]
Bases:
AnnotationsWithSourceFilter,AnnotationPipelineContextManagerFilter that annotates an AnnotationWithSource object using a pipeline.
- class gain.annotation.processing_pipeline.AnnotationPipelineContextManager(annotation_pipeline: AnnotationPipeline)[source]
Bases:
AbstractContextManagerA context manager for annotation pipelines.
- class gain.annotation.processing_pipeline.AnnotationsWithSource(source: Any, annotations: list[Annotation])[source]
Bases:
objectA pair of a list of Annotation instances and their source.
The source is typically a variant read from some format, with the ‘annotations’ attribute corresponding to its alleles.
- annotations: list[Annotation]
- source: Any
- class gain.annotation.processing_pipeline.AnnotationsWithSourceBatchFilter[source]
Bases:
FilterBase class for filters that work on AnnotationsWithSource batches.
- filter(data: Sequence[AnnotationsWithSource]) Sequence[AnnotationsWithSource][source]
Filter a batch of AnnotationsWithSource objects.
- class gain.annotation.processing_pipeline.AnnotationsWithSourceFilter[source]
Bases:
FilterBase class for filters that work on AnnotationsWithSource objects.
- filter(data: AnnotationsWithSource) AnnotationsWithSource[source]
Filter a single AnnotationsWithSource object.
- class gain.annotation.processing_pipeline.DeleteAttributesFromAWSBatchFilter(attributes_to_remove: Sequence[str])[source]
Bases:
FilterFilter to remove items from AWS batches. Works in-place.
- filter(data: Sequence[AnnotationsWithSource]) Sequence[AnnotationsWithSource][source]
- class gain.annotation.processing_pipeline.DeleteAttributesFromAWSFilter(attributes_to_remove: Sequence[str])[source]
Bases:
FilterFilter to remove items from AWSs. Works in-place.
- filter(data: AnnotationsWithSource) AnnotationsWithSource[source]
gain.annotation.record_to_annotatable module
- class gain.annotation.record_to_annotatable.CSHLAlleleRecordToAnnotatable(columns: tuple, ref_genome: ReferenceGenome | None)[source]
Bases:
RecordToAnnotableTransform a CSHL variant record into a VCF allele annotatable.
- build(record: dict[str, str]) Annotatable[source]
Constructs an annotatable from a record.
- class gain.annotation.record_to_annotatable.DaeAlleleRecordToAnnotatable(columns: tuple, ref_genome: ReferenceGenome | None)[source]
Bases:
RecordToAnnotableTransform a CSHL variant record into a VCF allele annotatable.
- build(record: dict[str, str]) Annotatable[source]
Constructs an annotatable from a record.
- class gain.annotation.record_to_annotatable.RecordToAnnotable(columns: tuple, ref_genome: ReferenceGenome | None)[source]
Bases:
ABCBase class for record to annotable transformation.
- abstractmethod build(record: dict[str, str]) Annotatable[source]
Constructs an annotatable from a record.
- class gain.annotation.record_to_annotatable.RecordToCNVAllele(columns: tuple, ref_genome: ReferenceGenome | None)[source]
Bases:
RecordToAnnotableTransform a columns record into a CNV allele annotatable.
- build(record: dict[str, str]) Annotatable[source]
Constructs an annotatable from a record.
- class gain.annotation.record_to_annotatable.RecordToPosition(columns: tuple, ref_genome: ReferenceGenome | None)[source]
Bases:
RecordToAnnotable- build(record: dict[str, str]) Annotatable[source]
Constructs an annotatable from a record.
- class gain.annotation.record_to_annotatable.RecordToRegion(columns: tuple, ref_genome: ReferenceGenome | None)[source]
Bases:
RecordToAnnotable- build(record: dict[str, str]) Annotatable[source]
Constructs an annotatable from a record.
- class gain.annotation.record_to_annotatable.RecordToVcfAllele(columns: tuple, ref_genome: ReferenceGenome | None)[source]
Bases:
RecordToAnnotable- build(record: dict[str, str]) Annotatable[source]
Constructs an annotatable from a record.
- class gain.annotation.record_to_annotatable.VcfLikeRecordToVcfAllele(columns: tuple, ref_genome: ReferenceGenome | None)[source]
Bases:
RecordToAnnotableTransform a columns record into VCF allele annotatable.
- build(record: dict[str, str]) Annotatable[source]
Constructs an annotatable from a record.
- gain.annotation.record_to_annotatable.add_record_to_annotable_arguments(parser: ArgumentParser) None[source]
- gain.annotation.record_to_annotatable.build_annotatable_from_dict(obj: dict[str, str], ref_genome: ReferenceGenome | None = None) Annotatable[source]
Build an annotatable from a dictionary of string values.
- gain.annotation.record_to_annotatable.build_record_to_annotatable(renamed_columns: dict[str, str], available_columns: set[str], ref_genome: ReferenceGenome | None = None) RecordToAnnotable[source]
Transform a variant record into an annotatable.
Parameters
- renamed_columnsdict[str, str]
Mapping from expected internal column identifiers (e.g. “col_<field>”) to the actual column names present in the input source. A column can be excluded from usage if an identifier is mapped to “-“. Example rename:
“col_<field>”: “<input source column name for the field>”
- Example exclude:
“col_<field>”: “-”
- available_columnsset[str]
The set of column names available in the input records.
- ref_genomeReferenceGenome | None, optional
Optional reference genome context used for creating annotatables. Not all annotatables require it.
gain.annotation.score_annotator module
This contains the implementation of the three score annotators.
Genomic score annotators defined are positions_score, np_score, and allele_score.
- class gain.annotation.score_annotator.AlleleScoreAnnotator(pipeline: AnnotationPipeline, info: AnnotatorInfo)[source]
Bases:
GenomicScoreAnnotatorBaseThis class implements allele_score annotator.
- annotate(annotatable: Annotatable | None, context: dict[str, Any]) dict[str, Any][source]
Produce annotation attributes for an annotatable.
- build_score_aggregator_documentation(attr_info: AttributeInfo) list[str][source]
Collect score aggregator documentation.
- class gain.annotation.score_annotator.GenomicScoreAnnotatorBase(pipeline: AnnotationPipeline, info: AnnotatorInfo, score: GenomicScore)[source]
Bases:
AnnotatorGenomic score base annotator.
- GENOMIC_SCORE_HELP = '\n\n<div class="score-description">\n\n## {{ data.name }}\n\n{{ data.description}}\n\n{{ data.resource_summary }}\n\n{{ data.histogram }}\n\nGenomic resource:\n<a href={{data.resource_url}} target="_blank">{{ data.resource_id }}</a>\n\n<details>\n\n<summary class="details">\n\n#### Details\n\n</summary>\n\n<div class="details-body">\n\n##### Attribute properties:\n\n* **source**: {{ data.source }}\n{% for aggregator in data.aggregators %}\n\n* {{ aggregator }}\n\n{% endfor %}\n\n\n##### Resource properties:\n\n* **resource_type**: `{{ data.resource_type }}`\n\n\n##### Annotator documentation:\n\n* **annotator_type**: `{{ data.annotator_type }}`\n\n{{ data.annotator_doc }}\n\n</div>\n\n</details>\n\n</div>\n\n'
- SCORE_HISTOGRAM = '\n<div class="modal-histogram">\n\n<div class="histogram-image">\n\n\n\n</div>\n\n</div>\n'
- add_score_aggregator_documentation(attribute_info: AttributeInfo, aggregator: str, attribute_conf_agg: str | None) None[source]
Collect score aggregator documentation.
- build_attribute_help(attr_info: AttributeInfo) str[source]
Build attribute help.
- abstractmethod build_score_aggregator_documentation(attr_info: AttributeInfo) list[str][source]
Construct score aggregator documentation.
- get_all_attribute_descriptions() dict[str, AttributeDesc][source]
Get descriptions of all attributes provided by the annotator.
- class gain.annotation.score_annotator.PositionScoreAnnotator(pipeline: AnnotationPipeline, info: AnnotatorInfo)[source]
Bases:
GenomicScoreAnnotatorBaseThis class implements the position_score annotator.
The position_score annotator requires the resrouce_id parameter, whose value must be an id of a genomic resource of type position_score.
The position_score resource provides a set of scores (see …) that the position_score annotator uses as attributes to assign to the annotatable.
The position_score annotator recognized one attribute level parameter called position_aggregator that controls how the position scores are aggregator for annotates that ref to a region of the reference genome.
- annotate(annotatable: Annotatable | None, context: dict[str, Any]) dict[str, Any][source]
Produce annotation attributes for an annotatable.
- build_score_aggregator_documentation(attr_info: AttributeInfo) list[str][source]
Collect score aggregator documentation.
- gain.annotation.score_annotator.build_allele_score_annotator(pipeline: AnnotationPipeline, info: AnnotatorInfo) Annotator[source]
- gain.annotation.score_annotator.build_np_score_annotator(pipeline: AnnotationPipeline, info: AnnotatorInfo) Annotator[source]
- gain.annotation.score_annotator.build_position_score_annotator(pipeline: AnnotationPipeline, info: AnnotatorInfo) Annotator[source]
- gain.annotation.score_annotator.get_genomic_resource(pipeline: AnnotationPipeline, info: AnnotatorInfo, resource_types: set[str]) GenomicResource[source]
Return genomic score resource used for given genomic score annotator.
gain.annotation.simple_effect_annotator module
- class gain.annotation.simple_effect_annotator.SimpleEffect(effect_type: str, transcript_id: str, gene: str)[source]
Bases:
object- effect_type: str
- gene: str
- transcript_id: str
- class gain.annotation.simple_effect_annotator.SimpleEffectAnnotator(pipeline: AnnotationPipeline, info: AnnotatorInfo)[source]
Bases:
AnnotatorBaseSimple effect annotator class.
- annotate(annotatable: Annotatable | None, context: dict[str, Any]) dict[str, Any][source]
Produce annotation attributes for an annotatable.
- call_region(chrom: str, beg: int, end: int, tx: TranscriptModel, *, func_name: str, classification: str) SimpleEffect | None[source]
Call a region with a specific classification.
- cds_intron_regions(transcript: TranscriptModel) list[Region][source]
Return whether region is CDS intron.
- cds_regions(transcript: TranscriptModel) Sequence[Region][source]
Return whether the region is classified as coding.
- get_all_attribute_descriptions() dict[str, AttributeDesc][source]
Get descriptions of all attributes provided by the annotator.
- noncoding_regions(transcript: TranscriptModel) list[Region][source]
Return whether the region is noncoding.
- peripheral_regions(transcript: TranscriptModel) list[Region][source]
Return whether the region is peripheral.
- run_annotate(chrom: str, beg: int, end: int) dict[str, set[SimpleEffect]][source]
Return classification with a set of affected genes.
- gain.annotation.simple_effect_annotator.build_simple_effect_annotator(pipeline: AnnotationPipeline, info: AnnotatorInfo) Annotator[source]
gain.annotation.utils module
- gain.annotation.utils.find_annotator_gene_models(info: AnnotatorInfo, grr: GenomicResourceRepo) GeneModels[source]
Get gene models from the annotator info or genomic context.
- gain.annotation.utils.find_annotator_reference_genome(info: AnnotatorInfo, gene_models: GeneModels, pipeline: AnnotationPipeline, grr: GenomicResourceRepo) ReferenceGenome[source]
Get reference genome from the annotator info or genomic context.