Skip to content

Commit

Permalink
formatted backend files
Browse files Browse the repository at this point in the history
  • Loading branch information
fatimarabab committed Sep 9, 2024
1 parent a73bbac commit 4e4ab98
Show file tree
Hide file tree
Showing 10 changed files with 51 additions and 52 deletions.
13 changes: 10 additions & 3 deletions backend/src/core/annotation.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,10 @@ def queue_annotation_tasks(self, analysis: Analysis, annotation_task_queue: Anno
annotation_task_queue.put(annotation_unit_queued)

@staticmethod
def process_tasks(annotation_queue: AnnotationQueue, analysis_name: str, genomic_unit_collection: GenomicUnitCollection, analysis_collection: AnalysisCollection): # pylint: disable=too-many-branches
def process_tasks(
annotation_queue: AnnotationQueue, analysis_name: str, genomic_unit_collection: GenomicUnitCollection,
analysis_collection: AnalysisCollection
): # pylint: disable=too-many-branches
"""Processes items that have been added to the queue"""
logger.info("%s Processing annotation tasks queue ...", annotation_log_label())

Expand All @@ -108,8 +111,12 @@ def process_tasks(annotation_queue: AnnotationQueue, analysis_name: str, genomic
missing_dependencies = annotation_unit.get_missing_dependencies()
for missing_dataset_name in missing_dependencies:
# missing_dataset_name
dependency_dataset = analysis_collection.get_manifest_dataset_config(analysis_name, missing_dataset_name)
dependency_annotation_unit = AnnotationUnit(annotation_unit.genomic_unit, dependency_dataset)
dependency_dataset = analysis_collection.get_manifest_dataset_config(
analysis_name, missing_dataset_name
)
dependency_annotation_unit = AnnotationUnit(
annotation_unit.genomic_unit, dependency_dataset
)
annotation_value = genomic_unit_collection.find_genomic_unit_annotation_value(
dependency_annotation_unit
)
Expand Down
12 changes: 3 additions & 9 deletions backend/src/core/annotation_task.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,7 @@ def extract_version(self, incomming_version_json):
try:
jq_results = self.__json_extract__(jq_query, incomming_version_json)
except ValueError as value_error:
logger.info((
'Failed to extract ', value_error
))
logger.info(('Failed to extract ', value_error))
jq_result = next(jq_results, None)

return jq_result
Expand Down Expand Up @@ -255,19 +253,15 @@ def get_annotation_version_from_rosalution(self):
"""Gets version for rosalution type and returns the version data"""
version_from_rosalution = "rosalution-temp-manifest-00"

version = {
"rosalution": "rosalution-temp-manifest-00"
}
version = {"rosalution": "rosalution-temp-manifest-00"}
return version

def get_annotation_version_from_date(self):
"""Gets version for date type and returns the version data"""
version_from_date = "rosalution-temp-manifest-00"
# getting version from date

version = {
"date": "rosalution-temp-manifest-00"
}
version = {"date": "rosalution-temp-manifest-00"}
return version_from_date


Expand Down
10 changes: 3 additions & 7 deletions backend/src/core/dataset_manifest.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@


class DatasetManifest:
"""a helper to streamline getting the config for a dataset"""

def __init__(self, manifest):
self.manifest = manifest
"""a helper to streamline getting the config for a dataset"""


def __init__(self, manifest):
self.manifest = manifest
3 changes: 1 addition & 2 deletions backend/src/models/analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,7 @@ class Analysis(BaseAnalysis):
sections: List[Section] = []
discussions: List = []
supporting_evidence_files: List = []
manifest: List = [
]
manifest: List = []

def units_to_annotate(self):
"""Returns the types of genomic units within the analysis"""
Expand Down
22 changes: 8 additions & 14 deletions backend/src/repository/analysis_collection.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,34 +136,28 @@ def add_dataset_to_manifest(self, analysis_name: str, annotation_unit: Annotatio
"""Adds this dataset and its version to this Analysis."""

dataset = {
annotation_unit.get_dataset_name(): {
annotation_unit.get_dataset_source(),
annotation_unit.get_version()
}
annotation_unit.get_dataset_name(): {annotation_unit.get_dataset_source(),
annotation_unit.get_version()}
}

updated_document = self.collection.find_one_and_update({"name": analysis_name},
{"$push": {"manifest": dataset}},
return_document=ReturnDocument.AFTER)

return updated_document['manifest']

def get_manifest_dataset_config(self, analysis_name: str, dataset_name: str):
dataset_attribute = f"manifest.{dataset_name}"
result = self.collection.find_one({
"name": analysis_name,
dataset_attribute : {'$exists': True }
})
result = self.collection.find_one({"name": analysis_name, dataset_attribute: {'$exists': True}})

if not result:
return None

return {
"data_set": dataset_name,
"data_source": result[dataset_name]['data_source'],
"data_set": dataset_name, "data_source": result[dataset_name]['data_source'],
"version": result[dataset_name]['version']
}

def get_dataset_manifest(self, analysis_name):
analysis = self.find_by_name(analysis_name)
if analysis is None:
Expand Down
4 changes: 2 additions & 2 deletions backend/src/repository/genomic_unit_collection.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ def annotation_exist(self, annotation_unit: AnnotationUnit):
data_set_name = annotation_unit.get_dataset_name()
dataset_version = annotation_unit.get_version()
dataset_source = annotation_unit.get_dataset_source()

find_query = self.__find_genomic_unit_query__(annotation_unit)

if annotation_unit.is_transcript_dataset():
Expand Down Expand Up @@ -111,7 +111,7 @@ def find_genomic_unit_annotation_value(self, annotation_unit: AnnotationUnit):

if result is None:
return None

if dataset_name == "HPO_NCBI_GENE_ID" and annotation_unit.get_genomic_unit() == "DLG4":
logger.info("\n\n\n")
logger.info(f"{result}")
Expand Down
5 changes: 4 additions & 1 deletion backend/src/routers/analysis_router.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,10 @@ async def create_file(
analysis = Analysis(**new_analysis)
annotation_service = AnnotationService(repositories["annotation_config"])
annotation_service.queue_annotation_tasks(analysis, annotation_task_queue)
background_tasks.add_task(AnnotationService.process_tasks, annotation_task_queue, analysis.name, repositories['genomic_unit'], repositories["analysis"])
background_tasks.add_task(
AnnotationService.process_tasks, annotation_task_queue, analysis.name, repositories['genomic_unit'],
repositories["analysis"]
)

return new_analysis

Expand Down
5 changes: 3 additions & 2 deletions backend/src/routers/annotation_router.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,9 @@ def get_annotations_by_hgvs_variant(variant: str, analysis_name: str, repositori
if dataset_config is None:
continue
"annotation[dataset][0]['value']"
found_dataset = next((by_version for by_version in annotation[dataset] if by_version in dataset_manifest), None)
annotations[dataset] =
found_dataset = next((by_version for by_version in annotation[dataset] if by_version in dataset_manifest),
None)
# annotations[dataset] =

transcript_annotation_list = []
for transcript_annotation in queried_genomic_unit['transcripts']:
Expand Down
15 changes: 7 additions & 8 deletions backend/tests/unit/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,29 +115,28 @@ def fixture_annotation_config_collection(annotation_config_collection_json):
mock_collection.find_one = Mock(return_value=read_test_fixture("annotations-config.json"))
return AnnotationConfigCollection(mock_collection)


@pytest.fixture(name='get_dataset_manifest_config')
def get_dataset_manifest_config(analysis_collection_json):
"""Fixture factory method to create an dataset from the genomic unit information and name of the datset."""

def _create_dataset_manifest(analysis_name, dataset_name):
"""Method to create the dataset manifest config"""

analysis_json = next((item for item in analysis_collection_json if item['name'] == analysis_name),
None)
analysis_json = next((item for item in analysis_collection_json if item['name'] == analysis_name), None)
analysis = Analysis(**analysis_json)
dataset_manifest = next((item for item in analysis.manifest if dataset_name in item),
None)

dataset_manifest = next((item for item in analysis.manifest if dataset_name in item), None)

dataset_config = {
"data_set": dataset_name,
"data_source": dataset_manifest[dataset_name]['data_source'],
"data_set": dataset_name, "data_source": dataset_manifest[dataset_name]['data_source'],
"version": dataset_manifest[dataset_name]['version']
}

return dataset_config

return _create_dataset_manifest


@pytest.fixture(name='get_annotation_unit')
def get_standard_annotation_unit(annotation_config_collection_json):
"""Fixture factory method to create an AnnotationUnit from the genomic unit information and name of the datset."""
Expand Down
14 changes: 10 additions & 4 deletions backend/tests/unit/core/test_annotate.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,14 @@ def fixture_extract_and_annotate_cpam0002(cpam0002_annotation_queue, get_dataset
mock_genomic_unit_collection.find_genomic_unit_annotation_value.side_effect = (
skip_depends.skip_hgncid_get_value_first_time_mock
)
mock_analysis_collection.get_manifest_dataset_config.return_value = get_dataset_manifest_config("CPAM0002",'HGNC_ID')
mock_analysis_collection.get_manifest_dataset_config.return_value = get_dataset_manifest_config(
"CPAM0002", 'HGNC_ID'
)
mock_genomic_unit_collection.annotation_exist.return_value = False

AnnotationService.process_tasks(cpam0002_annotation_queue, "CPAM0002", mock_genomic_unit_collection,mock_analysis_collection)
AnnotationService.process_tasks(
cpam0002_annotation_queue, "CPAM0002", mock_genomic_unit_collection, mock_analysis_collection
)
yield {
'extract': extract_task_annotate, 'version': version_task_annotate, 'http': http_task_annotate,
'none': none_task_annotate, 'forge': forge_task_annotate,
Expand Down Expand Up @@ -162,11 +166,13 @@ def fixture_extract_and_annotate_cpam0046(cpam0046_annotation_queue, get_dataset
mock_genomic_unit_collection.find_genomic_unit_annotation_value.side_effect = (
skip_depends.skip_hgncid_get_value_first_time_mock
)
dependency_dataset = get_dataset_manifest_config("CPAM0046", 'HGNC_ID')
dependency_dataset = get_dataset_manifest_config("CPAM0046", 'HGNC_ID')
mock_analysis_collection.get_manifest_dataset_config.return_value = dependency_dataset
mock_genomic_unit_collection.annotation_exist.return_value = False

AnnotationService.process_tasks(cpam0046_annotation_queue, "CPAM0046", mock_genomic_unit_collection, mock_analysis_collection)
AnnotationService.process_tasks(
cpam0046_annotation_queue, "CPAM0046", mock_genomic_unit_collection, mock_analysis_collection
)
yield {
'extract': extract_task_annotate, 'version': version_task_annotate, 'http': http_task_annotate,
'none': none_task_annotate, 'forge': forge_task_annotate,
Expand Down

0 comments on commit 4e4ab98

Please sign in to comment.