Protocols¶
-
class
synbio.protocol.
Protocol
(name: str = '', design: synbio.designs.Design = <synbio.designs.Design object>, how: Union[synbio.protocol.Step, Iterable[synbio.protocol.Step]] = None, separate_reagents: bool = False)¶ A Protocol for assembling DNA via steps in a laboratory.
-
name
¶ The name of the protocol
-
design
¶ The design specification for the build
-
how
¶ A single composite step for assembling the Design
-
separate_reagents
¶ Whether to separate reagent plate from other wells
-
add
(step: synbio.protocol.Step) → synbio.protocol.Protocol¶ Add a step to the protocol.
- Parameters
step – The Step to add to this protocol
-
add_instruction
(instruction: synbio.instructions.Instruction)¶ Add a single Instruction to this protocol’s output.
Instructions are generated by Steps. Each Step calls this to add the step’s output to the Protocol for accumulation.
- Parameters
instruction – A single instruction to add to the protocol
-
property
input
¶ Return a map from protocol ‘inputs’ to volumes in milliters.
Inputs are SeqRecord (DNA), Primers, Reagents and Species required to carry out the protocol.
- Returns
A Dict that is a key-value map from input Content to required volume
-
property
output
¶ Gather the output SeqRecords from the final containers after all steps.
- Returns
The plasmids that will be created after assembly
-
run
() → synbio.protocol.Protocol¶ Run each step of the protcol. Build up the output records and instructions.
-
to_csv
(filename: str = '') → str¶ Write CSV file(s) describing the containers/Layout after each step.
Rows of Layout/containers are written in CSV format with each step’s name as its heading.
- Parameters
filename – The name of the CSV’s name
-
to_fasta
(filename: str = '') → int¶ Write each output record to a FASTA file.
Uses SeqIO.write(records, filename, “fasta”).
- Parameters
filename – The filename to write the FASTA file to
- Returns
The number of records that were written
-
to_genbank
(filename: str = '', split: bool = False) → int¶ Write each output record to a Genbank file.
Uses SeqIO.write(records, filename, “genbank”).
- Parameters
filename – The filename to write the Genbanks to
split – Write a separate Genbank for each SeqRecord
- Returns
The number of records that were written
-
to_picklists
(filename: str = '', platform: str = 'tecan')¶ Create picklists for robotic pipetting.
Supported platforms are tecan, hamilton, and labcyte.
For each step where there’s plate to plate pipetting, create a robotic picklists. Steps where reagents or samples come from the Fridge are not written to a picklist right now.
If there are multiple passable steps, each are saved with their index in their filename. Ex: picklist.1.gwl, picklist.2.gwl
- Keyword Arguments
filename – Name of picklist file (default: {self.name})
platform – Picklist platform (default: {“tecan”})
-
to_txt
(filename: str = '')¶ Write the protocol’s instructions to a text file.
- Parameters
filename – the filename of the instructin file
-
-
class
synbio.protocols.clone.
Clone
(name: str = '', design: synbio.designs.Design = <synbio.designs.Design object>, enzymes: List[Bio.Restriction.Restriction.RestrictionType] = None, mix: synbio.mix.Mix = <synbio.mix.Mix object>, include: List[str] = None, min_count: int = -1, separate_reagents: bool = False)¶ Clone SeqRecords together using BioPython enzymes.
Digest the SeqRecords with all the Enzymes provided, find valid circularized assemblies, and create a protocol for preparing and ligating the fragments.
This protocol is based on NEB’s clone guide: https://www.neb.com/tools-and-resources/usage-guidelines/clone-guide
- Keyword Arguments
enzymes – the list of enzymes to digest the SeqRecords with
include – include only plasmids with a feature matching something in the include list use in backbone selection (default: {None})
mix – the assembly mix to use when mixing the assemblies with enzymes
min_count – the minimum number of SeqRecords in an assembly for it to be considered valid. smaller assemblies are ignored
-
class
synbio.protocols.gibson.
Gibson
(design: synbio.designs.Design = <synbio.designs.Design object>, name: str = '', hifi: bool = False, pcr_mix: synbio.mix.Mix = <synbio.mix.Mix object>, gibson_mix: synbio.mix.Mix = <synbio.mix.Mix object>, separate_reagents: bool = False)¶ Gibson Assembly.
Create primer pairs that will anneal each SeqRecord to its two neighbors so that, after PCR, the fragments will circularize via a Gibson Assembly.
Based on the Gibson Assembly protocol outlined on the NEB site for kit (e5510): https://www.neb.com/protocols/2012/12/11/gibson-assembly-protocol-e5510
- Keyword Arguments
hifi – whether to use NEB’s HiFi assembly method
gibson_mix – the assembly mix to use when mixing the Gibson wells. Based on NEB’s (e5510)
-
class
synbio.protocols.goldengate.
GoldenGate
(design: synbio.designs.Design = <synbio.designs.Design object>, name: str = '', enzymes: List[Bio.Restriction.Restriction.RestrictionType] = [BsaI, BpiI], include: List[str] = None, min_count: int = -1, separate_reagents: bool = False)¶ GoldenGate assembly.
Takes the design of a protocol and finds combinations of SeqRecords that will circularize into valid new plasmids.
This Protocol is derived from NEB’s guide: https://www.neb.com/protocols/2018/10/02/golden-gate-assembly-protocol-for-using-neb-golden-gate-assembly-mix-e1601
Full responsibilities include
subselecting the input designs that will form valid plasmids after digestion with BsaI and BpiI
adding NEB Golden Gate Assembly Mix to the valid designs as Contents for a Container
computing the final plasmid (SeqRecord) after ligation of digested fragments
memoize the sorted enzyme + ids -> SeqRecord from step #3, pass as a
“mutate” method for the step after ThermoCycle()
add steps to carry out the rest of the assembly (heat shock, incubate, etc)
- Keyword Arguments
name – Name of this protocol
enzymes – List of digest enzymes to catalyze SeqRecords with
include – Include only plasmids with a feature matching something in the include list use in backbone selection (default: {None})
min_count – The minimum number of SeqRecords in an assembly for it to be considered valid. smaller assemblies are ignored
separate_reagents – Whether to separate reagent plate from other wells