Skip to content

Commit ccbe20f

Browse files
committed
Add worker tests for multi-target scoresets
1 parent deabbc2 commit ccbe20f

File tree

5 files changed

+262
-15
lines changed

5 files changed

+262
-15
lines changed

tests/helpers/constants.py

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -773,6 +773,147 @@
773773
"officialCollections": [],
774774
}
775775

776+
TEST_MINIMAL_MULTI_TARGET_SCORESET = {
777+
"title": "Test Multi Target Score Set Title",
778+
"shortDescription": "Test multi target score set",
779+
"abstractText": "Abstract",
780+
"methodText": "Methods",
781+
"licenseId": 1,
782+
"targetGenes": [
783+
{
784+
"name": "TEST3",
785+
"category": "protein_coding",
786+
"externalIdentifiers": [],
787+
"targetSequence": {
788+
"sequenceType": "dna",
789+
"sequence": "ACGTTT",
790+
"label": "TEST3",
791+
"taxonomy": {
792+
"taxId": TEST_TAXONOMY["tax_id"],
793+
"organismName": TEST_TAXONOMY["organism_name"],
794+
"commonName": TEST_TAXONOMY["common_name"],
795+
"rank": TEST_TAXONOMY["rank"],
796+
"hasDescribedSpeciesName": TEST_TAXONOMY["has_described_species_name"],
797+
"articleReference": TEST_TAXONOMY["article_reference"],
798+
"id": TEST_TAXONOMY["id"],
799+
"url": TEST_TAXONOMY["url"],
800+
},
801+
},
802+
},
803+
{
804+
"name": "TEST4",
805+
"category": "protein_coding",
806+
"externalIdentifiers": [],
807+
"targetSequence": {
808+
"sequenceType": "dna",
809+
"sequence": "TAATGCC",
810+
"label": "TEST4",
811+
"taxonomy": {
812+
"taxId": TEST_TAXONOMY["tax_id"],
813+
"organismName": TEST_TAXONOMY["organism_name"],
814+
"commonName": TEST_TAXONOMY["common_name"],
815+
"rank": TEST_TAXONOMY["rank"],
816+
"hasDescribedSpeciesName": TEST_TAXONOMY["has_described_species_name"],
817+
"articleReference": TEST_TAXONOMY["article_reference"],
818+
"id": TEST_TAXONOMY["id"],
819+
"url": TEST_TAXONOMY["url"],
820+
},
821+
},
822+
},
823+
],
824+
}
825+
826+
TEST_MINIMAL_MULTI_TARGET_SCORESET_RESPONSE = {
827+
"recordType": "ScoreSet",
828+
"title": "Test Multi Target Score Set Title",
829+
"shortDescription": "Test multi target score set",
830+
"abstractText": "Abstract",
831+
"methodText": "Methods",
832+
"createdBy": {
833+
"recordType": "User",
834+
"firstName": TEST_USER["first_name"],
835+
"lastName": TEST_USER["last_name"],
836+
"orcidId": TEST_USER["username"],
837+
},
838+
"modifiedBy": {
839+
"recordType": "User",
840+
"firstName": TEST_USER["first_name"],
841+
"lastName": TEST_USER["last_name"],
842+
"orcidId": TEST_USER["username"],
843+
},
844+
"creationDate": date.today().isoformat(),
845+
"modificationDate": date.today().isoformat(),
846+
"license": {
847+
"recordType": "ShortLicense",
848+
**{camelize(k): v for k, v in TEST_LICENSE.items() if k not in ("text",)},
849+
},
850+
"numVariants": 0,
851+
"targetGenes": [
852+
{
853+
"recordType": "TargetGene",
854+
"name": "TEST3",
855+
"category": "protein_coding",
856+
"externalIdentifiers": [],
857+
"id": 1,
858+
"targetSequence": {
859+
"recordType": "TargetSequence",
860+
"sequenceType": "dna",
861+
"sequence": "ACGTTT",
862+
"label": "TEST3",
863+
"taxonomy": {
864+
"recordType": "Taxonomy",
865+
"taxId": TEST_TAXONOMY["tax_id"],
866+
"organismName": TEST_TAXONOMY["organism_name"],
867+
"commonName": TEST_TAXONOMY["common_name"],
868+
"rank": TEST_TAXONOMY["rank"],
869+
"hasDescribedSpeciesName": TEST_TAXONOMY["has_described_species_name"],
870+
"articleReference": TEST_TAXONOMY["article_reference"],
871+
"id": TEST_TAXONOMY["id"],
872+
"url": TEST_TAXONOMY["url"],
873+
},
874+
},
875+
},
876+
{
877+
"recordType": "TargetGene",
878+
"name": "TEST4",
879+
"category": "protein_coding",
880+
"externalIdentifiers": [],
881+
"id": 1,
882+
"targetSequence": {
883+
"recordType": "TargetSequence",
884+
"sequenceType": "dna",
885+
"sequence": "TAATGCC",
886+
"label": "TEST4",
887+
"taxonomy": {
888+
"recordType": "Taxonomy",
889+
"taxId": TEST_TAXONOMY["tax_id"],
890+
"organismName": TEST_TAXONOMY["organism_name"],
891+
"commonName": TEST_TAXONOMY["common_name"],
892+
"rank": TEST_TAXONOMY["rank"],
893+
"hasDescribedSpeciesName": TEST_TAXONOMY["has_described_species_name"],
894+
"articleReference": TEST_TAXONOMY["article_reference"],
895+
"id": TEST_TAXONOMY["id"],
896+
"url": TEST_TAXONOMY["url"],
897+
},
898+
},
899+
},
900+
],
901+
"metaAnalyzesScoreSetUrns": [],
902+
"metaAnalyzedByScoreSetUrns": [],
903+
"contributors": [],
904+
"doiIdentifiers": [],
905+
"primaryPublicationIdentifiers": [],
906+
"secondaryPublicationIdentifiers": [],
907+
"datasetColumns": {},
908+
"externalLinks": {},
909+
"private": True,
910+
"experiment": TEST_MINIMAL_EXPERIMENT_RESPONSE,
911+
# keys to be set after receiving response
912+
"urn": None,
913+
"processingState": ProcessingState.incomplete.name,
914+
"officialCollections": [],
915+
}
916+
776917
TEST_NT_CDOT_TRANSCRIPT = {
777918
"start_codon": 0,
778919
"stop_codon": 18,
@@ -880,6 +1021,43 @@
8801021
"mapped_date_utc": datetime.isoformat(datetime.now()),
8811022
}
8821023

1024+
TEST_MULTI_TARGET_SCORESET_VARIANT_MAPPING_SCAFFOLD = {
1025+
"metadata": {},
1026+
"reference_sequences": {
1027+
"TEST3": {
1028+
"g": {
1029+
"computed_reference_sequence": {
1030+
"sequence_type": "dna",
1031+
"sequence_id": "ga4gh:SQ.ref_test3",
1032+
"sequence": "ACGTTT",
1033+
},
1034+
"mapped_reference_sequence": {
1035+
"sequence_type": "dna",
1036+
"sequence_id": "ga4gh:SQ.map_test",
1037+
"sequence_accessions": ["NC_000001.11"],
1038+
},
1039+
}
1040+
},
1041+
"TEST4": {
1042+
"g": {
1043+
"computed_reference_sequence": {
1044+
"sequence_type": "dna",
1045+
"sequence_id": "ga4gh:SQ.ref_test4",
1046+
"sequence": "TAATGCC",
1047+
},
1048+
"mapped_reference_sequence": {
1049+
"sequence_type": "dna",
1050+
"sequence_id": "ga4gh:SQ.map_test",
1051+
"sequence_accessions": ["NC_000001.11"],
1052+
},
1053+
}
1054+
},
1055+
},
1056+
"mapped_scores": [],
1057+
"vrs_version": "2.0",
1058+
"dcd_mapping_version": "pytest.0.0",
1059+
"mapped_date_utc": datetime.isoformat(datetime.now()),
1060+
}
8831061

8841062
TEST_MINIMAL_MAPPED_VARIANT = {
8851063
"pre_mapped": {},

tests/helpers/util/score_set.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from tests.helpers.constants import (
1717
TEST_MINIMAL_ACC_SCORESET,
1818
TEST_MINIMAL_SEQ_SCORESET,
19+
TEST_MINIMAL_MULTI_TARGET_SCORESET,
1920
TEST_NT_CDOT_TRANSCRIPT,
2021
TEST_VALID_POST_MAPPED_VRS_ALLELE_VRS2_X,
2122
TEST_VALID_POST_MAPPED_VRS_CIS_PHASED_BLOCK,
@@ -67,6 +68,24 @@ def create_acc_score_set(
6768
return response_data
6869

6970

71+
def create_multi_target_score_set(
72+
client: TestClient, experiment_urn: Optional[str], update: Optional[Dict[str, Any]] = None
73+
) -> Dict[str, Any]:
74+
score_set_payload = deepcopy(TEST_MINIMAL_MULTI_TARGET_SCORESET)
75+
if experiment_urn is not None:
76+
score_set_payload["experimentUrn"] = experiment_urn
77+
if update is not None:
78+
score_set_payload.update(update)
79+
jsonschema.validate(instance=score_set_payload, schema=ScoreSetCreate.schema())
80+
81+
response = client.post("/api/v1/score-sets/", json=score_set_payload)
82+
assert response.status_code == 200, "Could not create sequence based score set"
83+
84+
response_data = response.json()
85+
jsonschema.validate(instance=response_data, schema=ScoreSet.schema())
86+
return response_data
87+
88+
7089
def create_seq_score_set_with_mapped_variants(
7190
client, db, data_provider, experiment_urn, scores_csv_path, update=None, counts_csv_path=None
7291
):
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
hgvs_nt,c_0,c_1
2+
TEST3:n.1A>T,10,20
3+
TEST3:n.6T>A,90,2
4+
TEST4:n.2A>T,15,4
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
hgvs_nt,score
2+
TEST3:n.1A>T,0.3
3+
TEST3:n.6T>A,-1.65
4+
TEST4:n.2A>T,0.1

0 commit comments

Comments
 (0)