dr-joe-wirth / primerForge

software to identify primers that can distinguish genomes
Apache License 2.0
11 stars 4 forks source link

allow circular genomes (wrap-around product finding) #7

Open dr-joe-wirth opened 4 months ago

dr-joe-wirth commented 4 months ago

Primers should be able to exist across the origin of the contig if that replicon is circular. Primer pairs should be able to form products that cross the origin. Right now, primerForge only allows for primers and pairs that do not cross the edges of contigs. This is the right thing to do for draft genomes, but circularized genomes should be handled separately.

This feature should be an option as this only applies to circular (closed) genomes. Ideally, the feature could be mapped to specific genomes to allow for a combination of draft and closed genomes in a given dataset.

One way to achieve this is to assume that genomes are all draft, but allow the user to specify which genomes are circularized. For example, this command would treat all genomes as if they are draft (unclosed/non-circular)

primerForge.py --ingroup "in*gbff" --out out.tsv --outgroup "out*gbff"

And this command would treat all genomes as if they are closed/circular

primerForge.py --ingroup "in*gbff" --out out.tsv --outgroup "out*gbff" --circular

And finally this command would specify that only three specific genomes are closed/circular

primerForge.py --ingroup "in*gbff" --out out.tsv --outgroup "out*gbff" --circular in1.gbff,in3.gbff,out2.gbff