varvamp 1.1__py3-none-any.whl → 1.1.2__py3-none-any.whl

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.
varvamp/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """Tool to design amplicons for highly variable virusgenomes"""
2
2
  _program = "varvamp"
3
- __version__ = "1.1"
3
+ __version__ = "1.1.2"
varvamp/command.py CHANGED
@@ -180,8 +180,11 @@ def shared_workflow(args, log_file):
180
180
  # estimate threshold or number of ambiguous bases if args were not supplied
181
181
  if args.threshold is None or args.n_ambig is None:
182
182
  args.threshold, args.n_ambig = param_estimation.get_parameters(preprocessed_alignment, args, log_file)
183
- if args.mode == "qpcr" and args.n_ambig >= 1 and args.pn_ambig is None:
184
- args.pn_ambig = args.n_ambig - 1
183
+ if args.mode == "qpcr" and args.pn_ambig is None:
184
+ if args.n_ambig == 0:
185
+ args.pn_ambig = 0
186
+ if args.n_ambig > 0:
187
+ args.pn_ambig = args.n_ambig - 1
185
188
  with open(log_file, "a") as f:
186
189
  print(f"Automatic parameter selection set -pa {args.pn_ambig}.", file=f)
187
190
 
varvamp/scripts/blast.py CHANGED
@@ -58,7 +58,7 @@ def create_BLAST_query_qpcr(qpcr_scheme_candidates, data_dir):
58
58
  query_path = os.path.join(data_dir, "BLAST_query.fasta")
59
59
  with open(query_path, "w") as query:
60
60
  for amp in qpcr_scheme_candidates:
61
- for primer_type in ["probe", "left", "right"]:
61
+ for primer_type in ["PROBE", "LEFT", "RIGHT"]:
62
62
  name = f"{primer_type}_{qpcr_scheme_candidates[amp][primer_type][1]}_{qpcr_scheme_candidates[amp][primer_type][2]}"
63
63
  if name in already_written:
64
64
  continue
@@ -174,7 +174,7 @@ def predict_non_specific_amplicons_worker(amp, blast_df, max_length, mode):
174
174
  primers = [data[2], data[3]]
175
175
  elif mode == "qpcr":
176
176
  primers = []
177
- for primer_type in ["probe", "left", "right"]:
177
+ for primer_type in ["PROBE", "LEFT", "RIGHT"]:
178
178
  primers.append(f"{primer_type}_{data[primer_type][1]}_{data[primer_type][2]}")
179
179
  # subset df for primers
180
180
  df_amp_primers = blast_df[blast_df["query"].isin(primers)]
@@ -173,7 +173,7 @@ def raise_arg_errors(args, log_file):
173
173
  if args.mode == "qpcr":
174
174
  if args.pn_ambig < 0:
175
175
  raise_error(
176
- "number of ambiguous characters in the qPCR probe cannot be 0.",
176
+ "number of ambiguous characters in the qPCR probe cannot be negative.",
177
177
  log_file,
178
178
  exit=True
179
179
  )
@@ -283,6 +283,7 @@ def confirm_config(args, log_file):
283
283
  "QPRIMER_DIFF",
284
284
  "QPROBE_TEMP_DIFF",
285
285
  "QPROBE_DISTANCE",
286
+ "END_OVERLAP",
286
287
  "QAMPLICON_LENGTH",
287
288
  "QAMPLICON_GC",
288
289
  "QAMPLICON_DEL_CUTOFF"
@@ -379,6 +380,7 @@ def confirm_config(args, log_file):
379
380
  ("max base penalty", config.PRIMER_MAX_BASE_PENALTY),
380
381
  ("primer permutation penalty", config.PRIMER_PERMUTATION_PENALTY),
381
382
  ("qpcr flanking primer difference", config.QPRIMER_DIFF),
383
+ ("probe and primer end overlap", config.END_OVERLAP),
382
384
  ("qpcr deletion size still considered for deltaG calculation", config.QAMPLICON_DEL_CUTOFF),
383
385
  ("maximum difference between primer and blast db", config.BLAST_MAX_DIFF),
384
386
  ("multiplier of the maximum length for non-specific amplicons", config.BLAST_SIZE_MULTI),
@@ -350,9 +350,9 @@ def create_primer_dictionary(primer_candidates, direction):
350
350
 
351
351
  for primer in primer_candidates:
352
352
  if direction == "+":
353
- direction_name = "FW"
353
+ direction_name = "LEFT"
354
354
  elif direction == "-":
355
- direction_name = "RV"
355
+ direction_name = "RIGHT"
356
356
  primer_name = f"{direction_name}_{primer_idx}"
357
357
  primer_dict[primer_name] = primer
358
358
  primer_idx += 1
varvamp/scripts/qpcr.py CHANGED
@@ -82,7 +82,7 @@ def get_qpcr_probes(kmers, ambiguous_consensus, alignment_cleaned):
82
82
  # create probe dictionary
83
83
  if "+" in direction:
84
84
  if filter_probe_direction_dependent(kmer[0]):
85
- probe_name = f"PROBE_{probe_idx}_FW"
85
+ probe_name = f"PROBE_{probe_idx}_LEFT"
86
86
  three_prime_penalty = primers.calc_3_prime_penalty("+", per_base_mismatches)
87
87
  probe_candidates[probe_name] = [kmer[0], kmer[1], kmer[2],
88
88
  base_penalty + permutation_penalty + three_prime_penalty,
@@ -90,7 +90,7 @@ def get_qpcr_probes(kmers, ambiguous_consensus, alignment_cleaned):
90
90
  probe_idx += 1
91
91
  if "-" in direction:
92
92
  if filter_probe_direction_dependent(primers.rev_complement(kmer[0])):
93
- probe_name = f"PROBE_{probe_idx}_RV"
93
+ probe_name = f"PROBE_{probe_idx}_RIGHT"
94
94
  three_prime_penalty = primers.calc_3_prime_penalty("-", per_base_mismatches)
95
95
  probe_candidates[probe_name] = [primers.rev_complement(kmer[0]), kmer[1], kmer[2],
96
96
  base_penalty + permutation_penalty + three_prime_penalty,
@@ -208,13 +208,13 @@ def assess_amplicons(left_subset, right_subset, qpcr_probes, probe, majority_con
208
208
  if not hardfilter_amplicon(majority_consensus, left_primer, right_primer):
209
209
  continue
210
210
  # ... the probe is close enough to the primer on the same strand
211
- if "FW" in probe:
211
+ if "LEFT" in probe:
212
212
  if not qpcr_probes[probe][1] in range(
213
213
  left_primer[2] + config.QPROBE_DISTANCE[0],
214
214
  left_primer[2] + config.QPROBE_DISTANCE[1] + 1
215
215
  ):
216
216
  continue
217
- elif "RV" in probe:
217
+ elif "RIGHT" in probe:
218
218
  if not right_primer[1] in range(
219
219
  qpcr_probes[probe][2] + config.QPROBE_DISTANCE[0],
220
220
  qpcr_probes[probe][2] + config.QPROBE_DISTANCE[1] + 1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: varvamp
3
- Version: 1.1
3
+ Version: 1.1.2
4
4
  Summary: Variable VirusAMPlicons (varVAMP) is a tool to design primers for highly diverse viruses
5
5
  Home-page: https://github.com/jonas-fuchs/varVAMP
6
6
  Author: Dr. Jonas Fuchs
@@ -0,0 +1,21 @@
1
+ varvamp/__init__.py,sha256=K5ccRm45N-jlwv4_LFmzwr4rl9NgmWICL5kNY_00-RE,107
2
+ varvamp/__main__.py,sha256=9R3mbX2_Q5LByPx8WLoTbvZ-G2dbRSMpDlgze0Wm5Fc,98
3
+ varvamp/command.py,sha256=rCP0k7wb2vbnlSKwTRkla4_pGQBl972EGmyWRBjfKXA,18516
4
+ varvamp/scripts/__init__.py,sha256=DtRsgfnA60BvccKMuD-Ueo1UpxaeANUfIWxGi1xPcV0,46
5
+ varvamp/scripts/alignment.py,sha256=w2I7BnaUt_rh1EaDQaU9Q_dmL_q019NtnaC8YMccOgM,7317
6
+ varvamp/scripts/blast.py,sha256=029mOX07f6l_czDrj_OKH1KKnlfgjx2eZ7MNRykIkAI,9705
7
+ varvamp/scripts/consensus.py,sha256=eU5eKU9iXyWeln2BW_LMPI8JiEq0_NXBI0jy4kMOvQg,3375
8
+ varvamp/scripts/default_config.py,sha256=FkZUiIy8McyFXRzd8UTTTVRPbWNS8Oxmye3i-WsyDWw,3876
9
+ varvamp/scripts/get_config.py,sha256=Kvg3YhttUbDeRxjKhfxLjI5JSKpPoiLSEYqcE6rT4Xk,2940
10
+ varvamp/scripts/logging.py,sha256=ftOrySTkh5y0dEXQSDMJHMjA7Q9myJv9EhRcb6SmERc,20624
11
+ varvamp/scripts/param_estimation.py,sha256=jpfmbjCFp23V07af3y1uO2dQZJiWLlyOBa11aMphkko,3694
12
+ varvamp/scripts/primers.py,sha256=IEOoccW5OKK8d2a0ZQ1L1CICZIzOqKfeZp5e8iE717I,13428
13
+ varvamp/scripts/qpcr.py,sha256=Oh1HUJ6QF3dvghS5LceUgZqC5UHNB1arOsxQVNa-WnY,14483
14
+ varvamp/scripts/regions.py,sha256=VgYAlZmkC3rT946yhAdxATi-YT4oGcEwAPa0BkkfWIg,3239
15
+ varvamp/scripts/reporting.py,sha256=CT_ZD9-73Di56zBHmaQ8Kr4VkWjqf8zgb0ohk8_8Puo,21338
16
+ varvamp/scripts/scheme.py,sha256=rHeigj-tYyLJgB4w5F5tXZA-kkXkpDZ-kKpdE1Elonk,15229
17
+ varvamp-1.1.2.dist-info/METADATA,sha256=FUi-1qMgSjFnwHZm-4RQbgHi4P46_DYUs7FfOS-B1xM,5149
18
+ varvamp-1.1.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
19
+ varvamp-1.1.2.dist-info/entry_points.txt,sha256=puzW-basyBexZT4JVRUfUEqobvFmEyfqRQaqFjp7rB0,49
20
+ varvamp-1.1.2.dist-info/top_level.txt,sha256=11oVwE3SBUB9aTmvpvEDru95Tc5GZqQikzzFjw2eVGc,8
21
+ varvamp-1.1.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,21 +0,0 @@
1
- varvamp/__init__.py,sha256=yXk-Pc_9lP6OKb_nKDf6v1kYmUk-XV6BGIsiiODP1WY,105
2
- varvamp/__main__.py,sha256=9R3mbX2_Q5LByPx8WLoTbvZ-G2dbRSMpDlgze0Wm5Fc,98
3
- varvamp/command.py,sha256=Zz605uDIUyipibYT95P1fG0RtVyEF6yIYmpKezP-QXA,18445
4
- varvamp/scripts/__init__.py,sha256=DtRsgfnA60BvccKMuD-Ueo1UpxaeANUfIWxGi1xPcV0,46
5
- varvamp/scripts/alignment.py,sha256=w2I7BnaUt_rh1EaDQaU9Q_dmL_q019NtnaC8YMccOgM,7317
6
- varvamp/scripts/blast.py,sha256=unkBLKRHv6v1BAsMyud47oTTW70SxAp2qAtFSbW3rqA,9705
7
- varvamp/scripts/consensus.py,sha256=eU5eKU9iXyWeln2BW_LMPI8JiEq0_NXBI0jy4kMOvQg,3375
8
- varvamp/scripts/default_config.py,sha256=FkZUiIy8McyFXRzd8UTTTVRPbWNS8Oxmye3i-WsyDWw,3876
9
- varvamp/scripts/get_config.py,sha256=Kvg3YhttUbDeRxjKhfxLjI5JSKpPoiLSEYqcE6rT4Xk,2940
10
- varvamp/scripts/logging.py,sha256=u6Dvh3qNObedMiRw6HgiJoY1B0UDNEhloN8508-1HrY,20528
11
- varvamp/scripts/param_estimation.py,sha256=jpfmbjCFp23V07af3y1uO2dQZJiWLlyOBa11aMphkko,3694
12
- varvamp/scripts/primers.py,sha256=Ys6sgOlPblgX05BNLWxySTXrmJ2HksDfu3v-WKugcBM,13423
13
- varvamp/scripts/qpcr.py,sha256=5j7jIkAIykwCGVVReC0oQn7TxcXD_sKqLTf2wpo6rws,14473
14
- varvamp/scripts/regions.py,sha256=VgYAlZmkC3rT946yhAdxATi-YT4oGcEwAPa0BkkfWIg,3239
15
- varvamp/scripts/reporting.py,sha256=CT_ZD9-73Di56zBHmaQ8Kr4VkWjqf8zgb0ohk8_8Puo,21338
16
- varvamp/scripts/scheme.py,sha256=rHeigj-tYyLJgB4w5F5tXZA-kkXkpDZ-kKpdE1Elonk,15229
17
- varvamp-1.1.dist-info/METADATA,sha256=Ggrco8P309OMt_-LeU56LL5YZk8asSKDSpM-K7MjkGI,5147
18
- varvamp-1.1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
19
- varvamp-1.1.dist-info/entry_points.txt,sha256=puzW-basyBexZT4JVRUfUEqobvFmEyfqRQaqFjp7rB0,49
20
- varvamp-1.1.dist-info/top_level.txt,sha256=11oVwE3SBUB9aTmvpvEDru95Tc5GZqQikzzFjw2eVGc,8
21
- varvamp-1.1.dist-info/RECORD,,