f7f5b164d6bacfd8da9b8f7772497ef971f2b0f8 galt Fri Dec 19 11:37:31 2025 -0800 Add options -chrom -start -end -range -bed -positions -udcDir to bigMafToMaf. Adds -positions to bigBedToBed. Moved parsePosition and parseRange routines into common.c so they could be shared with these and other utilities. -range has one 0-based start on commandline. -positions is a file with a list of 1-based starts. fixes #28109 diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index 1b68a0028f0..e9c677889b5 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -15237,57 +15237,30 @@ if (!hFindSplitTable(database, seqName, tdb->table, table, sizeof table, &hasBin)) errAbort("track %s not found", tdb->table); sqlSafef(query, sizeof query, "select * from %s where qName = '%s'", table, itemName); sr = sqlGetResult(conn, query); while ((row = sqlNextRow(sr)) != NULL) { psl = pslLoad(row+hasBin); slAddHead(&pslList, psl); } sqlFreeResult(&sr); slReverse(&pslList); printAlignments(pslList, start, "htcBlatXeno", tdb->table, itemName); printTrackHtml(tdb); } -boolean parseRange(char *range, char **retSeq, int *retStart, int *retEnd) -/* Parse seq:start-end into components. */ -{ -char *s, *e; -s = strchr(range, ':'); -if (s == NULL) - return FALSE; -*s++ = 0; -e = strchr(s, '-'); -if (e == NULL) - return FALSE; -*e++ = 0; -if (!isdigit(s[0]) || !isdigit(e[0])) - return FALSE; -*retSeq = range; -*retStart = atoi(s); -*retEnd = atoi(e); -return TRUE; -} - -void mustParseRange(char *range, char **retSeq, int *retStart, int *retEnd) -/* Parse seq:start-end or die. */ -{ -if (!parseRange(range, retSeq, retStart, retEnd)) - errAbort("Malformed range %s", range); -} - struct psl *loadPslAt(char *track, char *qName, int qStart, int qEnd, char *tName, int tStart, int tEnd) /* Load a specific psl */ { struct dyString *dy = dyStringNew(1024); struct sqlConnection *conn = hAllocConn(database); char table[HDB_MAX_TABLE_STRING]; boolean hasBin; struct sqlResult *sr; char **row; struct psl *psl; if (!hFindSplitTable(database, tName, track, table, sizeof table, &hasBin)) errAbort("track %s not found", track); sqlDyStringPrintf(dy, "select * from %s ", table); sqlDyStringPrintf(dy, "where qStart = %d ", qStart);