# HG changeset patch # User ben-warren # Date 1404775697 14400 # Node ID f201e8c6e0045a093236417dcb286a325c630624 # Parent b321e0517be3ac3a65f01bf6bf963253bb85c7c3 Uploaded diff -r b321e0517be3 -r f201e8c6e004 README.md --- a/README.md Thu May 22 20:30:19 2014 -0400 +++ b/README.md Mon Jul 07 19:28:17 2014 -0400 @@ -1,15 +1,15 @@ galaxy-pcr-markers ================== -Scripts for design of PCR-based Marker Assays from DNA sequence variant data, and xml wrappers for use in Galaxy workflow environment +Scripts for design of PCR-based Marker Assays from DNA sequence variant data, and xml wrappers for use in the Galaxy workflow environment Also available for download at Galaxy Toolshed http://toolshed.g2.bx.psu.edu/ hg clone http://toolshed.g2.bx.psu.edu/repos/john-mccallum/pcr_markers -NOTE that the primer design tool *design_primers.py* relies on EMBOSS ePrimer3 which depends on Primer3 1.1.4. -The updated tool *design_HRM_primers.py* does not have this restriction and should work with Primer3 V2. +NOTE that the primer design tool *design_primers.py* no longer relies on EMBOSS ePrimer3 (which depends on Primer3 1.1.4.) + and should work with Primer3 V2. -Please see development branch HRM for optimised design of high-resolution melting PCR assays using the uMelt web service at University of Utah. +This release adds optimised design of high-resolution melting PCR assays using the uMelt web service provided by the Wittwer Lab at University of Utah https://www.dna.utah.edu/umelt/umelt.html **CITATION** @@ -19,6 +19,9 @@ BMC Genomics 2012, 13:637 http://www.biomedcentral.com/1471-2164/13/637/abstract +uMELT: prediction of high-resolution melting curves and dynamic melting profiles of PCR products in a rich web application. +Zachary Dwight1, Robert Palais and Carl T. Wittwer http://bioinformatics.oxfordjournals.org/content/27/7/1019 + **Acknowledgements** Current development of these tools is funded by the New Zealand Ministry for Business, Innovation & Employment project 'Virtual Institute of Statistical Genetics' (VISG) See http://www.visg.co.nz diff -r b321e0517be3 -r f201e8c6e004 design_primers.py --- a/design_primers.py Thu May 22 20:30:19 2014 -0400 +++ b/design_primers.py Mon Jul 07 19:28:17 2014 -0400 @@ -159,19 +159,22 @@ amp_end=int(primerset['PRIMER_RIGHT'].split(',')[0]) ref_melt_Tm=0 var_melt_Tm=0 + diff_melt=0 if my_args.run_uMelt: try: ref_melt_Tm=umelts.getTm(umelts.getmelt(amp_seq.tostring()[amp_start:amp_end+1])) var_melt_Tm=umelts.getTm(umelts.getmelt(mutamp_seq.tostring()[amp_start:amp_end+1])) + diff_melt=abs(ref_melt_Tm - var_melt_Tm) except: - ref_melt_Tm=0 ##preferably something more informative? - var_melt_Tm=0 ##exception handling to be added + ref_melt_Tm="NA" ##preferably something more informative? + var_melt_Tm="NA" ##exception handling to be added + diff_melt="NA" reference_seq=target_feat.qualifiers['Reference_seq'][0] if target_feat.qualifiers.has_key('Variant_seq'): variant_seq=target_feat.qualifiers['Variant_seq'][0] else: variant_seq="NA" - print mytarget.id, featLocation + 1 ,reference_seq, variant_seq,amp_end-amp_start,primerset['PRIMER_LEFT_SEQUENCE'],primerset['PRIMER_RIGHT_SEQUENCE'], ref_melt_Tm,var_melt_Tm,abs(ref_melt_Tm-var_melt_Tm)#, amp_seq.tostring()[amp_start:amp_end+1], mutamp_seq.tostring()[amp_start:amp_end+1] + print mytarget.id, featLocation + 1 ,reference_seq, variant_seq,amp_end-amp_start,primerset['PRIMER_LEFT_SEQUENCE'],primerset['PRIMER_RIGHT_SEQUENCE'], ref_melt_Tm,var_melt_Tm,diff_melt#, amp_seq.tostring()[amp_start:amp_end+1], mutamp_seq.tostring()[amp_start:amp_end+1] my_args.gff_file.close() my_args.in_file.close() diff -r b321e0517be3 -r f201e8c6e004 design_primers.xml --- a/design_primers.xml Thu May 22 20:30:19 2014 -0400 +++ b/design_primers.xml Mon Jul 07 19:28:17 2014 -0400 @@ -23,6 +23,9 @@ + + + .. class:: infomark diff -r b321e0517be3 -r f201e8c6e004 umelt_service.py --- a/umelt_service.py Thu May 22 20:30:19 2014 -0400 +++ b/umelt_service.py Mon Jul 07 19:28:17 2014 -0400 @@ -22,11 +22,11 @@ try: response = urllib2.urlopen(req,timeout=timeout_sec) except urllib2.HTTPError, e: - print 'The server couldn\'t fulfill the request.' - print 'Error code: ', e.code + print >> sys.stderr, 'The server couldn\'t fulfill the request.' + print >> sys.stderr, 'Error code: ', e.code except urllib2.URLError, e: - print 'We failed to reach a server.' - print 'Reason: ', e.reason + print >> sys.stderr, 'We failed to reach a server.' + print >> sys.stderr, 'Reason: ', e.reason else: melt_data = response.read() tree = ET.fromstring(melt_data)