loqusdb 2.7.20__tar.gz → 2.7.22__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 (95) hide show
  1. {loqusdb-2.7.20 → loqusdb-2.7.22}/PKG-INFO +1 -1
  2. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/__init__.py +1 -1
  3. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/build_models/profile_variant.py +1 -1
  4. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/build_models/variant.py +2 -2
  5. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/commands/export.py +7 -3
  6. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/commands/view.py +46 -11
  7. {loqusdb-2.7.20 → loqusdb-2.7.22}/pyproject.toml +1 -1
  8. {loqusdb-2.7.20 → loqusdb-2.7.22}/LICENSE +0 -0
  9. {loqusdb-2.7.20 → loqusdb-2.7.22}/README.md +0 -0
  10. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/__main__.py +0 -0
  11. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/build_models/__init__.py +0 -0
  12. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/build_models/case.py +0 -0
  13. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/commands/__init__.py +0 -0
  14. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/commands/annotate.py +0 -0
  15. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/commands/cli.py +0 -0
  16. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/commands/delete.py +0 -0
  17. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/commands/identity.py +0 -0
  18. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/commands/load.py +0 -0
  19. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/commands/load_profile.py +0 -0
  20. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/commands/migrate.py +0 -0
  21. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/commands/restore.py +0 -0
  22. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/commands/update.py +0 -0
  23. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/commands/wipe.py +0 -0
  24. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/constants/__init__.py +0 -0
  25. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/exceptions/__init__.py +0 -0
  26. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/exceptions/case.py +0 -0
  27. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/exceptions/profile.py +0 -0
  28. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/exceptions/vcf.py +0 -0
  29. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/log.py +0 -0
  30. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/models/__init__.py +0 -0
  31. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/models/case.py +0 -0
  32. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/models/identity.py +0 -0
  33. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/models/profile_variant.py +0 -0
  34. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/models/variant.py +0 -0
  35. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/plugins/__init__.py +0 -0
  36. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/plugins/mongo/__init__.py +0 -0
  37. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/plugins/mongo/adapter.py +0 -0
  38. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/plugins/mongo/case.py +0 -0
  39. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/plugins/mongo/profile_variant.py +0 -0
  40. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/plugins/mongo/structural_variant.py +0 -0
  41. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/plugins/mongo/variant.py +0 -0
  42. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/resources/__init__.py +0 -0
  43. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/resources/loqusdb.20181005.gz +0 -0
  44. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/resources/maf_50_sites_GRCh37.vcf.gz +0 -0
  45. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/resources/maf_50_sites_GRCh38.vcf.gz +0 -0
  46. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/utils/__init__.py +0 -0
  47. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/utils/annotate.py +0 -0
  48. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/utils/case.py +0 -0
  49. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/utils/delete.py +0 -0
  50. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/utils/load.py +0 -0
  51. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/utils/migrate.py +0 -0
  52. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/utils/profiling.py +0 -0
  53. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/utils/update.py +0 -0
  54. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/utils/variant.py +0 -0
  55. {loqusdb-2.7.20 → loqusdb-2.7.22}/loqusdb/utils/vcf.py +0 -0
  56. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/build_models/test_build_case.py +0 -0
  57. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/build_models/test_build_variant.py +0 -0
  58. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/build_models/test_is_greater.py +0 -0
  59. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/commands/test_export.py +0 -0
  60. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/commands/test_identity.py +0 -0
  61. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/commands/test_view.py +0 -0
  62. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/conftest.py +0 -0
  63. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/fixtures/643594.clinical.SV.vcf +0 -0
  64. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/fixtures/643594.clinical.vcf.gz +0 -0
  65. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/fixtures/double_variant.vcf +0 -0
  66. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/fixtures/funny_trio.ped +0 -0
  67. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/fixtures/profile_snv.vcf +0 -0
  68. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/fixtures/recessive_trio.ped +0 -0
  69. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/fixtures/test.SV.vcf +0 -0
  70. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/fixtures/test.vcf +0 -0
  71. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/fixtures/test.vcf.gz +0 -0
  72. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/fixtures/test.vcf.gz.tbi +0 -0
  73. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/fixtures/unsorted.vcf +0 -0
  74. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/functional/test_cli.py +0 -0
  75. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/plugins/mongo/test_case_operations.py +0 -0
  76. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/plugins/mongo/test_connect.py +0 -0
  77. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/plugins/mongo/test_flask_extension.py +0 -0
  78. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/plugins/mongo/test_get_sv.py +0 -0
  79. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/plugins/mongo/test_load_svs.py +0 -0
  80. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/plugins/mongo/test_variant_operations.py +0 -0
  81. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/utils/test_case.py +0 -0
  82. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/utils/test_delete.py +0 -0
  83. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/utils/test_delete_family.py +0 -0
  84. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/utils/test_delete_variant.py +0 -0
  85. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/utils/test_get_family.py +0 -0
  86. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/utils/test_load_database.py +0 -0
  87. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/utils/test_load_family.py +0 -0
  88. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/utils/test_load_variants.py +0 -0
  89. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/utils/test_migrate.py +0 -0
  90. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/utils/test_profiling.py +0 -0
  91. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/vcf_tools/test_check_par.py +0 -0
  92. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/vcf_tools/test_check_vcf.py +0 -0
  93. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/vcf_tools/test_format_sv_variant.py +0 -0
  94. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/vcf_tools/test_format_variant.py +0 -0
  95. {loqusdb-2.7.20 → loqusdb-2.7.22}/tests/vcf_tools/test_vcf.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: loqusdb
3
- Version: 2.7.20
3
+ Version: 2.7.22
4
4
  Summary: A simple observation count database
5
5
  License: MIT
6
6
  Author: Your Name
@@ -4,7 +4,7 @@ from pymongo import ASCENDING, IndexModel
4
4
 
5
5
  logger = logging.getLogger(__name__)
6
6
 
7
- __version__ = "2.7.20"
7
+ __version__ = "2.7.22"
8
8
 
9
9
  INDEXES = {
10
10
  "variant": [
@@ -37,7 +37,7 @@ def build_profile_variant(variant, keep_chr_prefix=None):
37
37
 
38
38
  chrom = variant.CHROM
39
39
  if not keep_chr_prefix:
40
- if chrom.startswith(("chr", "CHR", "Chr")):
40
+ if chrom.lower().startswith("chr"):
41
41
  chrom = chrom[3:]
42
42
 
43
43
  pos = int(variant.POS)
@@ -99,7 +99,7 @@ def get_coords(variant, keep_chr_prefix, genome_build):
99
99
  }
100
100
  chrom = variant.CHROM
101
101
  if not keep_chr_prefix:
102
- if chrom.startswith(("chr", "CHR", "Chr")):
102
+ if chrom.lower().startswith("chr"):
103
103
  chrom = chrom[3:]
104
104
  coordinates["chrom"] = chrom
105
105
  end_chrom = chrom
@@ -121,7 +121,7 @@ def get_coords(variant, keep_chr_prefix, genome_build):
121
121
  other_coordinates = alt.strip("ATCGN").strip("[]").split(":")
122
122
  end_chrom = other_coordinates[0]
123
123
  if not keep_chr_prefix:
124
- if end_chrom.startswith(("chr", "CHR", "Chr")):
124
+ if chrom.lower().startswith("chr"):
125
125
  end_chrom = end_chrom[3:]
126
126
 
127
127
  end = int(other_coordinates[1])
@@ -56,9 +56,13 @@ def export(ctx, outfile, variant_type, freq):
56
56
  if genome == GRCH37 and chrom in existing_chromosomes:
57
57
  ordered_chromosomes.append(chrom)
58
58
  existing_chromosomes.remove(chrom)
59
- elif genome == GRCH38 and chrom[3:] in existing_chromosomes:
60
- ordered_chromosomes.append(chrom)
61
- existing_chromosomes.remove(chrom)
59
+ elif genome == GRCH38:
60
+ if chrom[3:] in existing_chromosomes:
61
+ ordered_chromosomes.append(chrom[3:])
62
+ existing_chromosomes.remove(chrom[3:])
63
+ elif chrom in existing_chromosomes:
64
+ ordered_chromosomes.append(chrom)
65
+ existing_chromosomes.remove(chrom)
62
66
  for chrom in existing_chromosomes:
63
67
  ordered_chromosomes.append(chrom)
64
68
 
@@ -117,16 +117,40 @@ def variants(
117
117
  sv_cases = True
118
118
  nr_cases = adapter.nr_cases(snv_cases=snv_cases, sv_cases=sv_cases)
119
119
 
120
+ if chromosome:
121
+ if chromosome.startswith("chr"):
122
+ chromosomes = [chromosome, chromosome[3:]]
123
+ elif not chromosome.startswith("chr"):
124
+ chromosomes = [chromosome, "chr" + chromosome]
125
+
126
+ if end_chromosome:
127
+ if end_chromosome.startswith("chr"):
128
+ end_chromosomes = [end_chromosome, end_chromosome[3:]]
129
+ elif not end_chromosome.startswith("chr"):
130
+ end_chromosomes = [end_chromosome, "chr" + end_chromosome]
131
+ else:
132
+ end_chromosomes = [None, None]
133
+
120
134
  if variant_id:
121
135
  if variant_type == "sv":
122
136
  variant_query = {
123
- "chrom": chromosome,
124
- "end_chrom": end_chromosome or chromosome,
137
+ "chrom": chromosomes[0],
138
+ "end_chrom": end_chromosomes[0] or chromosomes[0],
125
139
  "sv_type": sv_type,
126
140
  "pos": start,
127
141
  "end": end,
128
142
  }
129
- variant = adapter.get_structural_variant(variant_query)
143
+ variant = list(adapter.get_structural_variant(variant_query))
144
+ if len(variant) == 0:
145
+ variant_query = {
146
+ "chrom": chromosomes[1],
147
+ "end_chrom": end_chromosomes[1] or chromosomes[1],
148
+ "sv_type": sv_type,
149
+ "pos": start,
150
+ "end": end,
151
+ }
152
+ variant = adapter.get_structural_variant(variant_query)
153
+
130
154
  else:
131
155
  variant = adapter.get_variant({"_id": variant_id})
132
156
 
@@ -145,18 +169,29 @@ def variants(
145
169
 
146
170
  click.echo(variant)
147
171
  return
148
-
149
172
  if variant_type == "snv":
150
- result = adapter.get_variants(chromosome=chromosome, start=start, end=end)
173
+ result = list(adapter.get_variants(chromosome=chromosomes[0], start=start, end=end))
174
+ if len(result) == 0:
175
+ result = adapter.get_variants(chromosome=chromosomes[1], start=start, end=end)
151
176
  else:
152
177
  LOG.info("Search for svs")
153
- result = adapter.get_sv_variants(
154
- chromosome=chromosome,
155
- end_chromosome=end_chromosome,
156
- sv_type=sv_type,
157
- pos=start,
158
- end=end,
178
+ result = list(
179
+ adapter.get_sv_variants(
180
+ chromosome=chromosomes[0],
181
+ end_chromosome=end_chromosomes[0],
182
+ sv_type=sv_type,
183
+ pos=start,
184
+ end=end,
185
+ )
159
186
  )
187
+ if len(result) == 0:
188
+ result = adapter.get_sv_variants(
189
+ chromosome=chromosomes[1],
190
+ end_chromosome=end_chromosomes[1],
191
+ sv_type=sv_type,
192
+ pos=start,
193
+ end=end,
194
+ )
160
195
 
161
196
  if to_json:
162
197
  json.dumps(variant)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "loqusdb"
3
- version = "2.7.20"
3
+ version = "2.7.22"
4
4
  description = "A simple observation count database"
5
5
  authors = ["Your Name <you@example.com>"]
6
6
  license = "MIT"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes