Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hello, may I ask if Primer3's command-line parameters support setting replacement mutations for specific waypoints? The example is as follows: I tried to set the SEQUENCE-PRIMER sequence to include the mutated base, but encountered the following error: PRIMER PICKING PRODUCS FOR mutation_deample INPUT PROBLEM: Specified left primer not in sequence #144

Open
azhe1234 opened this issue Nov 28, 2024 · 1 comment

Comments

@azhe1234
Copy link

Here is my configuration file:
SEQUENCE_ID=mutation_example
SEQUENCE_TEMPLATE=tattggtgaagcctcaggtagtgcagaatatgaaacttcaggatccagtgggcatgctactggtagtgctgccggccttacaggcattatggtggcaaagtcgacagagttta
PRIMER_TASK=generic
PRIMER_PICK_LEFT_PRIMER=1
PRIMER_PICK_INTERNAL_OLIGO=0
PRIMER_PICK_RIGHT_PRIMER=1
PRIMER_OPT_SIZE=20
PRIMER_MIN_SIZE=18
PRIMER_MAX_SIZE=22
PRIMER_PRODUCT_SIZE_RANGE=70-150
PRIMER_EXPLAIN_FLAG=1
SEQUENCE_PRIMER=agcctcaggtagtgcagaatctgaaact
SEQUENCE_PRIMER_REVCOMP=gtcgactttgccaccataatgc
thank you!
Perhaps other parameters can be used to replace and mutate specific locations. Please let me know, thank you

@benpruitt
Copy link
Contributor

I don't think that the primer3 design engine has this functionality, although you are most likely to get an answer to your question over at the main primer3 repo (I see that you've already posed your question there as well, which is great).

If you are just looking to understand the melting temperature and/or thermodynamic properties of the interaction, I'd suggest you just use calc_heterodimer. For example (using your sequences):

import primer3
from primer3.p3helpers import reverse_complement

fwd_primer = "agcctcaggtagtgcagaatctgaaact"
rev_primer = "gtcgactttgccaccataatgc"
target = "tattggtgaagcctcaggtagtgcagaatatgaaacttcaggatccagtgggcatgctactggtagtgctgccggccttacaggcattatggtggcaaagtcgacagagttta"
revcomp_target = reverse_complement(target)

print("FWD primer:")
print(primer3.calc_heterodimer(fwd_primer, revcomp_target), end="\n\n")

print("REV primer:")
print(primer3.calc_heterodimer(rev_primer, target))

The output:

FWD primer:
ThermoResult(structure_found=True, tm=60.59, dg=-25331.47, dh=-199700.00, ds=-562.21)

REV primer:
ThermoResult(structure_found=True, tm=61.61, dg=-24779.32, dh=-184500.00, ds=-514.98)

For tasks like this (e.g., site directed mutagenesis), I would typically use the lower level bindings provided by primer3-py to construct my own pipeline, rather than relying on the native primer3 design engine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants