streptocad 1.0.0__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.
- streptocad-1.0.0/.gitignore +177 -0
- streptocad-1.0.0/HISTORY.rst +74 -0
- streptocad-1.0.0/LICENSE +21 -0
- streptocad-1.0.0/PKG-INFO +224 -0
- streptocad-1.0.0/README.md +191 -0
- streptocad-1.0.0/pyproject.toml +119 -0
- streptocad-1.0.0/streptocad/__init__.py +9 -0
- streptocad-1.0.0/streptocad/biopython_compat.py +23 -0
- streptocad-1.0.0/streptocad/cloning/__init__.py +5 -0
- streptocad-1.0.0/streptocad/cloning/cas3_plasmid_cloning.py +168 -0
- streptocad-1.0.0/streptocad/cloning/gibson_cloning.py +433 -0
- streptocad-1.0.0/streptocad/cloning/golden_gate_cloning.py +512 -0
- streptocad-1.0.0/streptocad/cloning/pcr_simulation.py +141 -0
- streptocad-1.0.0/streptocad/cloning/plasmid_processing.py +239 -0
- streptocad-1.0.0/streptocad/cloning/ssDNA_bridging.py +88 -0
- streptocad-1.0.0/streptocad/crispr/__init__.py +5 -0
- streptocad-1.0.0/streptocad/crispr/crispr_best.py +247 -0
- streptocad-1.0.0/streptocad/crispr/guideRNA_crispri.py +437 -0
- streptocad-1.0.0/streptocad/crispr/guideRNAcas3_9.py +662 -0
- streptocad-1.0.0/streptocad/experimental/__init__.py +1 -0
- streptocad-1.0.0/streptocad/experimental/cas12a/README.md +3 -0
- streptocad-1.0.0/streptocad/experimental/cas12a/__init__.py +1 -0
- streptocad-1.0.0/streptocad/experimental/cas12a/guideRNAcas12a_ttn.py +800 -0
- streptocad-1.0.0/streptocad/primers/__init__.py +5 -0
- streptocad-1.0.0/streptocad/primers/primer_analysis.py +111 -0
- streptocad-1.0.0/streptocad/primers/primer_generation.py +442 -0
- streptocad-1.0.0/streptocad/primers/tm.py +90 -0
- streptocad-1.0.0/streptocad/sequence_loading/__init__.py +1 -0
- streptocad-1.0.0/streptocad/sequence_loading/sequence_loading.py +237 -0
- streptocad-1.0.0/streptocad/teemi_functions.py +118 -0
- streptocad-1.0.0/streptocad/utils.py +639 -0
- streptocad-1.0.0/streptocad/wet_lab/__init__.py +5 -0
- streptocad-1.0.0/streptocad/wet_lab/lab_functions.py +118 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# Data
|
|
2
|
+
/data/
|
|
3
|
+
/notebooks/experiments/
|
|
4
|
+
|
|
5
|
+
# Mac OS-specific storage files
|
|
6
|
+
.DS_Store
|
|
7
|
+
|
|
8
|
+
# vim
|
|
9
|
+
*.swp
|
|
10
|
+
*.swo
|
|
11
|
+
|
|
12
|
+
## https://github.com/github/gitignore/blob/4488915eec0b3a45b5c63ead28f286819c0917de/Python.gitignore
|
|
13
|
+
|
|
14
|
+
# Byte-compiled / optimized / DLL files
|
|
15
|
+
__pycache__/
|
|
16
|
+
*.py[cod]
|
|
17
|
+
*$py.class
|
|
18
|
+
|
|
19
|
+
# C extensions
|
|
20
|
+
*.so
|
|
21
|
+
|
|
22
|
+
# Distribution / packaging
|
|
23
|
+
.Python
|
|
24
|
+
build/
|
|
25
|
+
develop-eggs/
|
|
26
|
+
dist/
|
|
27
|
+
downloads/
|
|
28
|
+
eggs/
|
|
29
|
+
.eggs/
|
|
30
|
+
lib/
|
|
31
|
+
lib64/
|
|
32
|
+
parts/
|
|
33
|
+
sdist/
|
|
34
|
+
var/
|
|
35
|
+
wheels/
|
|
36
|
+
share/python-wheels/
|
|
37
|
+
*.egg-info/
|
|
38
|
+
.installed.cfg
|
|
39
|
+
*.egg
|
|
40
|
+
MANIFEST
|
|
41
|
+
|
|
42
|
+
# PyInstaller
|
|
43
|
+
# Usually these files are written by a python script from a template
|
|
44
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
45
|
+
*.manifest
|
|
46
|
+
*.spec
|
|
47
|
+
|
|
48
|
+
# Installer logs
|
|
49
|
+
pip-log.txt
|
|
50
|
+
pip-delete-this-directory.txt
|
|
51
|
+
|
|
52
|
+
# Unit test / coverage reports
|
|
53
|
+
htmlcov/
|
|
54
|
+
.tox/
|
|
55
|
+
.nox/
|
|
56
|
+
.coverage
|
|
57
|
+
.coverage.*
|
|
58
|
+
.cache
|
|
59
|
+
nosetests.xml
|
|
60
|
+
coverage.xml
|
|
61
|
+
*.cover
|
|
62
|
+
*.py,cover
|
|
63
|
+
.hypothesis/
|
|
64
|
+
.pytest_cache/
|
|
65
|
+
cover/
|
|
66
|
+
|
|
67
|
+
# Translations
|
|
68
|
+
*.mo
|
|
69
|
+
*.pot
|
|
70
|
+
|
|
71
|
+
# Django stuff:
|
|
72
|
+
*.log
|
|
73
|
+
local_settings.py
|
|
74
|
+
db.sqlite3
|
|
75
|
+
db.sqlite3-journal
|
|
76
|
+
|
|
77
|
+
# Flask stuff:
|
|
78
|
+
instance/
|
|
79
|
+
.webassets-cache
|
|
80
|
+
|
|
81
|
+
# Scrapy stuff:
|
|
82
|
+
.scrapy
|
|
83
|
+
|
|
84
|
+
# MkDocs documentation
|
|
85
|
+
docs/site/
|
|
86
|
+
|
|
87
|
+
# PyBuilder
|
|
88
|
+
.pybuilder/
|
|
89
|
+
target/
|
|
90
|
+
|
|
91
|
+
# Jupyter Notebook
|
|
92
|
+
.ipynb_checkpoints
|
|
93
|
+
|
|
94
|
+
# IPython
|
|
95
|
+
profile_default/
|
|
96
|
+
ipython_config.py
|
|
97
|
+
|
|
98
|
+
# pyenv
|
|
99
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
100
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
101
|
+
# .python-version
|
|
102
|
+
|
|
103
|
+
# pipenv
|
|
104
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
105
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
106
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
107
|
+
# install all needed dependencies.
|
|
108
|
+
#Pipfile.lock
|
|
109
|
+
|
|
110
|
+
# poetry
|
|
111
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
112
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
113
|
+
# commonly ignored for libraries.
|
|
114
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
115
|
+
#poetry.lock
|
|
116
|
+
|
|
117
|
+
# pdm
|
|
118
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
119
|
+
#pdm.lock
|
|
120
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
121
|
+
# in version control.
|
|
122
|
+
# https://pdm.fming.dev/#use-with-ide
|
|
123
|
+
.pdm.toml
|
|
124
|
+
|
|
125
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
126
|
+
__pypackages__/
|
|
127
|
+
|
|
128
|
+
# Celery stuff
|
|
129
|
+
celerybeat-schedule
|
|
130
|
+
celerybeat.pid
|
|
131
|
+
|
|
132
|
+
# SageMath parsed files
|
|
133
|
+
*.sage.py
|
|
134
|
+
|
|
135
|
+
# Environments
|
|
136
|
+
.env
|
|
137
|
+
.venv
|
|
138
|
+
.uv-cache/
|
|
139
|
+
env/
|
|
140
|
+
venv/
|
|
141
|
+
ENV/
|
|
142
|
+
env.bak/
|
|
143
|
+
venv.bak/
|
|
144
|
+
|
|
145
|
+
# vs code
|
|
146
|
+
.vscode
|
|
147
|
+
|
|
148
|
+
# Spyder project settings
|
|
149
|
+
.spyderproject
|
|
150
|
+
.spyproject
|
|
151
|
+
|
|
152
|
+
# Rope project settings
|
|
153
|
+
.ropeproject
|
|
154
|
+
|
|
155
|
+
# mkdocs documentation
|
|
156
|
+
/site
|
|
157
|
+
|
|
158
|
+
# mypy
|
|
159
|
+
.mypy_cache/
|
|
160
|
+
.dmypy.json
|
|
161
|
+
dmypy.json
|
|
162
|
+
|
|
163
|
+
# Pyre type checker
|
|
164
|
+
.pyre/
|
|
165
|
+
|
|
166
|
+
# pytype static type analyzer
|
|
167
|
+
.pytype/
|
|
168
|
+
|
|
169
|
+
# Cython debug symbols
|
|
170
|
+
cython_debug/
|
|
171
|
+
|
|
172
|
+
# PyCharm
|
|
173
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
174
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
175
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
176
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
177
|
+
#.idea/
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
History
|
|
2
|
+
-------
|
|
3
|
+
|
|
4
|
+
1.0.0
|
|
5
|
+
~~~~~
|
|
6
|
+
|
|
7
|
+
Packaging
|
|
8
|
+
^^^^^^^^^
|
|
9
|
+
* First release of the ``streptocad`` library on PyPI (``pip install streptocad``).
|
|
10
|
+
* Packaged the ``streptocad`` toolbox with a hatchling build backend; the Dash web
|
|
11
|
+
app, notebooks and test fixtures stay in the repository and are not distributed.
|
|
12
|
+
* Declared ``nbformat`` and ``nbconvert`` as runtime dependencies, since
|
|
13
|
+
``streptocad.utils`` imports them at module level.
|
|
14
|
+
* Relaxed dependency pins to compatible ranges for library use, so security
|
|
15
|
+
updates can be picked up with ``uv lock --upgrade``. ``uv.lock`` still records
|
|
16
|
+
exact versions, and ``requirements.txt`` is generated from it for the Docker image.
|
|
17
|
+
|
|
18
|
+
Corrected primer melting temperatures (changes designed primers)
|
|
19
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
20
|
+
* **Designed primers may differ from those produced by earlier versions, usually by
|
|
21
|
+
one or two bases.** This corrects real errors and is not a change of preference.
|
|
22
|
+
There are two independent causes, described below.
|
|
23
|
+
|
|
24
|
+
Primers are now designed with the melting-temperature model they are reported with
|
|
25
|
+
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
26
|
+
* Reaction conditions are passed to ``pydna.design.primer_design`` as keyword
|
|
27
|
+
arguments. pydna accepts ``**kwargs`` but never forwards them to the melting
|
|
28
|
+
temperature function, so the selected polymerase and primer concentration were
|
|
29
|
+
silently discarded and design fell back to pydna's generic Taq-buffer defaults,
|
|
30
|
+
while the reported melting temperatures came from NEB. Design and reporting were
|
|
31
|
+
therefore using two different thermodynamic models.
|
|
32
|
+
* ``streptocad.cloning.pcr_simulation.make_amplicons`` additionally passed the
|
|
33
|
+
argument as ``tm_function`` rather than ``tm_func``, so it was absorbed by
|
|
34
|
+
``**kwargs`` and the NEB model was never used there at all.
|
|
35
|
+
* All design call sites now bind the conditions into the Tm function through
|
|
36
|
+
:func:`streptocad.primers.tm.neb_tm_function`, and pass ``estimate_function`` so a
|
|
37
|
+
fast local estimate seeds the search. Results are identical to querying NEB at
|
|
38
|
+
every step while making far fewer API calls, and responses are cached.
|
|
39
|
+
* Effect on the workflow-1 regulator set, scoring each designed primer with the NEB
|
|
40
|
+
model it is reported with: mean deviation from the requested melting temperature
|
|
41
|
+
falls from 1.69 C to 1.00 C, primers within 1 C of target rise from 14/36 to 26/36,
|
|
42
|
+
and the most common value moves from 58 C to the requested 60 C. The previous
|
|
43
|
+
design sat systematically below target; that bias is gone.
|
|
44
|
+
* The Gibson repair-template primers were affected more severely. There the discarded
|
|
45
|
+
conditions left design running against NEB's ``q5-0`` default, which reads several
|
|
46
|
+
degrees higher than Phusion GC, so three of the four primers never grew past the
|
|
47
|
+
13 nt ``min_primer_length`` floor. For the SCO5892 deletion they came out near 50 C
|
|
48
|
+
against a requested 60 C; they now read 60-61 C. Anyone who ordered Gibson repair
|
|
49
|
+
primers from an earlier version may want to re-check them, since a primer designed
|
|
50
|
+
for a 60 C anneal that actually melts at 50 C can underperform at the bench.
|
|
51
|
+
* ``streptocad.primers.tm.neb_tm_function`` raises a clear error when the NEB API
|
|
52
|
+
returns no result, instead of yielding ``None`` and failing later as a ``TypeError``
|
|
53
|
+
deep inside pydna's search. Note the API rejects primers shorter than 8 nt and any
|
|
54
|
+
product code outside those in ``streptocad.utils.polymerase_dict``.
|
|
55
|
+
|
|
56
|
+
Corrected nearest-neighbour thermodynamic parameters
|
|
57
|
+
""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
58
|
+
* Biopython 1.82 corrected two entropy values in the SantaLucia & Hicks (2004)
|
|
59
|
+
nearest-neighbour table (``DNA_NN4``): ``TA/AT`` from -20.4 to -21.3 and ``GG/CC``
|
|
60
|
+
from -19.0 to -19.9. The corrected values reproduce the published dG37 for those
|
|
61
|
+
pairs to within 0.02 kcal/mol; the earlier ones are off by about 0.28.
|
|
62
|
+
* StreptoCAD previously required ``biopython==1.80`` (via ``teemi`` 0.3.4), so it
|
|
63
|
+
used the erroneous values. They overestimate primer melting temperatures by
|
|
64
|
+
roughly 2.3 C, which made ``pydna``'s ``primer_design`` stop one base short of the
|
|
65
|
+
requested ``target_tm``. Primers designed before this release therefore tend to be
|
|
66
|
+
one base too short and anneal about 2 C below the temperature that was asked for.
|
|
67
|
+
* Raised the floors to ``biopython>=1.82``, ``teemi>=1.0.5`` and ``pydna>=5.5``.
|
|
68
|
+
* Updated the primer fixtures in ``tests/`` accordingly. Each expected primer was
|
|
69
|
+
checked to be the candidate whose Tm lies closest to the requested ``target_tm``
|
|
70
|
+
among its neighbouring lengths, rather than simply re-recording the new output.
|
|
71
|
+
* Users reproducing designs from before this release, including those in the
|
|
72
|
+
StreptoCAD paper, should expect slightly different primer sequences. The earlier
|
|
73
|
+
sequences remain valid primers; they were simply designed against a Tm that was
|
|
74
|
+
overestimated.
|
streptocad-1.0.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024, Technical University of Denmark (DTU)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: streptocad
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: An open-source software toolbox supporting genome engineering workflows in streptomycetes
|
|
5
|
+
Project-URL: Homepage, https://streptocad.bioengineering.dtu.dk
|
|
6
|
+
Project-URL: Repository, https://github.com/hiyama341/streptocad
|
|
7
|
+
Project-URL: Issues, https://github.com/hiyama341/streptocad/issues
|
|
8
|
+
Project-URL: Paper, https://www.biorxiv.org/content/10.1101/2024.12.19.629370v1
|
|
9
|
+
Author: Technical University of Denmark, DTU
|
|
10
|
+
License-Expression: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Keywords: crispr,genome engineering,primer design,streptomyces,synthetic biology
|
|
13
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
14
|
+
Classifier: Intended Audience :: Science/Research
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
19
|
+
Requires-Python: <3.13,>=3.11
|
|
20
|
+
Requires-Dist: biopython<2,>=1.82
|
|
21
|
+
Requires-Dist: dnachisel<4,>=3.2.11
|
|
22
|
+
Requires-Dist: nbconvert>=7.17.1
|
|
23
|
+
Requires-Dist: nbformat>=5.10
|
|
24
|
+
Requires-Dist: numpy<3,>=2.1.1
|
|
25
|
+
Requires-Dist: pandas<3,>=2.2.2
|
|
26
|
+
Requires-Dist: primer3-py<3,>=2.0.3
|
|
27
|
+
Requires-Dist: pydna<6,>=5.5.0
|
|
28
|
+
Requires-Dist: python-codon-tables>=0.1.12
|
|
29
|
+
Requires-Dist: requests<3,>=2.33.0
|
|
30
|
+
Requires-Dist: scipy<2,>=1.14.1
|
|
31
|
+
Requires-Dist: teemi<2,>=1.0.5
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
33
|
+
|
|
34
|
+
<img src="https://raw.githubusercontent.com/hiyama341/streptocad/main/web_app/assets/StreptoCAD_logo%20Medium.jpeg" alt="StreptoCAD" width="200">
|
|
35
|
+
|
|
36
|
+
# Automate your Streptomyces genome engineering workflows 🚀
|
|
37
|
+
|
|
38
|
+

|
|
39
|
+

|
|
40
|
+

|
|
41
|
+

|
|
42
|
+
[](https://pypi.org/project/streptocad/)
|
|
43
|
+
[](https://github.com/psf/black)
|
|
44
|
+
|
|
45
|
+
**StreptoCAD** is an open-source software toolbox designed to automate and streamline genome engineering in Streptomyces. This tool supports various CRISPR-based techniques and gene overexpression methods, simplifying the genetic engineering process.
|
|
46
|
+
|
|
47
|
+
You can find it here: [streptocad.bioengineering.dtu.dk](https://streptocad.bioengineering.dtu.dk)
|
|
48
|
+
|
|
49
|
+
## Features
|
|
50
|
+
|
|
51
|
+
- **Automated Primer and sgRNA Design:** Automatically generates necessary DNA primers and sgRNA sequences for your target genes.
|
|
52
|
+
- **Plasmid Assembly Simulation:** Simulates plasmid assemblies and the resulting genomic modifications.
|
|
53
|
+
- **Six Design Workflows:** Supports workflows including overexpression library construction, base-editing, and in-frame deletions using CRISPR-Cas9 and CRISPR-Cas3 systems.
|
|
54
|
+
- **FAIR Compliance:** Ensures data is Findable, Accessible, Interoperable, and Reusable, promoting reproducibility and ease of data management.
|
|
55
|
+
- **User-Friendly:** Suitable for both experienced users and beginners, facilitating collaboration and standardized workflows.
|
|
56
|
+
|
|
57
|
+
## Why StreptoCAD?
|
|
58
|
+
|
|
59
|
+
Streptomyces is a prolific source of novel bioactive molecules, but current genetic engineering methods are inefficient and time-consuming. StreptoCAD addresses these challenges by automating the design process, reducing errors, and speeding up the development of genetically modified strains. This tool transforms complex genetic engineering tasks into straightforward, reproducible processes, enabling faster scientific advancements and discovery of new natural products.
|
|
60
|
+
|
|
61
|
+
For more details and an in-depth discussion of our approach, check out our [bioXiv paper](https://www.biorxiv.org/content/10.1101/2024.12.19.629370v1.full).
|
|
62
|
+
|
|
63
|
+
## Workflows
|
|
64
|
+
|
|
65
|
+
<img src="https://raw.githubusercontent.com/hiyama341/streptocad/main/web_app/assets/intro_fig.png" alt="StreptoCAD" width="600">
|
|
66
|
+
|
|
67
|
+
StreptoCAD offers six distinct workflows for various genetic engineering tasks:
|
|
68
|
+
|
|
69
|
+
1. **[Overexpression Plasmid Library Construction](https://github.com/hiyama341/streptocad/blob/main/notebooks/app_workflows/W1_overexpression_workflow.ipynb):**
|
|
70
|
+
|
|
71
|
+
- Can be used to overexpress target proteins - we experimentally validated this by overexpressing regulators.
|
|
72
|
+
|
|
73
|
+
2. **[Single CRISPR-BEST Plasmid Generation](https://github.com/hiyama341/streptocad/blob/main/notebooks/app_workflows/W2_CRISPR-BEST-single.ipynb):**
|
|
74
|
+
|
|
75
|
+
- Base editing system in the genome of Streptomyces using single sgRNA for targeting.
|
|
76
|
+
|
|
77
|
+
3. **[Multiplexed CRISPR-BEST Plasmid Generation](https://github.com/hiyama341/streptocad/blob/main/notebooks/app_workflows/W3_multiplexed_CRISPR-BEST.ipynb):**
|
|
78
|
+
|
|
79
|
+
- Multiplexed base-editing in the genome for high-throughput genetic studies.
|
|
80
|
+
|
|
81
|
+
4. **[CRISPRi Plasmid Generation](https://github.com/hiyama341/streptocad/blob/main/notebooks/app_workflows/W4_CRISPRi.ipynb):**
|
|
82
|
+
|
|
83
|
+
- Uses transcriptional interference to reversibly inactivate genes for functional studies.
|
|
84
|
+
|
|
85
|
+
5. **[CRISPR-Cas9](https://github.com/hiyama341/streptocad/blob/main/notebooks/app_workflows/W5_CRISPR-cas9-inframe-deletion_random_sized_deletion.ipynb):**
|
|
86
|
+
|
|
87
|
+
- Can be used for random-sized or in-frame deletions with Cas9
|
|
88
|
+
|
|
89
|
+
6. **[CRISPR-Cas3](https://github.com/hiyama341/streptocad/blob/main/notebooks/app_workflows/W6_CRISPR-cas3-inframe-deletion_random_sized_deletion.ipynb):**
|
|
90
|
+
- Can be used for random-sized or in-frame deletions with Cas3
|
|
91
|
+
|
|
92
|
+
## Experimental Validation
|
|
93
|
+
|
|
94
|
+
StreptoCAD's efficiency and user-friendliness were validated by designing and constructing overexpression strains in Streptomyces Göe40/10 in just eight weeks. This highlights the tool's capability to accelerate genome engineering projects.
|
|
95
|
+
|
|
96
|
+
## Future Developments
|
|
97
|
+
|
|
98
|
+
Future expansions will include additional genome engineering tools and integration with laboratory robotics systems for end-to-end automation, further enhancing the capabilities and efficiency of StreptoCAD.
|
|
99
|
+
|
|
100
|
+
## Get Started
|
|
101
|
+
|
|
102
|
+
Visit [streptocad.bioengineering.dtu.dk](https://streptocad.bioengineering.dtu.dk) to try StreptoCAD, access documentation, and join the community of users and contributors working to advance Streptomyces research.
|
|
103
|
+
|
|
104
|
+
## Use StreptoCAD as a Python library
|
|
105
|
+
|
|
106
|
+
The StreptoCAD toolbox is available on [PyPI](https://pypi.org/project/streptocad/) for Python 3.11 and 3.12:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
pip install streptocad
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
The workflows can then be scripted directly, for example:
|
|
113
|
+
|
|
114
|
+
```python
|
|
115
|
+
from streptocad.sequence_loading.sequence_loading import load_and_process_genome_sequences
|
|
116
|
+
|
|
117
|
+
genome = load_and_process_genome_sequences("my_genome.gbk")[0]
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
See the [workflow notebooks](https://github.com/hiyama341/streptocad/tree/main/notebooks/app_workflows) for complete examples. The PyPI package contains the library only; to run the web app, follow the steps below.
|
|
121
|
+
|
|
122
|
+
## Want to run StreptoCAD locally?
|
|
123
|
+
|
|
124
|
+
#### 1. Set up a Conda virtual environment (Why it's smart)
|
|
125
|
+
|
|
126
|
+
Using a Conda virtual environment is a great way to manage dependencies for your project. Conda makes it easy to create and manage isolated environments, ensuring your project’s libraries are kept separate from other projects and system-wide dependencies. This helps avoid compatibility issues and makes it simpler to reproduce your development environment.
|
|
127
|
+
|
|
128
|
+
To create a new Conda environment, run:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
conda create --name streptocad python=3.11
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Replace streptocad with your preferred environment name, and replace 3.11 with the specific version of Python you need.
|
|
135
|
+
|
|
136
|
+
Then activate it:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
conda activate streptocad
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
#### 2. Install the requirements
|
|
143
|
+
|
|
144
|
+
Once your Conda environment is active, you can install the required dependencies from requirements.txt. This ensures your environment has all the necessary packages for the project. Use the following command:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
pip install -r requirements.txt
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
(Note: Even though you're using Conda, pip is still used to install from requirements.txt.)
|
|
151
|
+
|
|
152
|
+
#### 3. Run the application
|
|
153
|
+
|
|
154
|
+
Finally, to run the StreptoCAD application, execute the following command:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
python3 application.py
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
This will launch the application locally, and you're ready to go! Follow the url that your terminal shows.
|
|
161
|
+
|
|
162
|
+
Alternatively, you can try running the workflows as Jupyter notebooks after completing the installation above.
|
|
163
|
+
|
|
164
|
+
## Running the StreptoCAD App via Docker
|
|
165
|
+
|
|
166
|
+
To run the StreptoCAD application using Docker, follow these steps:
|
|
167
|
+
|
|
168
|
+
### 1. Build the Docker Image
|
|
169
|
+
|
|
170
|
+
First, build the Docker image from the `Dockerfile` located in the root of the project:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
docker build -t streptocad .
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### 2. Run the Docker Container
|
|
177
|
+
|
|
178
|
+
Once the image is built, run the container:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
docker run -d -p 8050:8050 streptocad
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
This will start the StreptoCAD application, exposing it on port 8050 of your local machine.
|
|
185
|
+
|
|
186
|
+
### 3. Run the application
|
|
187
|
+
|
|
188
|
+
Finally, to run the StreptoCAD application, execute the following command:
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
python3 application.py
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
This will launch the application locally, and you're ready to go! Follow the URL that your terminal shows.
|
|
195
|
+
|
|
196
|
+
## Making Your Own Workflow
|
|
197
|
+
|
|
198
|
+
StreptoCAD is designed to be modular and user-extensible. We’ve created a **comprehensive guide** to help you add your own custom workflows to the application. This guide covers:
|
|
199
|
+
|
|
200
|
+
- Creating new frontend components (tabs)
|
|
201
|
+
- Developing backend callback functions
|
|
202
|
+
- Writing tests
|
|
203
|
+
- Integrating your changes into the main app via GitHub
|
|
204
|
+
|
|
205
|
+
You can find the step-by-step guide here:
|
|
206
|
+
|
|
207
|
+
👉 [**Integrating New Workflows into StreptoCAD**](https://github.com/hiyama341/streptocad/blob/main/web_app/how_to_make_your_own_workflows.md)
|
|
208
|
+
|
|
209
|
+
Whether you want to adapt StreptoCAD for your research needs or contribute to the community, this documentation walks you through every stage of the process, including code examples and best practices.
|
|
210
|
+
|
|
211
|
+
**If you need help:**
|
|
212
|
+
|
|
213
|
+
- Check out the additional resources and documentation in the [docs folder](https://github.com/hiyama341/streptocad/tree/main/docs).
|
|
214
|
+
- Open an issue on GitHub or contact the development team.
|
|
215
|
+
|
|
216
|
+
We encourage all users to contribute and help make StreptoCAD even more powerful and versatile!
|
|
217
|
+
|
|
218
|
+
## License
|
|
219
|
+
|
|
220
|
+
StreptoCAD is open-source and licensed under the MIT License.
|
|
221
|
+
|
|
222
|
+
## Contact
|
|
223
|
+
|
|
224
|
+
For questions or contributions, please contact [luclev@dtu.dk](mailto:luclev@dtu.dk).
|