533112afe2a2005e80cdb1f82904ea65032d4302 braney Sat Oct 2 11:37:34 2021 -0700 split hg/lib into two separate libaries, one only used by the cgis diff --git src/hg/cgilib/gvUi.c src/hg/cgilib/gvUi.c new file mode 100644 index 0000000..a4f8682 --- /dev/null +++ src/hg/cgilib/gvUi.c @@ -0,0 +1,353 @@ +/* gvUi.c - char arrays for Genome Variation UI features */ + +/* Copyright (C) 2014 The Regents of the University of California + * See README in this or parent directory for licensing information. */ +#include "gvUi.h" +#include "common.h" +#include "cart.h" +#include "cheapcgi.h" + + +/***************Filters**************/ + +/* some stuff for mutation type choices */ +/* labels for checkboxes */ +char *gvTypeLabel[] = { + "substitution", + "insertion", + "duplication", + "deletion", + "complex", +}; + +/* names for checkboxes */ +char *gvTypeString[] = { + "gvPos.filter.sub", + "gvPos.filter.ins", + "gvPos.filter.dup", + "gvPos.filter.del", + "gvPos.filter.complex", +}; + +/* values in the db */ +char *gvTypeDbValue[] = { + "substitution", + "insertion", + "duplication", + "deletion", + "complex", +}; + +int gvTypeSize = ArraySize(gvTypeString); + +/* some stuff for the mutation location choices */ +/* labels for checkboxes */ +char *gvLocationLabel[] = { + "exon", + "intron", + "5' UTR", + "3' UTR", + "not within known transcription unit", +}; + +/* names for checkboxes */ +char *gvLocationString[] = { + "gvPos.filter.xon", + "gvPos.filter.intron", + "gvPos.filter.utr5", + "gvPos.filter.utr3", + "gvPos.filter.intergenic", +}; + +char *gvLocationDbValue[] = { + "exon", + "intron", + "5' UTR", + "3' UTR", + "not within known transcription unit", +}; + +int gvLocationSize = ArraySize(gvLocationLabel); + +char *gvSrcString[] = { + "gvPos.filter.src.SP", + "gvPos.filter.src.LSDB", +}; + +char *gvSrcDbValue[] = { + "UniProtKB", + "LSDB", +}; + +int gvSrcSize = ArraySize(gvSrcString); + +char *gvAccuracyLabel[] = { + "estimated coordinates", +}; + +char *gvAccuracyString[] = { + "gvPos.filter.estimate", +}; + +unsigned gvAccuracyDbValue[] = { + 0, +}; + +int gvAccuracySize = ArraySize(gvAccuracyLabel); + +char *gvFilterDALabel[] = { + "phenotype-associated", + "not phenotype-associated", + "phenotype association unknown", +}; + +char *gvFilterDAString[] = { + "gvPos.filter.da.known", + "gvPos.filter.da.not", + "gvPos.filter.da.null", +}; + +char *gvFilterDADbValue[] = { + "phenotype-associated", + "not phenotype-associated", + "NULL", +}; + +int gvFilterDASize = ArraySize(gvFilterDAString); + +/***************Attribute display**************/ + +/* list in display order of attribute type, key that is used in table */ +char *gvAttrTypeKey[] = { + "longName", + "commonName", + "alias", + "srcLink", + "links", + "mutType", + "rnaNtChange", + "protEffect", + "enzymeActivityFC", + "enzymeActivityQual", + "funChange", + "disease", + "phenoCommon", + "phenoOfficial", + "geneVarsDis", + "hap", + "ethnic", + "comment", + "userAnno", +}; + +/* list in display order of attribute type display names */ +char *gvAttrTypeDisplay[] = { + "Full name", + "Common name", + "Alias", + "External links", + "External links", + "Type of mutation", + "RNA nucleotide change", + "Effect on Protein", + "Enzyme activity, fold change relative to wild type", + "Qualitative effect on activity", + "Functional Change", + "Phenotype association", + "Phenotype common name", + "Phenotype official nomenclature", + "Variation and Disease information related to gene locus", + "Haplotype", + "Ethnicity/Nationality", + "Comments", + "User annotations", +}; + +/* category for each type above, match up by array index */ +char *gvAttrCategory[] = { + "Alias", + "Alias", + "Alias", + "Links", + "Links", + "RNA effect", + "RNA effect", + "Protein effect", + "Protein effect", + "Protein effect", + "Function", + "Patient/Subject phenotype", + "Patient/Subject phenotype", + "Patient/Subject phenotype", + "Data related to gene locus", + "Other Ancillary data", + "Other Ancillary data", + "Other Ancillary data", + "Other Ancillary data", +}; + +int gvAttrSize = ArraySize(gvAttrTypeKey); + +/***************Color options**************/ + +char *gvColorLabels[] = { + "red", + "purple", + "green", + "orange", + "blue", + "brown", + "black", + "gray", +}; + +int gvColorLabelSize = ArraySize(gvColorLabels); + +char *gvColorTypeLabels[] = { + "substitution", + "insertion", + "duplication", + "deletion", + "complex", + "unknown", +}; + +char *gvColorTypeStrings[] = { + "gvColorTypeSub", + "gvColorTypeIns", + "gvColorTypeDup", + "gvColorTypeDel", + "gvColorTypeComplex", + "gvColorTypeUnk", +}; + +char *gvColorTypeDefault[] = { + "purple", + "green", + "orange", + "blue", + "brown", + "black", +}; + +char *gvColorTypeBaseChangeType[] = { + "substitution", + "insertion", + "duplication", + "deletion", + "complex", + "unknown", +}; + +/* all type arrays are same size */ +int gvColorTypeSize = ArraySize(gvColorTypeStrings); + +/* color by disease association */ +char *gvColorDALabels[] = { + "phenotype-associated", + "not phenotype-associated", + "phenotype association unknown", +}; + +char *gvColorDAStrings[] = { + "gvColorDAKnown", + "gvColorDANot", + "gvColorDARest", +}; + +char *gvColorDADefault[] = { + "red", + "green", + "gray", +}; + +char *gvColorDAAttrVal[] = { + "phenotype-associated", + "not phenotype-associated", + "NULL", +}; + +int gvColorDASize = ArraySize(gvColorDAStrings); + +void gvDisclaimer () +/* displays page with disclaimer forwarding query string that got us here */ +{ +struct cgiVar *cv, *cvList = cgiVarList(); + +cartHtmlStart("PhenCode Disclaimer"); +printf("<TABLE WIDTH=\"%s\" BGCOLOR=\"#888888\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"1\"><TR><TD>", "100%"); +printf("<TABLE BGCOLOR=\"fffee8\" WIDTH=\"%s\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\"><TR><TD>", "100%"); +printf("<TABLE BGCOLOR=\"D9E4F8\" BACKGROUND=\"../../images/hr.gif\" WIDTH=%s><TR><TD>", "100%"); +printf("<FONT SIZE=\"4\"><b> PhenCode Disclaimer </B></FONT> "); +printf("</TD></TR></TABLE>"); +printf("<TABLE BGCOLOR=\"fffee8\" WIDTH=\"%s\" CELLPADDING=0><TR><TH HEIGHT=10></TH></TR>", "100%"); +printf("<TR><TD WIDTH=10> </TD><TD>"); +printf("<b>Usage</b>\n"); +printf("<p>\n"); +printf("PhenCode is intended for research purposes only. Although the data\n"); +printf("are freely available to all, users should treat the reported mutations\n"); +printf("with extreme caution in clinical settings or for any diagnostic or\n"); +printf("population screening purpose. This information requires expertise\n"); +printf("to interpret properly; clinical diagnosis and/or treatment\n"); +printf("recommendations should be made only by medical professionals.\n"); +printf("<p>\n"); +printf("Patients and doctors should not make treatment decisions based on the\n"); +printf("information in PhenCode. In particular, <b>PhenCode should not be used\n"); +printf("to assess disease risk</b>. Some of these variants are not associated\n"); +printf("with disease at all, and for many others the association is slight,\n"); +printf("depends on other factors, and/or may not be causative. The mere fact\n"); +printf("that a variant is listed here does NOT mean that a particular patient\n"); +printf("will become ill.\n"); +printf("<p>"); +printf("<b>Errors</b>\n"); +printf("<p>\n"); +printf("The PhenCode track (including, but not limited to, \"Locus Variants\"\n"); +printf(") is a compilation of freely-available data\n"); +printf("obtained from other sources. While reasonable effort is made to\n"); +printf("promote accuracy, nevertheless there may be errors in the original\n"); +printf("data and/or the compilation process. <b>By using these data, you\n"); +printf("agree and acknowledge that the information is not guaranteed to be\n"); +printf("accurate.</b> If you do find any errors, please report them to the\n"); +printf("addresses listed on the <a href=\"http://phencode.bx.psu.edu/phencode/contact.html\">Contact us</a> page.\n"); +printf("<p>"); +printf("<b>Disclaimer</b>\n"); +printf("<p>\n"); +printf("This resource and data are provided \"as is\", \"where is\" and without\n"); +printf("any express or implied warranties, including, but not limited to, any\n"); +printf("implied warranties of merchantability and/or fitness for a particular\n"); +printf("purpose. In no event shall\n"); +printf("<a href=\"http://www.psu.edu/\">The Pennsylvania State University</a>,\n"); +printf("<a href=\"http://www.ucsc.edu/\">The University of California Santa Cruz</a>,\n"); +printf("or any data contributors,\n"); +printf("nor their respective agents, employees or representatives be liable\n"); +printf("for any direct, indirect, incidental, special, exemplary, or\n"); +printf("consequential damages (including, but not limited to, procurement of\n"); +printf("substitute goods or services; loss of use, data, or profits; business\n"); +printf("interruption; medical or legal expenses; or pain and suffering),\n"); +printf("however caused and on any theory of liability, whether in contract,\n"); +printf("strict liability, or tort (including negligence or otherwise) arising\n"); +printf("in any way or form out of the use of this resource or data, even if\n"); +printf("advised of the possibility of such damage.\n"); +printf("<p>\n"); +printf("Users assume all risk and responsibility for the accuracy,\n"); +printf("completeness, and usefulness, or lack thereof, of any information,\n"); +printf("apparatus, product, or process disclosed, and also all risk and\n"); +printf("responsibility that the use hereof would or would not infringe the\n"); +printf("rights of any other party.\n"); +printf("<p>\n"); +printf("<br>\n"); +printf("<FORM ACTION=\"%s\" METHOD=POST>\n", cgiScriptName()); +for (cv = cvList; cv != NULL; cv = cv->next) + { + cgiContinueHiddenVar(cv->name); + } +cgiMakeButtonWithMsg("gvDisclaimer", "Agree", NULL); +printf(" "); +cgiMakeButtonWithMsg("gvDisclaimer", "Disagree", NULL); +printf("</FORM>\n"); +printf("</td></tr></table></td></tr></table></td></tr></table>"); +cartHtmlEnd(); +exit(0); +} + +