0564395ec363631f2ff8d295da6f6b50f873fda4 braney Mon Jan 24 17:01:53 2022 -0800 more chromAlias work: some name changes and support for the new genark chromAlias format diff --git src/hg/inc/chromAlias.h src/hg/inc/chromAlias.h index 7d287b2..902abc4 100644 --- src/hg/inc/chromAlias.h +++ src/hg/inc/chromAlias.h @@ -1,84 +1,87 @@ /* chromAlias.h was originally generated by the autoSql program, which also * generated chromAlias.c and chromAlias.sql. This header links the database and * the RAM representation of objects. */ #ifndef CHROMALIAS_H #define CHROMALIAS_H #define CHROMALIAS_NUM_COLS 3 extern char *chromAliasCommaSepFieldNames; struct chromAlias /* correspondence of UCSC chromosome names to refseq, genbank, and ensembl names */ { struct chromAlias *next; /* Next in singly linked list. */ char *alias; /* external name */ char *chrom; /* UCSC genome browser chromosome name */ char *source; /* comma separated list, when available: refseq,genbank,ensembl */ }; void chromAliasStaticLoad(char **row, struct chromAlias *ret); /* Load a row from chromAlias table into ret. The contents of ret will * be replaced at the next call to this function. */ struct chromAlias *chromAliasLoad(char **row); /* Load a chromAlias from row fetched with select * from chromAlias * from database. Dispose of this with chromAliasFree(). */ struct chromAlias *chromAliasLoadAll(char *fileName); /* Load all chromAlias from whitespace-separated file. * Dispose of this with chromAliasFreeList(). */ struct chromAlias *chromAliasLoadAllByChar(char *fileName, char chopper); /* Load all chromAlias from chopper separated file. * Dispose of this with chromAliasFreeList(). */ #define chromAliasLoadAllByTab(a) chromAliasLoadAllByChar(a, '\t'); /* Load all chromAlias from tab separated file. * Dispose of this with chromAliasFreeList(). */ struct chromAlias *chromAliasCommaIn(char **pS, struct chromAlias *ret); /* Create a chromAlias out of a comma separated string. * This will fill in ret if non-null, otherwise will * return a new chromAlias */ void chromAliasFree(struct chromAlias **pEl); /* Free a single dynamically allocated chromAlias such as created * with chromAliasLoad(). */ void chromAliasFreeList(struct chromAlias **pList); /* Free a list of dynamically allocated chromAlias's */ void chromAliasOutput(struct chromAlias *el, FILE *f, char sep, char lastSep); /* Print out chromAlias. Separate fields with sep. Follow last field with lastSep. */ #define chromAliasTabOut(el,f) chromAliasOutput(el,f,'\t','\n'); /* Print out chromAlias as a line in a tab-separated file. */ #define chromAliasCommaOut(el,f) chromAliasOutput(el,f,',',','); /* Print out chromAlias as a comma separated list including final comma. */ void chromAliasJsonOutput(struct chromAlias *el, FILE *f); /* Print out chromAlias in JSON format. */ /* -------------------------------- End autoSql Generated Code -------------------------------- */ struct hash *chromAliasMakeLookupTable(char *database); /* Given a database name and a connection to that database, construct a lookup table * that takes chromosome alias names to a matching struct chromAlias. Returns NULL * if the given database does not have a chromAlias table. */ struct hash *chromAliasMakeReverseLookupTable(char *database); /* Given a database name and a connection to that database, construct a lookup table * that takes the actual assembly chromosome names to struct chromAliases. Because a * chromosome name may well have multiple aliases, repeated calls to hashLookupNext * may be required to see them all. Returns NULL if the given database does not have * a chromAlias table. */ void chromAliasSetup(char *database); /* Read in the chromAlias file/table for this database. */ -struct hash *chromAliasGetHash(char *database); +struct hash *chromAliasChromToAliasHash(char *database); /* Get the hash that maps chrom names to their aliases. */ + +struct hash *chromAliasAliasToChromHash(char *database); +/* Get the hash that maps alias names to their chroms. */ #endif /* CHROMALIAS_H */