0a01f6a29963ba42555b02782532a5702b649f29 braney Fri Mar 10 10:18:36 2023 -0800 first cut at drawing base probability logos in wiggle tracks calculated at run time using an associated MAF related diff --git src/hg/inc/hgMaf.h src/hg/inc/hgMaf.h index 6ea52b2..beee708 100644 --- src/hg/inc/hgMaf.h +++ src/hg/inc/hgMaf.h @@ -1,110 +1,125 @@ /* hgMaf.h - Stuff to load up mafs from the browser database. * Also, items for maf track display */ /* Copyright (C) 2012 The Regents of the University of California * See kent/LICENSE or http://genome.ucsc.edu/license/ for licensing information. */ #ifndef HGMAF_H #define HGMAF_H #include "trackDb.h" #include "cart.h" #include "bbiFile.h" /* Track settings and variables */ #define SPECIES_TREE_VAR "speciesTree" #define SPECIES_ORDER_VAR "speciesOrder" #define SPECIES_GROUP_VAR "speciesGroups" #define SPECIES_TARGET_VAR "speciesTarget" #define SPECIES_DEFAULT_OFF_VAR "speciesDefaultOff" #define SPECIES_GROUP_PREFIX "sGroup_" #define SPECIES_HTML_TARGET "sT" #define SPECIES_CODON_DEFAULT "speciesCodonDefault" #define SPECIES_USE_FILE "speciesUseFile" #define SPECIES_LABELS "speciesLabels" #define PAIRWISE_VAR "pairwise" #define PAIRWISE_HEIGHT "pairwiseHeight" #define SUMMARY_VAR "summary" #define BASE_COLORS_VAR "baseColors" #define BASE_COLORS_OFFSET_VAR "baseColorsOffset" #define CONS_WIGGLE "wiggle" #define ITEM_FIRST_CHAR_CASE "itemFirstCharCase" #define DEFAULT_CONS_LABEL "Conservation" #define gsidSubjList "gsidTable.gsidSubjList" #define gsidSeqList "gsidTable.gsidSeqList" #define gisaidSubjList "gisaidTable.gisaidSubjList" #define gisaidSeqList "gisaidTable.gisaidSeqList" struct mafAli *mafLoadInRegion2(struct sqlConnection *conn, struct sqlConnection *conn2, char *table, char *chrom, int start, int end, char *file); /* Return list of alignments in region. */ struct mafAli *mafLoadInRegion(struct sqlConnection *conn, char *table, char *chrom, int start, int end); /* Return list of alignments in region. */ struct mafAli *axtLoadAsMafInRegion(struct sqlConnection *conn, char *table, char *chrom, int start, int end, char *tPrefix, char *qPrefix, int tSize, struct hash *qSizeHash); /* Return list of alignments in region from axt external file as a maf. */ +struct mafBaseProbs +// the probability of each nucleotide being in a certain colum + { + double aProb, cProb, gProb, tProb; + }; + +struct mafBaseProbs *hgMafProbs( + char *database, /* Database, must already have hSetDb to this */ + char *track, /* Name of MAF track */ + char *chrom, /* Chromosome (in database genome) */ + int start, int end, /* start/end in chromosome */ + char strand /* Chromosome strand. */ + ); +/* calculate the probability of each nucleotide in each column of a maf. */ + struct mafAli *hgMafFrag( char *database, /* Database, must already have hSetDb to this */ char *track, /* Name of MAF track */ char *chrom, /* Chromosome (in database genome) */ int start, int end, /* start/end in chromosome */ char strand, /* Chromosome strand. */ char *outName, /* Optional name to use in first component */ struct slName *orderList /* Optional order of organisms. */ ); /* mafFrag- Extract maf sequences for a region from database. * This creates a somewhat unusual MAF that extends from start * to end whether or not there are actually alignments. Where * there are no alignments (or alignments missing a species) * a . character fills in. The score is always zero, and * the sources just indicate the species. You can mafFree this * as normal. */ int mafCmp(const void *va, const void *vb); /* Compare to sort based on start of first component. */ struct consWiggle { struct consWiggle *next; /* Next in list */ char *table; /* phastCons table */ char *leftLabel; /* Left label for hgTracks */ char *uiLabel; /* Label to print on trackUi */ }; struct consWiggle *wigMafWiggles(char *db, struct trackDb *tdb); /* get conservation wiggle table names and labels from trackDb setting, ignoring those where table doesn't exist */ char *wigMafWiggleVar(char *prefix, struct consWiggle *wig,char **suffix); // Return name of cart variable (and optionally the suffix) for this cons wiggle struct wigMafSpecies { struct wigMafSpecies *next; char *name; int group; boolean on; }; struct wigMafSpecies * wigMafSpeciesTable(struct cart *cart, struct trackDb *tdb, char *name, char *db) ; char **wigMafGetSpecies(struct cart *cart, struct trackDb *tdb, char *prefix, char *db, struct wigMafSpecies **list, int *groupCt); struct consWiggle *consWiggleFind(char *db,struct trackDb *parent,char *table); /* Return conservation wig if it is found in the parent. */ struct mafAli *bigMafLoadInRegion( struct bbiFile *bbi, char *chrom, int start, int end); /* Read in MAF blocks from bigBed. */ struct hash *mafGetLabelHash(struct trackDb *tdb); /* Get mapping of sequence name to label. */ #endif//ndef HGMAF_H