Pcr-sim is a project mainly written in ..., it's free.
PCR Product Generator - input primers and templates, get contigs!
PCR Product Generator (given primers)
By: Austin Davis-Richardson [email protected]
PCR SIM simulates an amplicon given a database (fasta file) and primers (5'-3' and 3'-5'). It does this by performing a simple, ungapped alignment:
AAT
AAA
Would have an alignment score of 2+2-2=4
based on the score table:
nucleotides = {
'A': ('A', 2), # Adenosine
'C': ('C', 3), # Cytidine
'G': ('G', 3), # Guanine
'T': ('T', 2), # Thymidine
'U': ('U', 2), # Uridine
'R': ('AG', 2.5), # Purine
'Y': ('TC', 2.5), # Pyrimidine
'K': ('GT', 2.5), # Keto
'M': ('AC', 2.5), # Amino
'S': ('GC', 3), # Strong Interaction (3H)
'W': ('AT', 2), # Weak Interaction (2H)
'B': ('CGTU', 8/3), # Not Adenine
'D': ('ATGU', 7/3), # Not Cytosine
'H': ('ACTU', 7/3), # Not Guanine
'V': ('ACG', 8/3), # Neither Thymidine nor Uridine
'N': ('GATCU', 0), # Any nucleotide
}
You can adjust this by editing /pcrsim/search.py
. The scores are multiplied
by -1
or -1
depending on match or mismatch, respectively
I've tested this script on the Ribosomal Database Project using 515F and 806R primers and found that the amplicon isn't that good. I haven't compared this script to a real PCR. For my experiment this was acceptable as the bias didn't matter and I was able to filter out "good" amplified sequences (by length).
This program is licensed under the GNU GPL 3 license: http://www.gnu.org/licenses/gpl-3.0.txt
This software is distributed with ABSOLUTELY NO WARRANT
Is pretty easy:
cd pcr-sim/
python setup.py install
If you get an error that means you should('nt) use sudo
.
PCR-Sim works like this:
pcrsim -i input.fasta -f <Forward: 5'->3'> -r <Reverse: 3'->5'> -o out.fa
The script will print a table to STDOUT
so if you want to save it do:
pcrsim ... > table.txt
The table is useful for post-processing (filtering out products based on start, stop and length). The scripts to do this aren't included.
Headers have the start and stop appended, sequences are truncated from the beginning of where the forward primer annealed to the end of where the reverse primer annealed (just like in a real PCR!).
> sequence1 (515-806)
gatc...ctag