opencloning 0.2.7.1__tar.gz → 0.2.7.3__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 (45) hide show
  1. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/PKG-INFO +1 -1
  2. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/pyproject.toml +1 -1
  3. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/ncbi_requests.py +4 -2
  4. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/primer_design.py +22 -3
  5. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/LICENSE +0 -0
  6. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/README.md +0 -0
  7. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/__init__.py +0 -0
  8. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/api_config_utils.py +0 -0
  9. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/app_settings.py +0 -0
  10. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/assembly2.py +0 -0
  11. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/EBIC/__init__.py +0 -0
  12. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/EBIC/barcode.gb +0 -0
  13. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/EBIC/common_plasmid.gb +0 -0
  14. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/EBIC/example.py +0 -0
  15. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/EBIC/primer_design_settings.py +0 -0
  16. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/__init__.py +0 -0
  17. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/index.html +0 -0
  18. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/pombe/__init__.py +0 -0
  19. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/pombe/index.html +0 -0
  20. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/pombe/pombe_all.sh +0 -0
  21. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/pombe/pombe_clone.py +0 -0
  22. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/pombe/pombe_gather.py +0 -0
  23. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/pombe/pombe_get_primers.py +0 -0
  24. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/pombe/pombe_summary.py +0 -0
  25. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/ziqiang_et_al2024/__init__.py +0 -0
  26. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/ziqiang_et_al2024/index.html +0 -0
  27. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/batch_cloning/ziqiang_et_al2024/ziqiang_et_al2024.json +0 -0
  28. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/dna_functions.py +0 -0
  29. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/dna_utils.py +0 -0
  30. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/ebic/__init__.py +0 -0
  31. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/ebic/primer_design.py +0 -0
  32. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/ebic/primer_design_settings.py +0 -0
  33. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/endpoints/annotation.py +0 -0
  34. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/endpoints/assembly.py +0 -0
  35. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/endpoints/external_import.py +0 -0
  36. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/endpoints/no_assembly.py +0 -0
  37. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/endpoints/no_input.py +0 -0
  38. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/endpoints/other.py +0 -0
  39. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/endpoints/primer_design.py +0 -0
  40. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/gateway.py +0 -0
  41. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/get_router.py +0 -0
  42. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/main.py +0 -0
  43. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/pydantic_models.py +0 -0
  44. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/request_examples.py +0 -0
  45. {opencloning-0.2.7.1 → opencloning-0.2.7.3}/src/opencloning/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: opencloning
3
- Version: 0.2.7.1
3
+ Version: 0.2.7.3
4
4
  Summary: Backend of OpenCloning, a web application to generate molecular cloning strategies in json format, and share them with others.
5
5
  License: MIT
6
6
  Author: Manuel Lera-Ramirez
@@ -3,7 +3,7 @@ authors = ["Manuel Lera-Ramirez <manulera14@gmail.com>"]
3
3
  description = "Backend of OpenCloning, a web application to generate molecular cloning strategies in json format, and share them with others."
4
4
  license = "MIT"
5
5
  name = "opencloning"
6
- version = "v0.2.7.1"
6
+ version = "v0.2.7.3"
7
7
  package-mode = true
8
8
  readme = "README.md"
9
9
  repository = "https://github.com/manulera/OpenCloning_backend"
@@ -32,9 +32,11 @@ async def get_sequence_accessions_from_assembly_accession(assembly_accession: st
32
32
  resp = await async_get(url, headers=headers)
33
33
  data = resp.json()
34
34
  if 'reports' in data:
35
- return [report['refseq_accession'] for report in data['reports']] + [
36
- report['genbank_accession'] for report in data['reports']
35
+ refseq_accessions = [report['refseq_accession'] for report in data['reports'] if 'refseq_accession' in report]
36
+ genbank_accessions = [
37
+ report['genbank_accession'] for report in data['reports'] if 'genbank_accession' in report
37
38
  ]
39
+ return refseq_accessions + genbank_accessions
38
40
  elif 'total_count' in data:
39
41
  raise HTTPException(400, f'No sequence accessions linked, see {url}')
40
42
  else:
@@ -32,11 +32,16 @@ def homologous_recombination_primers(
32
32
  target_tm: float,
33
33
  spacers: list[str] | None = None,
34
34
  tm_func: Callable[[str], float] = primer3_calc_tm,
35
+ estimate_function: Callable[[str], float] | None = None,
35
36
  ) -> tuple[str, str]:
36
37
 
37
38
  fragment2amplify = pcr_loc.extract(pcr_seq)
38
39
  amplicon = primer_design(
39
- fragment2amplify, limit=minimal_hybridization_length, target_tm=target_tm, tm_func=tm_func
40
+ fragment2amplify,
41
+ limit=minimal_hybridization_length,
42
+ target_tm=target_tm,
43
+ tm_func=tm_func,
44
+ estimate_function=estimate_function,
40
45
  )
41
46
 
42
47
  if insert_forward:
@@ -87,10 +92,17 @@ def gibson_assembly_primers(
87
92
  circular: bool,
88
93
  spacers: list[str] | None = None,
89
94
  tm_func: Callable[[str], float] = primer3_calc_tm,
95
+ estimate_function: Callable[[str], float] | None = None,
90
96
  ) -> list[PrimerModel]:
91
97
 
92
98
  initial_amplicons = [
93
- primer_design(template, limit=minimal_hybridization_length, target_tm=target_tm, tm_func=tm_func)
99
+ primer_design(
100
+ template,
101
+ limit=minimal_hybridization_length,
102
+ target_tm=target_tm,
103
+ tm_func=tm_func,
104
+ estimate_function=estimate_function,
105
+ )
94
106
  for template in templates
95
107
  ]
96
108
 
@@ -146,6 +158,7 @@ def simple_pair_primers(
146
158
  left_enzyme_inverted: bool = False,
147
159
  right_enzyme_inverted: bool = False,
148
160
  tm_func: Callable[[str], float] = primer3_calc_tm,
161
+ estimate_function: Callable[[str], float] | None = None,
149
162
  ) -> tuple[PrimerModel, PrimerModel]:
150
163
  """
151
164
  Design primers to amplify a DNA fragment, if left_enzyme or right_enzyme are set, the primers will be designed
@@ -158,7 +171,13 @@ def simple_pair_primers(
158
171
  if len(spacers) != 2:
159
172
  raise ValueError("The 'spacers' list must contain exactly two elements.")
160
173
 
161
- amplicon = primer_design(template, limit=minimal_hybridization_length, target_tm=target_tm, tm_func=tm_func)
174
+ amplicon = primer_design(
175
+ template,
176
+ limit=minimal_hybridization_length,
177
+ target_tm=target_tm,
178
+ tm_func=tm_func,
179
+ estimate_function=estimate_function,
180
+ )
162
181
  fwd_primer, rvs_primer = amplicon.primers()
163
182
 
164
183
  if fwd_primer is None or rvs_primer is None:
File without changes
File without changes