7f7a9a5579d7acec698c51dbf93f5030ce1a0439 braney Tue Apr 8 15:43:17 2025 -0700 support genePred in quickLift diff --git src/hg/inc/liftOver.h src/hg/inc/liftOver.h index 6c2359302f7..7b1bfc0cddd 100644 --- src/hg/inc/liftOver.h +++ src/hg/inc/liftOver.h @@ -1,24 +1,25 @@ /* lift genome annotations between assemblies using chain files */ /* Copyright (C) 2013 The Regents of the University of California * See kent/LICENSE or http://genome.ucsc.edu/license/ for licensing information. */ #ifndef LIFTOVER_H #define LIFTOVER_H #include "chain.h" +#include "genePred.h" #define LIFTOVER_MINMATCH 0.95 #define LIFTOVER_MINBLOCKS 1.00 enum liftOverFileType { none = 0, bed = 1, positions = 2, }; struct liftOverChain *liftOverChainList(); /* Get list of all liftOver chains in the central database */ void filterOutMissingChains(struct liftOverChain **pChainList); @@ -97,30 +98,35 @@ void liftOverGff(char *fileName, struct hash *chainHash, double minMatch, double minBlocks, FILE *mapped, FILE *unmapped, bool preserveInput); /* Lift over GFF file */ void liftOverPsl(char *fileName, struct hash *chainHash, double minMatch, double minBlocks, bool fudgeThick, FILE *f, FILE *unmapped); /* Open up PSL file, and lift it. */ void liftOverGenePred(char *fileName, struct hash *chainHash, double minMatch, double minBlocks, bool fudgeThick, FILE *mapped, FILE *unmapped, boolean multiple, bool preserveInput); /* Lift over file in genePred format. */ +void calcLiftOverGenePreds( struct genePred *gpList, struct hash *chainHash, + double minMatch, double minBlocks, bool fudgeThick, + FILE *mapped, FILE *unmapped, boolean multiple, bool preserveInput); +/* worker function for liftOverGenePred. */ + void liftOverSample(char *fileName, struct hash *chainHash, double minMatch, double minBlocks, bool fudgeThick, FILE *mapped, FILE *unmapped, bool preserveInput); /* Open up sample file, and lift it */ void readLiftOverMap(char *fileName, struct hash *chainHash); /* Read map file into hashes. */ char *liftOverErrHelp(); /* Help message explaining liftOver failures */ char *remapBlockedBed(struct hash *chainHash, struct bed *bed, double minMatch, double minBlocks, bool fudgeThick, bool multiple, char *db, char *chainTable); /* Remap blocks in bed, and also chromStart/chromEnd. If multiple, then bed->next may be