You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Related to #136, can be reproduced with the same files found in there (reproduce.zip).
When using the pcr module in this case, all the annotations of the vector are lost, unless the vector is shifted so that no feature spans the origin. In the example below, I print the number of features resulting from doing the pcr on the shifted sequence (gives 27), and not shifted (gives 1)
frompydna.designimportassembly_fragments, primer_designfrompydna.parsersimportparsefrompydna.dseqrecordimportDseqrecordfrompydna.ampliconimportAmpliconfrompydna.amplifyimportpcr# Read the plasmidvector: Dseqrecord=parse('pREP42-MCS+.gb')[0]
# Read the gene we want to clonegenomic_dna: Dseqrecord=parse('ase1.gb')[0]
# Select the ase1 CDS from the featurease1_feature=next(
fforfingenomic_dna.featuresif (f.type=='CDS'and'gene'inf.qualifiersand'ase1'inf.qualifiers['gene'])
)
# Select the entire plasmid, shifted so that the end of the promoter is at the originpromoter_feature=next(
fforfinvector.featuresiff.type=='promoter'and'label'inf.qualifiersand'nmt1 P41 promoter'inf.qualifiers['label']
)
vector_shifted=vector.shifted(promoter_feature.location.end)
# Design primers (without overhangs)vector_amplicon_pre=primer_design(vector_shifted)
# here we use indexing instead of feature extract to keep the featuresase1_amplicon_pre=primer_design(genomic_dna[ase1_feature.location.start : ase1_feature.location.end])
# Design assembly primers (same as previous, but with overhangs for Gibson assembly)# We include the vector twice to create a circular recombinationasm: list[Amplicon] =assembly_fragments([vector_amplicon_pre, ase1_amplicon_pre, vector_amplicon_pre])
# This keeps the featuresvector_amplicon=pcr(asm[2].primers()[0], asm[0].primers()[1], vector_shifted)
print(len(vector_amplicon.features))
# This should give the same result but it doesn't, probably a bug# in PCRvector_amplicon=pcr(asm[2].primers()[0], asm[0].primers()[1], vector)
print(len(vector_amplicon.features))
The text was updated successfully, but these errors were encountered:
@BjornFJohansson this error is likely caused by something similar to #136, so it highlights the value of having a single implementation for PCR, assemblies, etc. that properly handles this tricky cases of annotation transmission in circular molecules.
Related to #136, can be reproduced with the same files found in there (reproduce.zip).
When using the
pcr
module in this case, all the annotations of the vector are lost, unless the vector is shifted so that no feature spans the origin. In the example below, I print the number of features resulting from doing the pcr on the shifted sequence (gives 27), and not shifted (gives 1)The text was updated successfully, but these errors were encountered: