387377eb3982c570bc06728b9e0380c3d1c006ec max Wed Jan 25 05:30:25 2023 -0800 adding linkout to primer3 RT-QPCR primer designer from hgGene, refs #30545 diff --git src/hg/hgGene/primers.c src/hg/hgGene/primers.c new file mode 100644 index 0000000..c46cf2c --- /dev/null +++ src/hg/hgGene/primers.c @@ -0,0 +1,49 @@ +/* primers - do primers section. */ + +/* Copyright (C) 2013 The Regents of the University of California + * See kent/LICENSE or http://genome.ucsc.edu/license/ for licensing information. */ + +#include "common.h" +#include "hash.h" +#include "linefile.h" +#include "dystring.h" +#include "cheapcgi.h" +#include "spDb.h" +#include "hgGene.h" +#include "hdb.h" +#include "net.h" + + +static boolean primersExist(struct section *section, + struct sqlConnection *conn, char *geneId) +/* Return TRUE */ +{ +return(TRUE); +} + +static void primersPrint(struct section *section, + struct sqlConnection *conn, char *geneId) +/* Print out primers section. */ +{ +puts("<p style='margin:0'>Primer3Plus can design qPCR Primers that straddle exon-exon-junctions, which amplify only cDNA, not genomic DNA.<br>"); +printPrimer3Anchor(globalTdb->table, curGeneId, curGeneChrom, curGeneStart, curGeneEnd); +puts("Click here to load the transcript sequence and exon structure into Primer3Plus</a></p>"); + +puts("<p style='margin-top:0.3em; margin-bottom:0.3em'>Exonprimer can design one pair of Sanger sequencing primers around every exon, located in non-genic sequence.<br>"); +printf("<a href='https://ihg.helmholtz-muenchen.de/cgi-bin/primer/ExonPrimerUCSC.pl?db=%s&acc=%s'>Click here to open Exonprimer with this transcript</a></p>", database, geneId); +} + +struct section *primersSection(struct sqlConnection *conn, + struct hash *sectionRa) +/* Create primers section. */ +{ +struct section *section = sectionNew(sectionRa, "primers"); +if (!section) + return NULL; + +section->exists = primersExist; +section->print = primersPrint; + +return section; +} +