acaa4f6b604d90d9573204fb866b88990f5203c3
kent
  Thu Jan 29 14:38:14 2015 -0800
Adding note that this line of development is moving to tagStorm.

diff --git src/inc/meta.h src/inc/meta.h
index 5a09103..e9be142 100644
--- src/inc/meta.h
+++ src/inc/meta.h
@@ -1,95 +1,97 @@
 /* metaRa - stuff to parse and interpret a genome-hub meta.txt file, which is in 
  * a hierarchical ra format.  That is something like:
  *     meta topLevel
  *     cellLine HELA
  *
  *         meta midLevel
  *         target H3K4Me3
  *         antibody abCamAntiH3k4me3
  *       
  *            meta lowLevel
  *            fileName hg19/chipSeq/helaH3k4me3.narrowPeak.bigBed
  * The file is interpreted so that lower level stanzas inherit tags from higher level ones.
+ * NOTE: this file has largely been superceded by the tagStorm module, which does not
+ * require meta tags, but is otherwise similar. 
  */
 
 #ifndef META_H
 #define META_H
 
 struct metaTagVal
 /* A tag/value pair. */
     {
     struct metaTagVal *next;	/* Next in list. */
     char *tag;	/* Tag name. */
     char *val;	/* Tag value. */
     };
 
 struct metaTagVal *metaTagValNew(char *tag, char *val);
 /* Create new meta tag/val */
 
 void metaTagValFree(struct metaTagVal **pMtv);
 /* Free up metaTagVal. */
 
 void metaTagValFreeList(struct metaTagVal **pList);
 /* Free a list of dynamically allocated metaTagVal's */
 
 int metaTagValCmp(const void *va, const void *vb);
 /* Compare to sort based on tag name . */
 
 struct meta
 /* A node in the metadata tree */
     {
     struct meta *next;  /* Pointer to next younger sibling. */
     struct meta *children;	/* Pointer to eldest child. */
     struct meta *parent;	/* Pointer to parent. */
     char *name;		    /* Same as val of meta tag. Not allocated here. */
     struct metaTagVal *tagList;	/* All tags, including the "meta" one. */
     int indent;                 /* Indentation level - generally only set if read from file. */
     };
 
 struct meta *metaLoadAll(char *fileName, char *keyTag, char *parentTag,
     boolean ignoreOtherStanzas, boolean ignoreIndent);
 /* Loads in all ra stanzas from file and turns them into a list of meta, some of which
  * may have children.  The keyTag parameter is optional.  If non-null it should be set to
  * the tag name that starts a stanza.   If null, the first tag of the first stanza will be used.
  * The parentTag if non-NULL will be a tag name used to define the parent of a stanza.
  * The ignoreOtherStanzas flag if set will ignore stanzas that start with other tags.  
  * If not set the routine will abort on such stanzas.  The ignoreIndent if set will
  * use the parentTag (which must be set) to define the hierarchy.  Otherwise the program
  * will look at the indentation, and if there is a parentTag complain about any
  * disagreements between indentation and parentTag. */
 
 void metaFree(struct meta **pMeta);
 /* Free up memory associated with a meta. */
 
 void metaFreeForest(struct meta **pForest);
 /* Free up all metas in forest and their children. */ 
 
 void metaFreeList(struct meta **pList);
 /* Free a list of dynamically allocated meta's. Use metaFreeForest to free children too. */
 
 #define META_DEFAULT_INDENT 4	/* Default size for meta indentation */
 
 void metaWriteAll(struct meta *metaList, char *fileName, int indent, boolean withParent, 
     int maxDepth);
 /* Write out metadata, including children, optionally adding meta tag.   By convention
  * for out meta.txt/meta.ra files, indent is 4, withParent is FALSE.  If maxDepth is
  * non-zero just write out up to that many levels.  Root level is 0. */
 
 char *metaLocalTagVal(struct meta *meta, char *tag);
 /* Return value of tag found in this node, not going up to parents. */
 
 char *metaTagVal(struct meta *meta, char *tag);
 /* Return value of tag found in this node or if its not there in parents.
  * Returns NULL if tag not found. */
 
 void metaAddTag(struct meta *meta, char *tag, char *val);
 /* Add tag/val to meta. */
 
 void metaSortTags(struct meta *meta);
 /* Do canonical sort so that the first tag stays first but the
  * rest are alphabetical. */
 
 struct hash *metaHash(struct meta *forest);
 /* Return hash of meta at all levels of heirarchy keyed by meta value. */
 
 #endif /* META_H */