e9ed25747e3d8ab10963306b826f7cedc5e71897 Merge parents b18f2f9facb 992aeef92fe braney Mon Sep 7 11:35:30 2026 -0700 Merge branch 'quickLiftAlign38249' -- alignment tracks in quickLift, refs #38249 # Conflicts: # src/hg/lib/trackHub.c diff --cc src/hg/inc/chainNetDbLoad.h index d3a3b980553,4f5bca16631..a00f2c0d9c7 --- src/hg/inc/chainNetDbLoad.h +++ src/hg/inc/chainNetDbLoad.h @@@ -8,72 -8,53 +8,77 @@@ #ifndef CHAINNETDBLOAD_H #define CHAINNETDBLOAD_H #ifndef JKSQL_H #include "jksql.h" #endif #ifndef NETALIGN_H #include "netAlign.h" #endif #ifndef CHAINNET_H #include "chainNet.h" #endif +#ifndef BIGNET_H +#include "bigNet.h" +#endif + +#ifndef BIGBED_H +#include "bigBed.h" +#endif + struct cnFill *cnFillFromNetAlign(struct netAlign *na, struct hash *nameHash); /* Convert netAlign to cnFill. Name hash is a place to store * the strings. */ struct chainNet *chainNetLoadResult(struct sqlResult *sr, int rowOffset); /* Given a query result that returns a bunch netAligns, make up * a list of chainNets that has the equivalent information. * Note the net->size field is not filled in. */ struct chainNet *chainNetLoadRange(char *database, char *track, char *chrom, int start, int end, char *extraWhere); /* Load parts of a net track that intersect range. */ +struct chainNet *chainNetLoadRangeHub(char *fileName, char *chrom, int start, int end); +/* Load the parts of a bigNet file that intersect range into a chainNet. + * Note the net->size field is not filled in. */ + +struct chainNet *chainNetLoadRangeQuickLift(char *quickLiftFile, char *fileName, + char *chrom, int start, int end); +/* Load the part of a bigNet file that quickLifts into chrom:start-end, and build a + * chainNet in the destination assembly's coordinates. Only the target side of the net + * moves; the query side describes a third assembly and is carried across untouched. + * Note the net->size field is not filled in. */ + +struct bigNet *bigNetFromInterval(struct bbiFile *bbi, struct bigBedInterval *bb, + char *fileName, struct bigNet *bn); +/* Fill in bn from one interval of a bigNet file. The chrom name is the one the file + * carries, which for a quickLifted net is in the source assembly. */ + struct chainNet *chainNetLoadChrom(char *database, char *track, char *chrom, char *extraWhere); /* Load net on whole chromosome. */ + struct chain *chainLoadRange(char *database, char *track, char *chrom, int start, int end); + /* Load every chain in a range from the database, each carrying the blocks that overlap the + * range. As with chainLoadIdRange the chain header still describes the whole chain, not + * just the part in range. */ + struct chain *chainLoadIdRangeHub(char *database, char *fileName, char *track, char *chrom, int start, int end, int id); /* Load parts of chain of given ID from bigChain file. Note the chain header * including score, tStart, tEnd, will still reflect the whole chain, * not just the part in range. However only the blocks of the chain * overlapping the range will be loaded. */ struct chain *chainLoadIdRange(char *database, char *track, char *chrom, int start, int end, int id); /* Load parts of chain of given ID from database. Note the chain header * including score, tStart, tEnd, will still reflect the whole chain, * not just the part in range. However only the blocks of the chain * overlapping the range will be loaded. */ struct chain *chainLoadId(char *database, char *track, char *chrom, int id);