Edinburgh-Genome-Foundry / DnaWeaver

A route planner for DNA assembly

Home Page:https://dnaweaver.genomefoundry.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Example of using PartsLibrary with Gibson assembly method

gjerman opened this issue · comments

I want to make a PartsLibrary that consists of basic stock PCR products that will be assembled with a DnaAssemblyStation based on the GibsonAssemblyMethod and any missing parts should come from a CommercialDnaOffer.

I have tried to make my own PartsLibrary class which inherets from the PartsLibrary base class, but am not able to make it work.

Do you have any examples availible of using a PartsLibrary that does not consists of GoldenGate parts, which is all that i can find in the documentation?

commented

Hey! Gibson assembly from parts is possible but not straightforward. I'm not sure what doesn't work for you, but here are some tricks:

  • The simplest way to implement Gibson Assembly is using a PcrExtractionStation rather than a PartsLibrary. The PCR station is more powerful. It will design primers to PCR your parts and so can either use a whole part, or a fragment of a part (by using primers that anneal inside the part), or a part with some added nucleotides on the flank (by adding these nucleotides to the ends of the primers).
  • Part libraries can work too but have an all-or-nothing way of providing parts, they need to be asked for an exact DNA fragment that's in the collection. If your PCRed parts in your collection already include overlaps between parts, and these overlaps were computed in a way that's not exactly the one using by the GibsonAssemblyStation, it probably won't work.
  • Whether you are using a PCR station or a Library part, don't forget to run prepare_network_on_sequence(sequence) before you compute the quote. This will recognize your part in the sequence to build, accelerate the computations and increase your chances of success:
... create your network
main_station.prepare_network_on_sequence(sequence)
quote = main_station.get_quote(sequence)

There's an example of Gibson assembly from parts in the SynBioCad project. Here's the problem description, here is how it defines the network and here is how it uses it. It may be less minimal than what you are after, it does a few extra things like reusing previously-built primers, handling circular sequences, having a Golden Gate alternative, etc.

Does that help?

Thanks for the swift response @Zulko, this is a big help!
I had not discovered the SynBioCad repo. This looks very similiar to what I want to achieve, so I will try to start from there and modify it slightly.