opencloning 0.4.4__tar.gz → 0.4.6__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.
- {opencloning-0.4.4 → opencloning-0.4.6}/PKG-INFO +2 -2
- {opencloning-0.4.4 → opencloning-0.4.6}/pyproject.toml +2 -2
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/app_settings.py +1 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/endpoints/external_import.py +20 -1
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/http_client.py +0 -1
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/pydantic_models.py +5 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/LICENSE +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/README.md +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/__init__.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/_version.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/api_config_utils.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/EBIC/__init__.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/EBIC/barcode.gb +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/EBIC/common_plasmid.gb +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/EBIC/example.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/EBIC/primer_design_settings.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/__init__.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/index.html +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/pombe/__init__.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/pombe/index.html +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/pombe/pombe_clone.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/pombe/pombe_gather.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/pombe/pombe_get_primers.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/pombe/pombe_summary.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/ziqiang_et_al2024/__init__.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/ziqiang_et_al2024/index.html +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/ziqiang_et_al2024/ziqiang_et_al2024.json +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/bug_fixing/README.md +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/bug_fixing/__init__.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/bug_fixing/backend_v0_3.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/cre_lox.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/dna_functions.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/dna_utils.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/ebic/__init__.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/ebic/primer_design.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/ebic/primer_design_settings.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/endpoints/annotation.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/endpoints/assembly.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/endpoints/no_assembly.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/endpoints/no_input.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/endpoints/other.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/endpoints/primer_design.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/gateway.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/get_router.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/main.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/ncbi_requests.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/primer_design.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/request_examples.py +0 -0
- {opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: opencloning
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.6
|
|
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
|
License-File: LICENSE
|
|
@@ -17,7 +17,7 @@ Requires-Dist: beautifulsoup4 (>=4.11.1,<5.0.0)
|
|
|
17
17
|
Requires-Dist: biopython (>=1.85,<2.0)
|
|
18
18
|
Requires-Dist: fastapi
|
|
19
19
|
Requires-Dist: httpx (>=0.28.1,<0.29.0)
|
|
20
|
-
Requires-Dist: opencloning-linkml (==0.4.
|
|
20
|
+
Requires-Dist: opencloning-linkml (==0.4.4)
|
|
21
21
|
Requires-Dist: openpyxl (>=3.1.5,<4.0.0)
|
|
22
22
|
Requires-Dist: packaging (>=25.0,<26.0)
|
|
23
23
|
Requires-Dist: pairwise-alignments-to-msa (>=0.1.1,<0.2.0)
|
|
@@ -8,7 +8,7 @@ authors = ["Manuel Lera-Ramirez <manulera14@gmail.com>"]
|
|
|
8
8
|
description = "Backend of OpenCloning, a web application to generate molecular cloning strategies in json format, and share them with others."
|
|
9
9
|
license = "MIT"
|
|
10
10
|
name = "opencloning"
|
|
11
|
-
version = "0.4.
|
|
11
|
+
version = "0.4.6"
|
|
12
12
|
package-mode = true
|
|
13
13
|
readme = "README.md"
|
|
14
14
|
repository = "https://github.com/manulera/OpenCloning_backend"
|
|
@@ -26,7 +26,7 @@ pydantic = "^2.7.1"
|
|
|
26
26
|
pandas = "^2.2.3"
|
|
27
27
|
openpyxl = "^3.1.5"
|
|
28
28
|
pyyaml = "^6.0.2"
|
|
29
|
-
opencloning-linkml = "0.4.
|
|
29
|
+
opencloning-linkml = "0.4.4"
|
|
30
30
|
primer3-py = "2.2.0"
|
|
31
31
|
biopython = "^1.85"
|
|
32
32
|
packaging = "^25.0"
|
|
@@ -24,6 +24,7 @@ from ..pydantic_models import (
|
|
|
24
24
|
SequenceFileFormat,
|
|
25
25
|
SEVASource,
|
|
26
26
|
SequenceLocationStr,
|
|
27
|
+
OpenDNACollectionsSource,
|
|
27
28
|
)
|
|
28
29
|
from ..dna_functions import (
|
|
29
30
|
format_sequence_genbank,
|
|
@@ -234,7 +235,8 @@ def repository_id_http_error_handler(exception: HTTPError, source: RepositoryIdS
|
|
|
234
235
|
| list[BenchlingUrlSource]
|
|
235
236
|
| list[EuroscarfSource]
|
|
236
237
|
| list[WekWikGeneIdSource]
|
|
237
|
-
| list[SEVASource]
|
|
238
|
+
| list[SEVASource]
|
|
239
|
+
| list[OpenDNACollectionsSource],
|
|
238
240
|
...,
|
|
239
241
|
),
|
|
240
242
|
sequences=(list[TextFileSequence], ...),
|
|
@@ -249,6 +251,7 @@ async def get_from_repository_id(
|
|
|
249
251
|
| EuroscarfSource
|
|
250
252
|
| WekWikGeneIdSource
|
|
251
253
|
| SEVASource
|
|
254
|
+
| OpenDNACollectionsSource
|
|
252
255
|
),
|
|
253
256
|
):
|
|
254
257
|
return RedirectResponse(f'/repository_id/{source.repository_name}', status_code=307)
|
|
@@ -384,6 +387,22 @@ async def get_from_repository_id_igem(source: IGEMSource):
|
|
|
384
387
|
repository_id_http_error_handler(exception, source)
|
|
385
388
|
|
|
386
389
|
|
|
390
|
+
@router.post(
|
|
391
|
+
'/repository_id/open_dna_collections',
|
|
392
|
+
response_model=create_model(
|
|
393
|
+
'OpenDNACollectionsResponse',
|
|
394
|
+
sources=(list[OpenDNACollectionsSource], ...),
|
|
395
|
+
sequences=(list[TextFileSequence], ...),
|
|
396
|
+
),
|
|
397
|
+
)
|
|
398
|
+
async def get_from_repository_id_open_dna_collections(source: OpenDNACollectionsSource):
|
|
399
|
+
try:
|
|
400
|
+
dseq = (await get_sequences_from_file_url(source.sequence_file_url))[0]
|
|
401
|
+
return {'sequences': [format_sequence_genbank(dseq, source.output_name)], 'sources': [source]}
|
|
402
|
+
except HTTPError as exception:
|
|
403
|
+
repository_id_http_error_handler(exception, source)
|
|
404
|
+
|
|
405
|
+
|
|
387
406
|
@router.post(
|
|
388
407
|
'/genome_coordinates',
|
|
389
408
|
response_model=create_model(
|
|
@@ -22,7 +22,6 @@ class AllowedExternalUrlsTransport(AsyncHTTPTransport):
|
|
|
22
22
|
async def handle_async_request(self, request: Request) -> Response:
|
|
23
23
|
if any(str(request.url).startswith(url) for url in allowed_external_urls):
|
|
24
24
|
return await super().handle_async_request(request)
|
|
25
|
-
|
|
26
25
|
raise HTTPError(request.url, 403, f'Request to {request.url} is not allowed', None, None)
|
|
27
26
|
|
|
28
27
|
|
|
@@ -50,6 +50,7 @@ from opencloning_linkml.datamodel import (
|
|
|
50
50
|
CreLoxRecombinationSource as _CreLoxRecombinationSource,
|
|
51
51
|
InVivoAssemblySource as _InVivoAssemblySource,
|
|
52
52
|
SourceInput as _SourceInput,
|
|
53
|
+
OpenDNACollectionsSource as _OpenDNACollectionsSource,
|
|
53
54
|
)
|
|
54
55
|
from pydna.assembly2 import (
|
|
55
56
|
edge_representation2subfragment_representation,
|
|
@@ -183,6 +184,10 @@ class IGEMSource(SourceCommonClass, _IGEMSource):
|
|
|
183
184
|
return self
|
|
184
185
|
|
|
185
186
|
|
|
187
|
+
class OpenDNACollectionsSource(SourceCommonClass, _OpenDNACollectionsSource):
|
|
188
|
+
pass
|
|
189
|
+
|
|
190
|
+
|
|
186
191
|
class SEVASource(SourceCommonClass, _SEVASource):
|
|
187
192
|
pass
|
|
188
193
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/EBIC/common_plasmid.gb
RENAMED
|
File without changes
|
|
File without changes
|
{opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/EBIC/primer_design_settings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/pombe/pombe_get_primers.py
RENAMED
|
File without changes
|
{opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/pombe/pombe_summary.py
RENAMED
|
File without changes
|
{opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/ziqiang_et_al2024/__init__.py
RENAMED
|
File without changes
|
{opencloning-0.4.4 → opencloning-0.4.6}/src/opencloning/batch_cloning/ziqiang_et_al2024/index.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|