12d0bf30d4a9fbe7aee60fdf9e7f8827116ba400 markd Wed Jan 27 17:49:12 2021 -0800 allow overlap select to ignore non-standard columns in BED as well as genePred and PSL, as often come with bigBed diff --git src/hg/utils/overlapSelect/chromAnn.h src/hg/utils/overlapSelect/chromAnn.h index f8912cc..58f0cf1 100644 --- src/hg/utils/overlapSelect/chromAnn.h +++ src/hg/utils/overlapSelect/chromAnn.h @@ -50,40 +50,42 @@ struct chromAnn *ca; /* link back to chromAnn */ int start; /* block coordinates */ int end; }; struct chromAnnReader /* interface object used to read chromAnn objects from various formats */ { struct chromAnn* (*caRead)(struct chromAnnReader *car); /* read the next object, returns NULL on eof */ void (*carFree)(struct chromAnnReader **carPtr); /* function to free this object */ unsigned opts; /* options for reader */ + unsigned maxParsedColumns; /* just drag along columns after this. */ void *data; /* data associated with this reader */ }; void chromAnnFree(struct chromAnn **caPtr); /* free an object */ int chromAnnTotalBlockSize(struct chromAnn* ca); /* count the total bases in the blocks of a chromAnn */ -struct chromAnnReader *chromAnnBedReaderNew(char *fileName, unsigned opts); +struct chromAnnReader *chromAnnBedReaderNew(char *fileName, unsigned opts, + unsigned maxParsedCols); /* construct a reader for a BED file */ struct chromAnnReader *chromAnnGenePredReaderNew(char *fileName, unsigned opts); /* construct a reader for a genePred file */ struct chromAnnReader *chromAnnPslReaderNew(char *fileName, unsigned opts); /* construct a reader for a PSL file */ struct chromAnnReader *chromAnnChainReaderNew(char *fileName, unsigned opts); /* construct a reader for a chain file */ struct chromAnnReader *chromAnnTabReaderNew(char *fileName, struct coordCols* cols, unsigned opts); /* construct a reader for an arbitrary tab file */ INLINE struct chromAnnRef *chromAnnRefNew(struct chromAnn *chromAnn)