BjornFJohansson / pydna

Clone with Python! Data structures for double stranded DNA & simulation of homologous recombination, Gibson assembly, cut & paste cloning.
Other
166 stars 45 forks source link

primer concentration #20

Closed hgbrian closed 8 years ago

hgbrian commented 8 years ago

I wanted to create some primers to insert one DNA segment (GFP) into a vector (pUC19). I assume I am supposed to use integration_primers here, not assembly_primers?

p1,p2 = pydna.integration_primers(pUC19_EcoRI, gfp, pUC19_EcoRI, minlength=24, target_tm=63, min_olap=30, primerc=500)

After this, I want to access the data from the PCR program.

Pfu-Sso7d (rate 15s/kb)
Three-step|          30 cycles   |      |Breslauer1986,SantaLucia1998
98.0°C    |98.0°C                |      |SaltC 50mM
__________|_____          72.0°C |72.0°C|Primer1C 1.0µM
00min30s  |10s  \  66°C  ________|______|Primer2C 1.0µM
          |      \______/ 0min11s|10min |
          |        10s           |      |4-8°C

However, the primer concentration (and saltc) does not change (not it's 500 vs 1000) because the Amplicon class has the following code:

self._products.append( Amplicon(prd,
                                template=tmpl,
                                forward_primer=fp,
                                reverse_primer=rp,
                                saltc=50,
                                forward_primer_concentration=1000,
                                reverse_primer_concentration=1000))

There is no self.forward_primer_concentration available in the Amplicon class. I don't understand why the program is produced by an independent Amplicon class and not somehow produced with the integration_primers parameters?

Great work on this library. Thanks!

BjornFJohansson commented 8 years ago

Hi, Thanks for the bug report. I will look into this right away.

BjornFJohansson commented 8 years ago

I have made som changes that I think will solve this bug.

This notebook has some code that is I think is doing something similar to what you describe.

These changes will go into the next release which will also be Python 3 only.