src/hg/makeDb/hgBedsToBedExps/hgBedsToBedExps.c 1.3
1.3 2010/03/08 23:35:38 kent
Small tweaking to get it to work with real rather than pretend data.
Index: src/hg/makeDb/hgBedsToBedExps/hgBedsToBedExps.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/makeDb/hgBedsToBedExps/hgBedsToBedExps.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -b -B -U 4 -r1.2 -r1.3
--- src/hg/makeDb/hgBedsToBedExps/hgBedsToBedExps.c 26 Nov 2007 15:50:44 -0000 1.2
+++ src/hg/makeDb/hgBedsToBedExps/hgBedsToBedExps.c 8 Mar 2010 23:35:38 -0000 1.3
@@ -17,9 +17,9 @@
"hgBedsToBedExps - Convert multiple bed files to a single bedExp.\n"
"usage:\n"
" hgBedsToBedExps in.cfg out.bed out.exps\n"
"where in.cfg is a tab separated file that describes the beds. The columns are\n"
- " <factor> <cell line> <cell letter> <db/file> <data type> <file/table>\n"
+ " <factor> <cell line> <cell letter> <db/file> <data type> <multiplier> <file/table>\n"
"options:\n"
" -xxx=XXX\n"
);
}
@@ -143,27 +143,12 @@
}
else
lineFileExpectWords(lf, neededSize, gotSize);
AllocVar(bg);
- if (sameString(cfg->dataType, "bedGraph"))
- {
bg->chrom = cloneString(row[0]);
bg->chromStart = lineFileNeedNum(lf, row, 1);
bg->chromEnd = lineFileNeedNum(lf, row, 2);
- bg->dataValue = lineFileNeedDouble(lf, row, 3);
- }
- else if (sameString(cfg->dataType, "bedScore"))
- {
- bg->chrom = cloneString(row[0]);
- bg->chromStart = lineFileNeedNum(lf, row, 1);
- bg->chromEnd = lineFileNeedNum(lf, row, 2);
- bg->dataValue = lineFileNeedNum(lf, row, 4) * 0.001;
- }
- else
- {
- errAbort("Unknown data type %s", cfg->dataType);
- }
- bg->dataValue *= cfg->multiplier;
+ bg->dataValue = lineFileNeedDouble(lf, row, cfg->scoreCol) * cfg->multiplier;
slAddHead(&bgList, bg);
}
}
else
@@ -259,8 +244,10 @@
newRange->end = bg->chromEnd;
newRange->val = site;
for (oldRange = rangeList; oldRange != NULL; oldRange = oldRange->next)
{
+ newRange->start = min(newRange->start, oldRange->start);
+ newRange->end = max(newRange->end, oldRange->end);
newRange->val = slCat(oldRange->val, newRange->val);
rbTreeRemove(chromTree, oldRange);
}
rbTreeAdd(chromTree, newRange);
@@ -282,16 +269,10 @@
void hgBedsToBedExps(char *inCfg, char *outBed, char *outExp)
/* hgBedsToBedExps - Convert multiple bed files to a single bedExp.. */
{
-/* Load up input configuration and do a little error checking. */
+/* Load up input configuration . */
struct bToBeCfg *cfg, *cfgList = bToBeCfgLoadAll(inCfg);
-for (cfg = cfgList; cfg != NULL; cfg = cfg->next)
- {
- if (!sameString(cfg->dataType, "bedGraph") &&
- !sameString(cfg->dataType, "bedScore"))
- errAbort("Unrecognized data type %s", cfg->dataType);
- }
verbose(1, "Loaded %d records from %s\n", slCount(cfgList), inCfg);
/* Find and output all sources used. */
struct hash *sourceHash = hashNew(0);