primer3-org / primer3

Primer3 is a command line tool to select primers for polymerase chain reaction (PCR).
GNU General Public License v2.0
218 stars 62 forks source link

Scoring pre-selected primers? #59

Closed joshuak94 closed 2 years ago

joshuak94 commented 2 years ago

Hello! I was wondering if there was a way to use the primer3 command line tool/api to directly retrieve a score for a set of primers. Assuming the forward and reverse primers are known, but the input sequence itself is not.

Thank you in advance!

untergasser commented 2 years ago

Hi,

see https://primer3.org/manual.html#PRIMER_TASK

I think check_primers is what you are looking for.

Best,

Andreas

joshuak94 commented 2 years ago

Hi,

see https://primer3.org/manual.html#PRIMER_TASK

I think check_primers is what you are looking for.

Best,

Andreas

Thank you! This is exactly what I was looking for.

If I would like to use the primer3 library in another tool to check some designed primers, is there a recommended way to do this? Ideally I would like to include the minimal files necessary to internally check a primer pair. For example:

std::string fwd_primer{"ACGTACGTACGT"};
std::string rev_primer{"CAGTCATGCAGT"};
p3_global_settings p3{};
p3.primer_task = check_primers;
...
seq_args seq{};
seq->left_input = fwd_primer;
seq->right_input = rev_primer;

p3retval output = choose_primers(p3, seq);

This would be my "rough idea"... I'm just not quite sure what other settings I would need to manually set in the p3_global_settings and seq_args variables, and how to interpret the output variable to tell if my primers pass the thresholds.

Thank you for any insights!

untergasser commented 2 years ago

You can use it as c library or from the command line like Primer3Plus, check the code in the repos for example usage. Be aware that it is GPL licensed and if you include it as c library, your code needs to be made available GPL licensed as well. That you avoid by calling it on command line.

Best,

Andreas