variation-normalizer 0.7.dev0__tar.gz → 0.7.0.dev5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. {variation-normalizer-0.7.dev0/variation_normalizer.egg-info → variation-normalizer-0.7.0.dev5}/PKG-INFO +8 -3
  2. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/README.md +4 -2
  3. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/setup.cfg +14 -10
  4. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/classifier_base.py +2 -4
  5. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/conftest.py +5 -4
  6. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/test_codon_table.py +1 -2
  7. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/test_gnomad_vcf_to_protein.py +7 -3
  8. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/test_hgvs_dup_del_mode.py +49 -56
  9. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/test_normalize.py +80 -2
  10. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/test_to_canonical_variation.py +17 -17
  11. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_coding_dna_deletion.py +1 -2
  12. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_coding_dna_delins.py +1 -2
  13. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_coding_dna_insertion.py +1 -2
  14. variation-normalizer-0.7.dev0/tests/tokenizers/test_gene.py → variation-normalizer-0.7.0.dev5/tests/tokenizers/test_gene_symbol.py +1 -1
  15. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_genomic_deletion.py +1 -2
  16. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_genomic_delins.py +1 -2
  17. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_genomic_insertion.py +1 -2
  18. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_polypeptide_truncation.py +1 -2
  19. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_protein_deletion.py +1 -2
  20. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_protein_delins.py +1 -2
  21. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_protein_insertion.py +1 -2
  22. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_protein_substitution.py +1 -2
  23. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_silent_mutation.py +1 -2
  24. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/translator_base.py +9 -11
  25. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/validator_base.py +9 -11
  26. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/__init__.py +1 -28
  27. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/data_sources/codon_table.py +6 -9
  28. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/gnomad_vcf_to_protein_variation.py +37 -28
  29. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/hgvs_dup_del_mode.py +6 -5
  30. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/main.py +3 -3
  31. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/normalize.py +4 -6
  32. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/query.py +44 -43
  33. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/schemas/hgvs_to_copy_number_schema.py +1 -1
  34. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/schemas/normalize_response_schema.py +1 -1
  35. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/schemas/service_schema.py +1 -1
  36. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/schemas/token_response_schema.py +10 -46
  37. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/to_canonical_variation.py +8 -11
  38. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/to_copy_number_variation.py +4 -4
  39. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/to_vrs.py +5 -7
  40. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/__init__.py +0 -2
  41. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/coding_dna_deletion.py +6 -2
  42. variation-normalizer-0.7.0.dev5/variation/tokenizers/deletion_base.py +69 -0
  43. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/delins_base.py +4 -13
  44. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/genomic_deletion.py +6 -2
  45. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/gnomad_vcf.py +3 -5
  46. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/hgvs.py +2 -4
  47. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/insertion_base.py +4 -13
  48. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/locus_reference_genomic.py +2 -2
  49. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/polypeptide_sequence_variation_base.py +15 -15
  50. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/polypeptide_truncation.py +3 -3
  51. variation-normalizer-0.7.0.dev5/variation/tokenizers/protein_deletion.py +105 -0
  52. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/protein_delins.py +5 -14
  53. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/protein_insertion.py +6 -14
  54. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/protein_substitution.py +6 -2
  55. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/silent_mutation.py +2 -2
  56. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/single_nucleotide_variation_base.py +5 -10
  57. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/tokenize.py +13 -17
  58. variation-normalizer-0.7.dev0/variation/tokenizers/tokenize_base.py → variation-normalizer-0.7.0.dev5/variation/tokenizers/tokenizer.py +34 -27
  59. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/utils.py +1 -1
  60. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/amplification.py +3 -2
  61. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/duplication_deletion_base.py +1 -1
  62. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/genomic_base.py +2 -2
  63. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/genomic_deletion_range.py +1 -1
  64. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/polypeptide_sequence_variation_base.py +3 -7
  65. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/protein_base.py +4 -8
  66. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/protein_deletion.py +16 -8
  67. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/protein_delins.py +3 -8
  68. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/protein_insertion.py +3 -6
  69. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/validate.py +7 -13
  70. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/validator.py +4 -4
  71. variation-normalizer-0.7.0.dev5/variation/version.py +1 -0
  72. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/vrs_representation.py +4 -7
  73. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5/variation_normalizer.egg-info}/PKG-INFO +8 -3
  74. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation_normalizer.egg-info/SOURCES.txt +1 -10
  75. variation-normalizer-0.7.0.dev5/variation_normalizer.egg-info/requires.txt +25 -0
  76. variation-normalizer-0.7.dev0/tests/tokenizers/test_gene_pair.py +0 -21
  77. variation-normalizer-0.7.dev0/variation/data/amino_acids.csv +0 -20
  78. variation-normalizer-0.7.dev0/variation/data/transcript_mapping.tsv +0 -256226
  79. variation-normalizer-0.7.dev0/variation/tokenizers/caches/__init__.py +0 -3
  80. variation-normalizer-0.7.dev0/variation/tokenizers/caches/amino_acid_cache.py +0 -43
  81. variation-normalizer-0.7.dev0/variation/tokenizers/caches/nucleotide_cache.py +0 -30
  82. variation-normalizer-0.7.dev0/variation/tokenizers/deletion_base.py +0 -100
  83. variation-normalizer-0.7.dev0/variation/tokenizers/gene_pair.py +0 -34
  84. variation-normalizer-0.7.dev0/variation/tokenizers/protein_alternate.py +0 -31
  85. variation-normalizer-0.7.dev0/variation/tokenizers/protein_deletion.py +0 -78
  86. variation-normalizer-0.7.dev0/variation/tokenizers/tokenizer.py +0 -14
  87. variation-normalizer-0.7.dev0/variation/version.py +0 -1
  88. variation-normalizer-0.7.dev0/variation_normalizer.egg-info/requires.txt +0 -16
  89. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/LICENSE +0 -0
  90. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/setup.py +0 -0
  91. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/__init__.py +0 -0
  92. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/__init__.py +0 -0
  93. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_amplification.py +0 -0
  94. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_coding_dna_deletion.py +0 -0
  95. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_coding_dna_delins.py +0 -0
  96. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_coding_dna_insertion.py +0 -0
  97. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_coding_dna_silent_mutation.py +0 -0
  98. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_coding_dna_substitution.py +0 -0
  99. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_genomic_deletion.py +0 -0
  100. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_genomic_deletion_range.py +0 -0
  101. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_genomic_delins.py +0 -0
  102. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_genomic_duplication.py +0 -0
  103. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_genomic_insertion.py +0 -0
  104. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_genomic_silent_mutation.py +0 -0
  105. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_genomic_substitution.py +0 -0
  106. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_genomic_uncertain_deletion.py +0 -0
  107. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_polypeptide_truncation.py +0 -0
  108. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_protein_deletion.py +0 -0
  109. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_protein_delins.py +0 -0
  110. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_protein_insertion.py +0 -0
  111. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_protein_substitution.py +0 -0
  112. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/classifiers/test_silent_mutation.py +0 -0
  113. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/__init__.py +0 -0
  114. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_amplification.py +0 -0
  115. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_coding_dna_silent_mutation.py +0 -0
  116. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_coding_dna_substitution.py +0 -0
  117. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_genomic_deletion_range.py +0 -0
  118. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_genomic_duplication.py +0 -0
  119. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_genomic_duplication_range.py +0 -0
  120. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_genomic_silent_mutation.py +0 -0
  121. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_genomic_substitution.py +0 -0
  122. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_genomic_uncertain_deletion.py +0 -0
  123. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_gnomad_vcf.py +0 -0
  124. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_hgvs.py +0 -0
  125. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/test_locus_reference_genomic.py +0 -0
  126. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/tokenizers/tokenizer_base.py +0 -0
  127. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/__init__.py +0 -0
  128. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_coding_dna_deletion.py +0 -0
  129. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_coding_dna_delins.py +0 -0
  130. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_coding_dna_insertion.py +0 -0
  131. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_coding_dna_silent_mutation.py +0 -0
  132. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_coding_dna_substitution.py +0 -0
  133. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_genomic_deletion.py +0 -0
  134. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_genomic_delins.py +0 -0
  135. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_genomic_duplication.py +0 -0
  136. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_genomic_insertion.py +0 -0
  137. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_genomic_silent_mutation.py +0 -0
  138. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_genomic_substitution.py +0 -0
  139. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_genomic_uncertain_deletion.py +0 -0
  140. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_polypeptide_truncation.py +0 -0
  141. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_protein_deletion.py +0 -0
  142. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_protein_delins.py +0 -0
  143. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_protein_insertion.py +0 -0
  144. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_protein_substitution.py +0 -0
  145. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/translators/test_silent_mutation.py +0 -0
  146. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/__init__.py +0 -0
  147. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_coding_dna_deletion.py +0 -0
  148. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_coding_dna_delins.py +0 -0
  149. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_coding_dna_insertion.py +0 -0
  150. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_coding_dna_silent_mutation.py +0 -0
  151. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_coding_dna_subsitution.py +0 -0
  152. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_genomic_deletion.py +0 -0
  153. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_genomic_delins.py +0 -0
  154. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_genomic_duplication.py +0 -0
  155. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_genomic_insertion.py +0 -0
  156. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_genomic_silent_mutation.py +0 -0
  157. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_genomic_substitution.py +0 -0
  158. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_genomic_uncertain_deletion.py +0 -0
  159. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_polypeptide_truncation.py +0 -0
  160. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_protein_deletion.py +0 -0
  161. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_protein_delins.py +0 -0
  162. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_protein_insertion.py +0 -0
  163. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_protein_substitution.py +0 -0
  164. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/tests/validators/test_silent_mutation.py +0 -0
  165. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/__init__.py +0 -0
  166. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/amplification_classifier.py +0 -0
  167. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/classifier.py +0 -0
  168. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/classify.py +0 -0
  169. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/coding_dna_deletion_classifier.py +0 -0
  170. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/coding_dna_delins_classifier.py +0 -0
  171. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/coding_dna_insertion_classifier.py +0 -0
  172. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/coding_dna_silent_mutation_classifier.py +0 -0
  173. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/coding_dna_substitution_classifier.py +0 -0
  174. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/genomic_deletion_classifier.py +0 -0
  175. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/genomic_deletion_range_classifier.py +0 -0
  176. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/genomic_delins_classifier.py +0 -0
  177. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/genomic_duplication_classifier.py +0 -0
  178. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/genomic_insertion_classifier.py +0 -0
  179. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/genomic_silent_mutation_classifier.py +0 -0
  180. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/genomic_substitution_classifier.py +0 -0
  181. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/genomic_uncertain_deletion_classifier.py +0 -0
  182. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/polypeptide_truncation_classifier.py +0 -0
  183. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/protein_classifier.py +0 -0
  184. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/protein_deletion_classifier.py +0 -0
  185. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/protein_delins_classifier.py +0 -0
  186. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/protein_insertion_classifier.py +0 -0
  187. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/protein_termination_classifier.py +0 -0
  188. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/set_based_classifier.py +0 -0
  189. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/classifiers/silent_mutation.py +0 -0
  190. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/data_sources/__init__.py +0 -0
  191. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/schemas/__init__.py +0 -0
  192. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/schemas/app_schemas.py +0 -0
  193. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/schemas/classification_response_schema.py +0 -0
  194. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/schemas/to_vrs_response_schema.py +0 -0
  195. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/schemas/validation_response_schema.py +0 -0
  196. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/schemas/vrs_python_translator_schema.py +0 -0
  197. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/to_vrsatile.py +0 -0
  198. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/coding_dna_delins.py +0 -0
  199. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/coding_dna_insertion.py +0 -0
  200. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/coding_dna_silent_mutation.py +0 -0
  201. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/coding_dna_substitution.py +0 -0
  202. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/deletion_range_base.py +0 -0
  203. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/duplication_base.py +0 -0
  204. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/free_text_categorical.py +0 -0
  205. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/gene_symbol.py +0 -0
  206. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/genomic_deletion_range.py +0 -0
  207. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/genomic_delins.py +0 -0
  208. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/genomic_duplication.py +0 -0
  209. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/genomic_insertion.py +0 -0
  210. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/genomic_silent_mutation.py +0 -0
  211. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/genomic_substitution.py +0 -0
  212. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/genomic_uncertain_deletion.py +0 -0
  213. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/tokenizers/reference_sequence.py +0 -0
  214. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/__init__.py +0 -0
  215. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/amplification.py +0 -0
  216. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/coding_dna_deletion.py +0 -0
  217. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/coding_dna_delins.py +0 -0
  218. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/coding_dna_insertion.py +0 -0
  219. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/coding_dna_silent_mutation.py +0 -0
  220. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/coding_dna_substitution.py +0 -0
  221. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/genomic_deletion.py +0 -0
  222. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/genomic_deletion_range.py +0 -0
  223. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/genomic_delins.py +0 -0
  224. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/genomic_duplication.py +0 -0
  225. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/genomic_insertion.py +0 -0
  226. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/genomic_silent_mutation.py +0 -0
  227. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/genomic_substitution.py +0 -0
  228. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/genomic_uncertain_deletion.py +0 -0
  229. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/polypeptide_truncation.py +0 -0
  230. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/protein_deletion.py +0 -0
  231. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/protein_delins.py +0 -0
  232. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/protein_insertion.py +0 -0
  233. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/protein_substitution.py +0 -0
  234. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/silent_mutation.py +0 -0
  235. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/translate.py +0 -0
  236. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/translators/translator.py +0 -0
  237. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/__init__.py +0 -0
  238. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/coding_dna_deletion.py +0 -0
  239. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/coding_dna_delins.py +0 -0
  240. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/coding_dna_insertion.py +0 -0
  241. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/coding_dna_silent_mutation.py +0 -0
  242. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/coding_dna_substitution.py +0 -0
  243. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/delins_base.py +0 -0
  244. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/genomic_deletion.py +0 -0
  245. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/genomic_delins.py +0 -0
  246. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/genomic_duplication.py +0 -0
  247. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/genomic_insertion.py +0 -0
  248. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/genomic_silent_mutation.py +0 -0
  249. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/genomic_substitution.py +0 -0
  250. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/genomic_uncertain_deletion.py +0 -0
  251. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/insertion_base.py +0 -0
  252. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/polypeptide_truncation.py +0 -0
  253. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/protein_substitution.py +0 -0
  254. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/silent_mutation.py +0 -0
  255. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation/validators/single_nucleotide_variation_base.py +0 -0
  256. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation_normalizer.egg-info/dependency_links.txt +0 -0
  257. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation_normalizer.egg-info/not-zip-safe +0 -0
  258. {variation-normalizer-0.7.dev0 → variation-normalizer-0.7.0.dev5}/variation_normalizer.egg-info/top_level.txt +0 -0
@@ -1,11 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: variation-normalizer
3
- Version: 0.7.dev0
3
+ Version: 0.7.0.dev5
4
4
  Summary: VICC normalization routine for variations
5
5
  Home-page: https://github.com/cancervariants/variation-normalization
6
6
  Author: VICC
7
7
  Author-email: help@cancervariants.org
8
8
  License: MIT
9
+ Platform: UNKNOWN
9
10
  Classifier: Development Status :: 3 - Alpha
10
11
  Classifier: Intended Audience :: Science/Research
11
12
  Classifier: Intended Audience :: Developers
@@ -51,7 +52,7 @@ We are working towards adding more types of variations, coordinates, and represe
51
52
 
52
53
  The `/to_vrs` endpoint returns a list of validated VRS [Variations](https://vrs.ga4gh.org/en/1.2.0/terms_and_model.html#variation).
53
54
 
54
- The `/normalize` endpoint returns a [Variation Descriptor](https://vrsatile.readthedocs.io/en/latest/value_object_descriptor/vod_index.html#variation-descriptor) containing the MANE Transcript, if one is found. If a genomic query is not given a gene, `normalize` will return its GRCh38 representation. Variation Normalizer relies on [UTA Tools](https://github.com/GenomicMedLab/uta-tools) for retrieving MANE Transcript data. More information on the transcript selection algorithm can be found [here](https://github.com/GenomicMedLab/uta-tools/blob/main/docs/TranscriptSelectionPriority.md).
55
+ The `/normalize` endpoint returns a [Variation Descriptor](https://vrsatile.readthedocs.io/en/latest/value_object_descriptor/vod_index.html#variation-descriptor) containing the MANE Transcript, if one is found. If a genomic query is not given a gene, `normalize` will return its GRCh38 representation. Variation Normalizer relies on [**C**ommon **O**perations **O**n **L**ots-of **Seq**uences Tool (cool-seq-tool)](https://github.com/GenomicMedLab/cool-seq-tool) for retrieving MANE Transcript data. More information on the transcript selection algorithm can be found [here](https://github.com/GenomicMedLab/cool-seq-tool/blob/main/docs/TranscriptSelectionPriority.md).
55
56
 
56
57
  ## Developer Instructions
57
58
 
@@ -110,8 +111,10 @@ sudo mv /usr/local/share/seqrepo/2021-01-29._fkuefgd /usr/local/share/seqrepo/20
110
111
  exit
111
112
  ```
112
113
 
114
+ Use the `SEQREPO_ROOT_DIR` environment variable to set the path of an already existing SeqRepo directory. The default is `/usr/local/share/seqrepo/latest`.
115
+
113
116
  #### UTA
114
- Variation Normalizer also uses [UTA Tools](https://github.com/GenomicMedLab/uta-tools) which uses [UTA](https://github.com/biocommons/uta) as the underlying PostgreSQL database.
117
+ Variation Normalizer also uses [**C**ommon **O**perations **O**n **L**ots-of **Seq**uences Tool (cool-seq-tool)](https://github.com/GenomicMedLab/cool-seq-tool) which uses [UTA](https://github.com/biocommons/uta) as the underlying PostgreSQL database.
115
118
 
116
119
  _The following commands will likely need modification appropriate for the installation environment._
117
120
  1. Install [PostgreSQL](https://www.postgresql.org/)
@@ -173,3 +176,5 @@ From the _root_ directory of the repository:
173
176
  ```
174
177
  pytest tests/
175
178
  ```
179
+
180
+
@@ -31,7 +31,7 @@ We are working towards adding more types of variations, coordinates, and represe
31
31
 
32
32
  The `/to_vrs` endpoint returns a list of validated VRS [Variations](https://vrs.ga4gh.org/en/1.2.0/terms_and_model.html#variation).
33
33
 
34
- The `/normalize` endpoint returns a [Variation Descriptor](https://vrsatile.readthedocs.io/en/latest/value_object_descriptor/vod_index.html#variation-descriptor) containing the MANE Transcript, if one is found. If a genomic query is not given a gene, `normalize` will return its GRCh38 representation. Variation Normalizer relies on [UTA Tools](https://github.com/GenomicMedLab/uta-tools) for retrieving MANE Transcript data. More information on the transcript selection algorithm can be found [here](https://github.com/GenomicMedLab/uta-tools/blob/main/docs/TranscriptSelectionPriority.md).
34
+ The `/normalize` endpoint returns a [Variation Descriptor](https://vrsatile.readthedocs.io/en/latest/value_object_descriptor/vod_index.html#variation-descriptor) containing the MANE Transcript, if one is found. If a genomic query is not given a gene, `normalize` will return its GRCh38 representation. Variation Normalizer relies on [**C**ommon **O**perations **O**n **L**ots-of **Seq**uences Tool (cool-seq-tool)](https://github.com/GenomicMedLab/cool-seq-tool) for retrieving MANE Transcript data. More information on the transcript selection algorithm can be found [here](https://github.com/GenomicMedLab/cool-seq-tool/blob/main/docs/TranscriptSelectionPriority.md).
35
35
 
36
36
  ## Developer Instructions
37
37
 
@@ -90,8 +90,10 @@ sudo mv /usr/local/share/seqrepo/2021-01-29._fkuefgd /usr/local/share/seqrepo/20
90
90
  exit
91
91
  ```
92
92
 
93
+ Use the `SEQREPO_ROOT_DIR` environment variable to set the path of an already existing SeqRepo directory. The default is `/usr/local/share/seqrepo/latest`.
94
+
93
95
  #### UTA
94
- Variation Normalizer also uses [UTA Tools](https://github.com/GenomicMedLab/uta-tools) which uses [UTA](https://github.com/biocommons/uta) as the underlying PostgreSQL database.
96
+ Variation Normalizer also uses [**C**ommon **O**perations **O**n **L**ots-of **Seq**uences Tool (cool-seq-tool)](https://github.com/GenomicMedLab/cool-seq-tool) which uses [UTA](https://github.com/biocommons/uta) as the underlying PostgreSQL database.
95
97
 
96
98
  _The following commands will likely need modification appropriate for the installation environment._
97
99
  1. Install [PostgreSQL](https://www.postgresql.org/)
@@ -27,29 +27,33 @@ install_requires =
27
27
  fastapi
28
28
  uvicorn
29
29
  pydantic
30
- ga4gh.vrs[extras] >= 0.8.7dev0
31
- gene-normalizer >= 0.2.3
30
+ ga4gh.vrs[extras] >= 0.9.0.dev0
31
+ gene-normalizer >= 0.2.8
32
32
  pyliftover
33
33
  boto3
34
- ga4gh.vrsatile.pydantic >= 0.1.dev3
35
- uta-tools >= 0.1.2
34
+ ga4gh.vrsatile.pydantic >= 0.1.0.dev7
35
+ cool-seq-tool >= 0.1.11
36
+ bioutils
36
37
  tests_require =
37
38
  pytest
38
39
  pytest-cov
39
40
  pyyaml
40
41
  pytest-asyncio
41
42
 
42
- [options.package_data]
43
- variation =
44
- data/amino_acids.csv
45
- data/transcript_mapping.tsv
46
-
47
43
  [options.extras_require]
48
44
  dev =
49
45
  pytest
50
46
  pytest-cov
51
- pyyaml
52
47
  psycopg2-binary
48
+ pytest-asyncio
49
+ flake8
50
+ flake8-docstrings
51
+ flake8-quotes
52
+ flake8-annotations
53
+ flake8-import-order
54
+ pre-commit
55
+ jupyter
56
+ ipykernel
53
57
 
54
58
  [tool:pytest]
55
59
  addopts = --ignore setup.py --ignore=codebuild/ --doctest-modules --cov-report term-missing --cov .
@@ -3,9 +3,8 @@ import yaml
3
3
  from gene.query import QueryHandler as GeneQueryHandler
4
4
 
5
5
  from variation.tokenizers import Tokenize
6
- from tests import PROJECT_ROOT
7
- from variation.tokenizers.caches import AminoAcidCache
8
6
  from variation.tokenizers import GeneSymbol
7
+ from tests import PROJECT_ROOT
9
8
 
10
9
 
11
10
  class ClassifierBase:
@@ -20,8 +19,7 @@ class ClassifierBase:
20
19
  {"should_match": [], "should_not_match": []}
21
20
  )
22
21
  self.classifier = self.classifier_instance()
23
- self.tokenizer = Tokenize(AminoAcidCache(),
24
- GeneSymbol(GeneQueryHandler()))
22
+ self.tokenizer = Tokenize(GeneSymbol(GeneQueryHandler()))
25
23
 
26
24
  def classifier_instance(self):
27
25
  """Check that the classifier_instance method is implemented."""
@@ -68,6 +68,7 @@ def vhl_gene_context():
68
68
  "vega:OTTHUMG00000128668",
69
69
  "ccds:CCDS2598",
70
70
  "ena.embl:L15409",
71
+ "iuphar:3204",
71
72
  "orphanet:120467",
72
73
  "ccds:CCDS2597",
73
74
  "uniprot:P40337"
@@ -1019,9 +1020,9 @@ def braf_amplification(braf_ncbi_seq_loc, braf_gene_context):
1019
1020
  "id": "normalize.variation:BRAF%20Amplification",
1020
1021
  "type": "VariationDescriptor",
1021
1022
  "variation": {
1022
- "id": "ga4gh:RCN.avsI73-9i6ykDIRB3eB89jeU1lhyBbYt",
1023
+ "id": "ga4gh:RCN.tXX8oMzsJx3r9ZlqQlzk_K8Luz-bswdT",
1023
1024
  "location": braf_ncbi_seq_loc,
1024
- "relative_copy_class": "high-level gain",
1025
+ "relative_copy_class": "EFO:0030072",
1025
1026
  "type": "RelativeCopyNumber"
1026
1027
  },
1027
1028
  "molecule_context": "genomic",
@@ -1038,9 +1039,9 @@ def prpf8_amplification(prpf8_ncbi_seq_loc, prpf8_gene_context):
1038
1039
  "id": "normalize.variation:PRPF8%20AMPLIFICATION",
1039
1040
  "type": "VariationDescriptor",
1040
1041
  "variation": {
1041
- "id": "ga4gh:RCN.w44H1MxQusrCBDxUoLr30E1iJBMGXF14",
1042
+ "id": "ga4gh:RCN.DW0vRfIA0aI4AR0epEh_k-qrB2pdpZVw",
1042
1043
  "location": prpf8_ncbi_seq_loc,
1043
- "relative_copy_class": "high-level gain",
1044
+ "relative_copy_class": "EFO:0030072",
1044
1045
  "type": "RelativeCopyNumber"
1045
1046
  },
1046
1047
  "molecule_context": "genomic",
@@ -2,13 +2,12 @@
2
2
  import pytest
3
3
 
4
4
  from variation.data_sources.codon_table import CodonTable
5
- from variation.tokenizers.caches import AminoAcidCache
6
5
 
7
6
 
8
7
  @pytest.fixture(scope="module")
9
8
  def test_codon_table():
10
9
  """Build codon table test fixture."""
11
- return CodonTable(AminoAcidCache())
10
+ return CodonTable()
12
11
 
13
12
 
14
13
  def test_get_codons(test_codon_table):
@@ -798,8 +798,9 @@ async def test_substitution(test_handler, braf_v600e, braf_v600l,
798
798
  @pytest.mark.asyncio
799
799
  async def test_silent_mutation(test_handler, vhl_silent):
800
800
  """Test that silent queries return correct response"""
801
- resp = await test_handler.gnomad_vcf_to_protein("3-10183714-C-C")
802
- assertion_checks(resp.variation_descriptor, vhl_silent, "3-10183714-C-C",
801
+ # https://www.ncbi.nlm.nih.gov/clinvar/variation/379039/?new_evidence=true
802
+ resp = await test_handler.gnomad_vcf_to_protein("3-10142030-C-C")
803
+ assertion_checks(resp.variation_descriptor, vhl_silent, "3-10142030-C-C",
803
804
  ignore_id=True)
804
805
  assert resp.warnings == []
805
806
 
@@ -850,8 +851,11 @@ async def test_invalid(test_handler):
850
851
  assert resp.variation_descriptor.variation.type == "Text"
851
852
  assert resp.variation_descriptor.label == "7-140753336-T-G"
852
853
  assert set(resp.warnings) == {
853
- "Unable to get transcripts given NC_000007.13 and 140753336",
854
854
  "Expected T but found A on NC_000007.14 at position 140753336",
855
+ "Unable to get MANE data for NM_004333.6 using NC_000007.13 at positions"
856
+ " 140753335 to 140753335", # MANE Select
857
+ "Unable to get MANE data for NM_001374258.1 using NC_000007.13 at positions"
858
+ " 140753335 to 140753335" # MANE Plus Clinical
855
859
  }
856
860
 
857
861
  resp = await test_handler.gnomad_vcf_to_protein("20-2-TC-TG",
@@ -1,4 +1,6 @@
1
1
  """Module for testing HGVS Dup Del mode."""
2
+ from copy import deepcopy
3
+
2
4
  import pytest
3
5
  from ga4gh.vrsatile.pydantic.vrsatile_models import VariationDescriptor
4
6
 
@@ -318,9 +320,9 @@ def genomic_dup1_vrc(genomic_dup1, genomic_dup1_seq_loc):
318
320
  """Create a test fixture for genomic dup relative CNV."""
319
321
  genomic_dup1["variation"] = {
320
322
  "type": "RelativeCopyNumber",
321
- "id": "ga4gh:RCN.qSnPCsf9ylOaecpSBjTkxWFqxmmyYWtL",
323
+ "id": "ga4gh:RCN.UBQCyZ7lHIJN6FoQHp3gURfJSWN31S09",
322
324
  "location": genomic_dup1_seq_loc,
323
- "relative_copy_class": "high-level gain"
325
+ "relative_copy_class": "EFO:0030072"
324
326
  }
325
327
  return VariationDescriptor(**genomic_dup1)
326
328
 
@@ -585,9 +587,9 @@ def genomic_dup2_vrc(genomic_dup2, genomic_dup2_seq_loc):
585
587
  """Create a test fixture for genomic dup relative CNV."""
586
588
  genomic_dup2["variation"] = {
587
589
  "type": "RelativeCopyNumber",
588
- "id": "ga4gh:RCN.zizBAY460E_wbra9Y6oCxojd8YCbIfnx",
590
+ "id": "ga4gh:RCN.ClUoNekweei4SUxyjxeLnxagD6vKQ1w7",
589
591
  "location": genomic_dup2_seq_loc,
590
- "relative_copy_class": "low-level gain"
592
+ "relative_copy_class": "EFO:0030070"
591
593
  }
592
594
  return VariationDescriptor(**genomic_dup2)
593
595
 
@@ -729,12 +731,11 @@ def genomic_dup3_vac(genomic_dup3, genomic_del3_dup3_loc):
729
731
  @pytest.fixture(scope="module")
730
732
  def genomic_dup3_vrc(genomic_dup3, genomic_del3_dup3_loc):
731
733
  """Create a test fixture for genomic dup relative cnv."""
732
- _id = "ga4gh:RCN.4m1TD2538i7v4NQ_OeJ-pIEhlRpYZ3_y"
733
734
  genomic_dup3["variation"] = {
734
735
  "type": "RelativeCopyNumber",
735
- "id": _id,
736
+ "id": "ga4gh:RCN.pkRuYZTdIFaA_b9TPc7Czk56VNj1xGz3",
736
737
  "location": genomic_del3_dup3_loc,
737
- "relative_copy_class": "low-level gain"
738
+ "relative_copy_class": "EFO:0030070"
738
739
  }
739
740
  return VariationDescriptor(**genomic_dup3)
740
741
 
@@ -784,12 +785,11 @@ def genomic_dup3_free_text_subject():
784
785
  @pytest.fixture(scope="module")
785
786
  def genomic_dup3_free_text_vrc(genomic_dup3_free_text, genomic_dup3_free_text_subject):
786
787
  """Create a test fixture for genomic dup relative cnv."""
787
- _id = "ga4gh:RCN.ReWfNwAnchjIPJQEXM038T9M3OsOO7yK"
788
788
  genomic_dup3_free_text["variation"] = {
789
789
  "type": "RelativeCopyNumber",
790
- "id": _id,
790
+ "id": "ga4gh:RCN.roF4IsQUR-ZxU_c4KMw9WoDrRnhfA75O",
791
791
  "location": genomic_dup3_free_text_subject,
792
- "relative_copy_class": "low-level gain"
792
+ "relative_copy_class": "EFO:0030070"
793
793
  }
794
794
  return VariationDescriptor(**genomic_dup3_free_text)
795
795
 
@@ -839,12 +839,11 @@ def genomic_dup4():
839
839
  @pytest.fixture(scope="module")
840
840
  def genomic_dup4_vrc(genomic_dup4, genoimc_dup4_loc):
841
841
  """Create a test fixture for genomic dup relative cnv."""
842
- _id = "ga4gh:RCN.uSGvLYzpzivqDzhuKR44DHc5imZJSmoV"
843
842
  genomic_dup4["variation"] = {
844
843
  "type": "RelativeCopyNumber",
845
- "id": _id,
844
+ "id": "ga4gh:RCN.cFmUKSZQQ-CuOqG468ZyP_zF63WflwoF",
846
845
  "location": genoimc_dup4_loc,
847
- "relative_copy_class": "low-level gain"
846
+ "relative_copy_class": "EFO:0030070"
848
847
  }
849
848
  return VariationDescriptor(**genomic_dup4)
850
849
 
@@ -907,12 +906,11 @@ def genomic_dup4_free_text_subject():
907
906
  @pytest.fixture(scope="module")
908
907
  def genomic_dup4_free_text_vrc(genomic_dup4_free_text, genomic_dup4_free_text_subject):
909
908
  """Create a test fixture for genomic dup relative cnv."""
910
- _id = "ga4gh:RCN.Cf9r8JDpUC18VkkEv44jf8b8WMqUIRFu"
911
909
  genomic_dup4_free_text["variation"] = {
912
910
  "type": "RelativeCopyNumber",
913
- "id": _id,
911
+ "id": "ga4gh:RCN.LB5BaDj-GkVlpVAIG9kJSir1uO4DoZ6X",
914
912
  "location": genomic_dup4_free_text_subject,
915
- "relative_copy_class": "low-level gain"
913
+ "relative_copy_class": "EFO:0030070"
916
914
  }
917
915
  return VariationDescriptor(**genomic_dup4_free_text)
918
916
 
@@ -972,12 +970,11 @@ def genomic_dup5_abs_cnv(params, genomic_dup5_loc):
972
970
 
973
971
  def genomic_dup5_rel_cnv(params, genomic_dup5_loc):
974
972
  """Create genomic dup4 relative cnv"""
975
- _id = "ga4gh:RCN.tr_brFSOfykm3I3ufLQTS9pV8KKjqLhK"
976
973
  params["variation"] = {
977
974
  "type": "RelativeCopyNumber",
978
- "id": _id,
975
+ "id": "ga4gh:RCN.1sn-uR3OiG0SbGd-f2IkujiqjcUHzxo3",
979
976
  "location": genomic_dup5_loc,
980
- "relative_copy_class": "low-level gain"
977
+ "relative_copy_class": "EFO:0030070"
981
978
  }
982
979
 
983
980
 
@@ -1070,12 +1067,11 @@ def genomic_dup6():
1070
1067
 
1071
1068
  def genomic_dup6_rel_cnv(params, genoimc_dup6_loc):
1072
1069
  """Create genomic dup6 relative cnv"""
1073
- _id = "ga4gh:RCN.c5Uq3TFDNpQSyDlbXb0BRonw9AYHHk0H"
1074
1070
  params["variation"] = {
1075
1071
  "type": "RelativeCopyNumber",
1076
- "id": _id,
1072
+ "id": "ga4gh:RCN.Mb9dPwnAm_KSrifZ0955Lse7Ubr5PaGG",
1077
1073
  "location": genoimc_dup6_loc,
1078
- "relative_copy_class": "low-level gain"
1074
+ "relative_copy_class": "EFO:0030070"
1079
1075
  }
1080
1076
 
1081
1077
 
@@ -1205,9 +1201,9 @@ def genomic_del1_vrc(genomic_del1, genomic_del1_seq_loc):
1205
1201
  """Create a test fixture for genomic del relative CNV."""
1206
1202
  genomic_del1["variation"] = {
1207
1203
  "type": "RelativeCopyNumber",
1208
- "id": "ga4gh:RCN.z7MU8QUSR_aeWG7MP161H4jwPGoyo1No",
1204
+ "id": "ga4gh:RCN.89rlJ6oV422qg04Rhb25rhZJF46LUPqR",
1209
1205
  "location": genomic_del1_seq_loc,
1210
- "relative_copy_class": "copy neutral"
1206
+ "relative_copy_class": "EFO:0030067"
1211
1207
  }
1212
1208
  return VariationDescriptor(**genomic_del1)
1213
1209
 
@@ -1361,9 +1357,9 @@ def genomic_del2_vrc(genomic_del2, genomic_del2_seq_loc):
1361
1357
  """Create a test fixture for genomic del relative CNV."""
1362
1358
  genomic_del2["variation"] = {
1363
1359
  "type": "RelativeCopyNumber",
1364
- "id": "ga4gh:RCN._19twDngCtP3U-8ED2Kly2HM53I_7CV7",
1360
+ "id": "ga4gh:RCN.Ai0Z31nuQtHGJ-0Vl8ARrblr0xiKW9d-",
1365
1361
  "location": genomic_del2_seq_loc,
1366
- "relative_copy_class": "complete loss"
1362
+ "relative_copy_class": "EFO:0030069"
1367
1363
  }
1368
1364
  return VariationDescriptor(**genomic_del2)
1369
1365
 
@@ -1492,12 +1488,11 @@ def genomic_del3():
1492
1488
  @pytest.fixture(scope="module")
1493
1489
  def genomic_del3_vrc(genomic_del3, genomic_del3_dup3_loc):
1494
1490
  """Create a test fixture for genomic del relative cnv."""
1495
- _id = "ga4gh:RCN.dYerC8FSiqcexo8X1n3XUKpAckoAsfOK"
1496
1491
  genomic_del3["variation"] = {
1497
1492
  "type": "RelativeCopyNumber",
1498
- "id": _id,
1493
+ "id": "ga4gh:RCN.OPd0F6EMNNugGkKFBbl4f1We0WwtL9uI",
1499
1494
  "location": genomic_del3_dup3_loc,
1500
- "relative_copy_class": "partial loss"
1495
+ "relative_copy_class": "EFO:0030067"
1501
1496
  }
1502
1497
  return VariationDescriptor(**genomic_del3)
1503
1498
 
@@ -1678,12 +1673,11 @@ def genomic_del3_free_text_subject():
1678
1673
  @pytest.fixture(scope="module")
1679
1674
  def genomic_del3_free_text_vrc(genomic_del3_free_text, genomic_del3_free_text_subject):
1680
1675
  """Create a test fixture for genomic del relative cnv."""
1681
- _id = "ga4gh:RCN.6c0tRlHyFYGSeDEmSyn0nrZJLQDkwVsG"
1682
1676
  genomic_del3_free_text["variation"] = {
1683
1677
  "type": "RelativeCopyNumber",
1684
- "id": _id,
1678
+ "id": "ga4gh:RCN.jHNFu709utJ1TkGwQkY1NxmYfRqzof5N",
1685
1679
  "location": genomic_del3_free_text_subject,
1686
- "relative_copy_class": "partial loss"
1680
+ "relative_copy_class": "EFO:0030067"
1687
1681
  }
1688
1682
  return VariationDescriptor(**genomic_del3_free_text)
1689
1683
 
@@ -1733,12 +1727,11 @@ def genomic_del4():
1733
1727
  @pytest.fixture(scope="module")
1734
1728
  def genomic_del4_vrc(genomic_del4, genomic_del4_seq_loc):
1735
1729
  """Create a test fixture for genomic del relative cnv."""
1736
- _id = "ga4gh:RCN.BwZOFAfo5u8TcwbR3DMi8qbIImv96VQU"
1737
1730
  genomic_del4["variation"] = {
1738
1731
  "type": "RelativeCopyNumber",
1739
- "id": _id,
1732
+ "id": "ga4gh:RCN.euSDpT11wTt9o9lzlk16lc340OBX2_ij",
1740
1733
  "location": genomic_del4_seq_loc,
1741
- "relative_copy_class": "partial loss"
1734
+ "relative_copy_class": "EFO:0030067"
1742
1735
  }
1743
1736
  return VariationDescriptor(**genomic_del4)
1744
1737
 
@@ -1904,12 +1897,11 @@ def genomic_del4_free_text_subject():
1904
1897
  @pytest.fixture(scope="module")
1905
1898
  def genomic_del4_free_text_vrc(genomic_del4_free_text, genomic_del4_free_text_subject):
1906
1899
  """Create a test fixture for genomic del relative cnv."""
1907
- _id = "ga4gh:RCN.XqfrZ9k9mwDO0cM9duK7ooOih0iR1H2Q"
1908
1900
  genomic_del4_free_text["variation"] = {
1909
1901
  "type": "RelativeCopyNumber",
1910
- "id": _id,
1902
+ "id": "ga4gh:RCN.fcVXdxFIjLmULNFOLewLKq9xPvNeVNDm",
1911
1903
  "location": genomic_del4_free_text_subject,
1912
- "relative_copy_class": "partial loss"
1904
+ "relative_copy_class": "EFO:0030067"
1913
1905
  }
1914
1906
  return VariationDescriptor(**genomic_del4_free_text)
1915
1907
 
@@ -1949,7 +1941,7 @@ def genomic_uncertain_del_2():
1949
1941
  "id": "normalize.variation:NC_000002.12%3Ag.%28%3F_110104900%29_%28110207160_%3F%29del", # noqa: E501
1950
1942
  "type": "VariationDescriptor",
1951
1943
  "variation": {
1952
- "id": "ga4gh:RCN.7EM-Wsg_7mmAE1LW8cmRI3QwKhJCA24a",
1944
+ "id": "ga4gh:RCN.0saHzDrnktHex2tkYyPxQanKwjLUZQu6",
1953
1945
  "location": {
1954
1946
  "id": "ga4gh:SL.gUeB872FGVaphqoSAfI0gz4KXJvpZKL_",
1955
1947
  "sequence_id": "ga4gh:SQ.pnAqCRBrTsUoBghSD1yp_jXWSmlbdh4g",
@@ -1965,7 +1957,7 @@ def genomic_uncertain_del_2():
1965
1957
  },
1966
1958
  "type": "SequenceLocation"
1967
1959
  },
1968
- "relative_copy_class": "partial loss",
1960
+ "relative_copy_class": "EFO:0030067",
1969
1961
  "type": "RelativeCopyNumber"
1970
1962
  },
1971
1963
  "molecule_context": "genomic",
@@ -1981,7 +1973,7 @@ def genomic_uncertain_del_y():
1981
1973
  "id": "normalize.variation:NC_000024.10%3Ag.%28%3F_14076802%29_%2857165209_%3F%29del", # noqa: E501
1982
1974
  "type": "VariationDescriptor",
1983
1975
  "variation": {
1984
- "id": "ga4gh:RCN.2q7DKevv8nUh87Sl00Z7l50h047Ti2at",
1976
+ "id": "ga4gh:RCN.7Nl4T845v9vuVS4PUB8HI4-tLPsEWU6e",
1985
1977
  "location": {
1986
1978
  "id": "ga4gh:SL.ykRzA8IFueiCG7oznnN4teL2nXXBshHV",
1987
1979
  "sequence_id": "ga4gh:SQ.8_liLu1aycC0tPQPFmUaGXJLDs5SbPZ5",
@@ -1997,7 +1989,7 @@ def genomic_uncertain_del_y():
1997
1989
  },
1998
1990
  "type": "SequenceLocation"
1999
1991
  },
2000
- "relative_copy_class": "partial loss",
1992
+ "relative_copy_class": "EFO:0030067",
2001
1993
  "type": "RelativeCopyNumber"
2002
1994
  },
2003
1995
  "molecule_context": "genomic",
@@ -2033,12 +2025,11 @@ def genomic_del5_abs_cnv(params, genomic_del5_seq_loc):
2033
2025
 
2034
2026
  def genomic_del5_rel_cnv(params, genomic_del5_seq_loc):
2035
2027
  """Create genomic del5 relative cnv"""
2036
- _id = "ga4gh:RCN.9rG3a5u3JODwQGVrv1IgAjG6SZgdvraH"
2037
2028
  params["variation"] = {
2038
2029
  "type": "RelativeCopyNumber",
2039
- "id": _id,
2030
+ "id": "ga4gh:RCN.P0LWls1SeRF881B-uhomC8B4BHc6Fo2R",
2040
2031
  "location": genomic_del5_seq_loc,
2041
- "relative_copy_class": "partial loss"
2032
+ "relative_copy_class": "EFO:0030067"
2042
2033
  }
2043
2034
 
2044
2035
 
@@ -2247,12 +2238,11 @@ def genomic_del6():
2247
2238
 
2248
2239
  def genomic_del6_rel_cnv(params, genomic_del6_seq_loc):
2249
2240
  """Create genomic del6 relative cnv"""
2250
- _id = "ga4gh:RCN.zsagK87b_RdK4_QZGMnbNl39LCuJUjAr"
2251
2241
  params["variation"] = {
2252
2242
  "type": "RelativeCopyNumber",
2253
- "id": _id,
2243
+ "id": "ga4gh:RCN.gQwVlnomQRAffyySAQdj3PYxnEalHrXK",
2254
2244
  "location": genomic_del6_seq_loc,
2255
- "relative_copy_class": "partial loss"
2245
+ "relative_copy_class": "EFO:0030067"
2256
2246
  }
2257
2247
 
2258
2248
 
@@ -2483,7 +2473,7 @@ async def test_genomic_dup1(test_handler, genomic_dup1_lse,
2483
2473
  assertion_checks(resp.variation_descriptor, genomic_dup1_vac, q)
2484
2474
 
2485
2475
  resp = await test_handler.normalize(q, "relative_cnv",
2486
- relative_copy_class="high-level gain")
2476
+ relative_copy_class="EFO:0030072")
2487
2477
  assertion_checks(resp.variation_descriptor, genomic_dup1_vrc, q)
2488
2478
 
2489
2479
  resp = await test_handler.normalize(q, "repeated_seq_expr")
@@ -2503,7 +2493,7 @@ async def test_genomic_dup1(test_handler, genomic_dup1_lse,
2503
2493
  assertion_checks(resp.variation_descriptor, genomic_dup1_vac, q, ignore_id=True)
2504
2494
 
2505
2495
  resp = await test_handler.normalize(q, "relative_cnv",
2506
- relative_copy_class="high-level gain")
2496
+ relative_copy_class="EFO:0030072")
2507
2497
  assertion_checks(resp.variation_descriptor, genomic_dup1_vrc, q, ignore_id=True)
2508
2498
 
2509
2499
  resp = await test_handler.normalize(q, "repeated_seq_expr")
@@ -2628,8 +2618,11 @@ async def test_genomic_dup3(test_handler, genomic_dup3_vrc, genomic_dup3_vac,
2628
2618
  assertion_checks(resp.variation_descriptor, genomic_dup3_vac, q)
2629
2619
 
2630
2620
  resp = await test_handler.normalize(q, "relative_cnv",
2631
- relative_copy_class="low-level gain")
2632
- assertion_checks(resp.variation_descriptor, genomic_dup3_vrc, q)
2621
+ relative_copy_class="EFO:0030071")
2622
+ test_var = deepcopy(genomic_dup3_vrc)
2623
+ test_var.variation.relative_copy_class = "EFO:0030071"
2624
+ test_var.variation.id = "ga4gh:RCN.lR7qHx5BeS4yJlaopO8JteBq1AO3Kv9m"
2625
+ assertion_checks(resp.variation_descriptor, test_var, q)
2633
2626
 
2634
2627
  resp = await test_handler.normalize(q, "repeated_seq_expr",
2635
2628
  untranslatable_returns_text=True)
@@ -2941,7 +2934,7 @@ async def test_genomic_del1(test_handler, genomic_del1_lse, genomic_del1_vac,
2941
2934
  assertion_checks(resp.variation_descriptor, genomic_del1_vac, q)
2942
2935
 
2943
2936
  resp = await test_handler.normalize(q, "relative_cnv",
2944
- relative_copy_class="copy neutral")
2937
+ relative_copy_class="EFO:0030067")
2945
2938
  assertion_checks(resp.variation_descriptor, genomic_del1_vrc, q)
2946
2939
 
2947
2940
  resp = await test_handler.normalize(q, "repeated_seq_expr")
@@ -2958,7 +2951,7 @@ async def test_genomic_del1(test_handler, genomic_del1_lse, genomic_del1_vac,
2958
2951
  assertion_checks(resp.variation_descriptor, genomic_del1_vac, q, ignore_id=True)
2959
2952
 
2960
2953
  resp = await test_handler.normalize(q, "relative_cnv",
2961
- relative_copy_class="copy neutral")
2954
+ relative_copy_class="EFO:0030067")
2962
2955
  assertion_checks(resp.variation_descriptor, genomic_del1_vrc, q, ignore_id=True)
2963
2956
 
2964
2957
  resp = await test_handler.normalize(q, "repeated_seq_expr")
@@ -3026,7 +3019,7 @@ async def test_genomic_del2(test_handler, genomic_del2_lse, genomic_del2_vac,
3026
3019
  assertion_checks(resp.variation_descriptor, genomic_del2_vac, q)
3027
3020
 
3028
3021
  resp = await test_handler.normalize(q, "relative_cnv",
3029
- relative_copy_class="complete loss")
3022
+ relative_copy_class="EFO:0030069")
3030
3023
  assertion_checks(resp.variation_descriptor, genomic_del2_vrc, q)
3031
3024
 
3032
3025
  resp = await test_handler.normalize(q, "repeated_seq_expr")
@@ -3043,7 +3036,7 @@ async def test_genomic_del2(test_handler, genomic_del2_lse, genomic_del2_vac,
3043
3036
  assertion_checks(resp.variation_descriptor, genomic_del2_vac, q, ignore_id=True)
3044
3037
 
3045
3038
  resp = await test_handler.normalize(q, "relative_cnv",
3046
- relative_copy_class="complete loss")
3039
+ relative_copy_class="EFO:0030069")
3047
3040
  assertion_checks(resp.variation_descriptor, genomic_del2_vrc, q, ignore_id=True)
3048
3041
 
3049
3042
  resp = await test_handler.normalize(q, "repeated_seq_expr")
@@ -517,6 +517,36 @@ def coding_dna_deletion(erbb2_context):
517
517
  return VariationDescriptor(**params)
518
518
 
519
519
 
520
+ @pytest.fixture(scope="module")
521
+ def genomic_deletion():
522
+ """Create test fixture for genomic deletion range with deleted sequence.
523
+ (CA915940709)
524
+ """
525
+ params = {
526
+ "id": "normalize.variation:NC_000003.12%3Ag.10146527_10146528del",
527
+ "type": "VariationDescriptor",
528
+ "variation": {
529
+ "id": "ga4gh:VA.AoFRR6KWkw6_YfrGAxGkT9SJsXieSk93",
530
+ "location": {
531
+ "id": "ga4gh:SL.6D7Wbq7XOvga3y-057BKIra4g9RgAFy9",
532
+ "end": {"value": 10146528, "type": "Number"},
533
+ "start": {"value": 10146524, "type": "Number"},
534
+ "sequence_id": "ga4gh:SQ.Zu7h9AggXxhTaGVsy7h_EZSChSZGcmgX",
535
+ "type": "SequenceLocation"
536
+ },
537
+ "state": {
538
+ "sequence": "CT",
539
+ "type": "LiteralSequenceExpression"
540
+ },
541
+ "type": "Allele"
542
+ },
543
+ "molecule_context": "genomic",
544
+ "structural_type": "SO:0000159",
545
+ "vrs_ref_allele_seq": "CTCT"
546
+ }
547
+ return VariationDescriptor(**params)
548
+
549
+
520
550
  @pytest.fixture(scope="module")
521
551
  def coding_dna_insertion(limk2_gene_context):
522
552
  """Create test fixture for coding DNA insertion."""
@@ -1087,14 +1117,30 @@ async def test_protein_deletion(test_handler, protein_deletion_np_range):
1087
1117
  assertion_checks(resp.variation_descriptor, protein_deletion_np_range,
1088
1118
  "ERBB2 Leu755_Thr759del")
1089
1119
 
1120
+ resp1 = await test_handler.normalize("EGFR L747_T751del")
1121
+ resp2 = await test_handler.normalize("EGFR L747_T751delLREAT")
1122
+ assert resp1.variation_descriptor.variation.id == \
1123
+ resp2.variation_descriptor.variation.id
1124
+
1125
+ # incorrect deleted sequence
1126
+ resp = await test_handler.normalize("EGFR L747_T751delLREA")
1127
+ assert not resp.variation_descriptor
1128
+
1090
1129
 
1091
1130
  @pytest.mark.asyncio
1092
1131
  async def test_coding_dna_deletion(test_handler, coding_dna_deletion):
1093
1132
  """Test that coding dna deletion normalizes correctly."""
1094
1133
  # https://reg.clinicalgenome.org/redmine/projects/registry/genboree_registry/by_caid?caid=CA645372623 # noqa: E501
1095
1134
  q = "NM_004448.3:c.2264_2278delTGAGGGAAAACACAT"
1096
- resp = await test_handler.normalize(q)
1097
- assertion_checks(resp.variation_descriptor, coding_dna_deletion, q)
1135
+ resp1 = await test_handler.normalize(q)
1136
+ assertion_checks(resp1.variation_descriptor, coding_dna_deletion, q)
1137
+
1138
+ # incorrected deleted sequence
1139
+ resp = await test_handler.normalize("NM_004448.3:c.2264_2278delTGAGGGAAAACACTA")
1140
+ assert not resp.variation_descriptor
1141
+
1142
+ resp2 = await test_handler.normalize("NM_004448.3:c.2264_2278del")
1143
+ assert resp1.variation_descriptor.variation.id == resp2.variation_descriptor.variation.id # noqa: E501
1098
1144
 
1099
1145
  q = "ERBB2 c.2264_2278delTGAGGGAAAACACAT"
1100
1146
  resp = await test_handler.normalize(q)
@@ -1105,6 +1151,23 @@ async def test_coding_dna_deletion(test_handler, coding_dna_deletion):
1105
1151
  assertion_checks(resp.variation_descriptor, coding_dna_deletion, q)
1106
1152
 
1107
1153
 
1154
+ @pytest.mark.asyncio
1155
+ async def test_genomic_deletion(test_handler, genomic_deletion):
1156
+ """Test that genomic deletion normalizes correctly"""
1157
+ # CA915940709
1158
+ q = "NC_000003.12:g.10146527_10146528del"
1159
+ resp1 = await test_handler.normalize(q)
1160
+ assertion_checks(resp1.variation_descriptor, genomic_deletion, q)
1161
+
1162
+ resp2 = await test_handler.normalize("NC_000003.12:g.10146527_10146528delCT")
1163
+ assert resp1.variation_descriptor.variation.id == \
1164
+ resp2.variation_descriptor.variation.id
1165
+
1166
+ # incorrect deleted sequence
1167
+ resp = await test_handler.normalize("NC_000003.12:g.10146527_10146528delCC")
1168
+ assert not resp.variation_descriptor
1169
+
1170
+
1108
1171
  @pytest.mark.asyncio
1109
1172
  async def test_protein_insertion(test_handler, protein_insertion):
1110
1173
  """Test that protein insertion normalizes correctly."""
@@ -1214,6 +1277,21 @@ async def test_valid_queries(test_handler):
1214
1277
  assert resp.variation_descriptor.variation.id == \
1215
1278
  "ga4gh:VA.M0oqztcpIsGcwxeOfxR32Q9_2Xvpu4BE"
1216
1279
 
1280
+ resp = await test_handler.normalize("NG_008212.3:g.5426_5445del")
1281
+ assert resp.variation_descriptor
1282
+
1283
+ # Test ambiguous IUPAC code N
1284
+ for q in [
1285
+ "NC_000017.10:g.7572948_7572949insTTTTTTTTTNNNNN",
1286
+ "NC_000007.13:g.140453136A>N",
1287
+ "NC_000007.13:g.140453135_140453136delinsATN",
1288
+ "NM_007294.3:c.2902_2903insTCN",
1289
+ "NM_004333.4:c.1799T>N",
1290
+ "NM_001289937.1:c.2326_2327delinsCTN"
1291
+ ]:
1292
+ resp = await test_handler.normalize(q)
1293
+ assert resp.variation_descriptor, q
1294
+
1217
1295
 
1218
1296
  @pytest.mark.asyncio
1219
1297
  async def test_no_matches(test_handler):