baed67b5aa7f67279b04e4cf2e33cafd2268f10d angie Mon Mar 12 15:46:09 2018 -0700 Adding obscure util pslFixCdsJoinGap, to correct the output of genePredToFakePsl for transcripts with +1 ribosomal frameshift. genePred exons skip over a base to maintain frame; genePredToFakePsl sees a 1-base gap on target, 0-base gap on query. However, the query base is skipped as described in Genbank CDS strings such as "join(168..260,262..741)". Use CDS strings to recognize these cases, and if the PSL has a 1-sided gap on target at the exact position of the skipped base then make the gap 2-sided to avoid making the alignment off-by-1 after that point and becoming a swamp of mismatches. The ideal solution would be to remove the gap and properly interpret join CDS in the rest of our software, but this will at least prevent totally incorrect genePred-derived PSL for transcripts with +1 ribosomal frameshift for now. refs #21048 diff --git src/hg/utils/makefile src/hg/utils/makefile index 50d1e96..78b3669 100644 --- src/hg/utils/makefile +++ src/hg/utils/makefile @@ -1,137 +1,138 @@ # Build all directories in utils # test comment # $Id: makefile,v 1.21 2010/06/04 00:12:42 larrym Exp $ kentSrc = ../.. include ${kentSrc}/inc/localEnvironment.mk include ${kentSrc}/inc/common.mk # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) # can not build this on Mac OSX - has functions not supported ifeq ($(UNAME_S),Darwin) buildRefresh= else buildRefresh=refreshNamedSessionCustomTracks endif # List of directories to build for userApps UTILS_APPLIST = \ bedExtendRanges \ bedToPsl \ bedWeedOverlapping \ bigMafToMaf \ bigPslToPsl \ chromGraphFromBin \ chromGraphToBin \ crTreeIndexBed \ crTreeSearchBed \ gapToLift \ genePredFilter \ genePredToBigGenePred \ genePredToProt \ gff3ToGenePred \ gff3ToPsl \ gtfToGenePred \ hubCheck \ hubPublicCheck \ mafToBigMaf \ makeTableList \ oligoMatch \ overlapSelect \ positionalTblCheck \ pslToBigPsl \ pslMap \ pslMapPostChain \ pslRc \ tdbQuery \ transMapPslToGenePred \ twoBitMask USER_APP_SCRIPTS = \ vai.pl SCRIPT_FILES = \ dbNsfpToBed.pl \ dumpDb.pl \ mergeOverlapBed4.pl \ mergeSortedBed3Plus.pl \ ${USER_APP_SCRIPTS} APP_SCRIPTS = ${SCRIPT_FILES} # List of directories to build of interest only at UCSC DIRS = ${buildRefresh} \ automation \ buildReleaseLog \ checkUrlsInTable \ geoMirrorNode \ hgvsToVcf \ makeTrackIndex \ mysqlSecurityCheck \ + pslFixCdsJoinGap \ pslUniq \ refSeqGet \ safePush \ toDev64 \ vcfToHgvs \ wigBedToStep TEST_DIRS = \ genePredFilter \ genePredToProt \ gff3ToGenePred \ gff3ToPsl \ gtfToGenePred \ hgvsToVcf \ hubCheck \ overlapSelect \ pslMap \ pslRc \ pslToBigPsl \ refSeqGet \ transMapPslToGenePred \ vcfToHgvs APPS = $(DIRS) $(UTILS_APPLIST) all:: utils utils: $(APPS:%=%.utils) $(APP_SCRIPTS:%=%.appScript) %.utils: cd $* && echo $* && $(MAKE) %.appScript: chmod +x $* rm -f ${DESTDIR}${SCRIPTS}/$* cp -p $* ${DESTDIR}${SCRIPTS}/$* userApps: $(UTILS_APPLIST:%=%.userApp) $(USER_APP_SCRIPTS:%=%.userAppScript) %.userApp: cd $* && echo $* && $(MAKE) %.userAppScript: chmod +x $* rm -f ${DESTDIR}${BINDIR}/$* cp -p $* ${DESTDIR}${BINDIR}/$* scripts: $(SCRIPT_FILES:%=%.scripts) %.scripts: chmod +x $* rm -f ${SCRIPTS}/$* cp -p $* ${SCRIPTS}/$* alpha: scripts all test:: ${TEST_DIRS:%=%.test} %.test: (cd $* && ${MAKE} test) clean:: $(APPS:%=%.clean) - find . -name '*.o' -exec rm {} \; %.clean: (cd $* && ${MAKE} clean) compile:: $(APPS:%=%.compile) - find . -name '*.o' -exec rm {} \; %.compile: (cd $* && ${MAKE} compile)