diff --git a/src/jacusa/VersionInfo.java b/src/jacusa/VersionInfo.java index 5c3c5113..d1402875 100644 --- a/src/jacusa/VersionInfo.java +++ b/src/jacusa/VersionInfo.java @@ -8,7 +8,7 @@ public final class VersionInfo { public static final String BRANCH = "master"; - public static final String TAG = "2.0.2-RC"; + public static final String TAG = "2.0.4"; // change this manually public static final String[] LIBS = new String[] { diff --git a/src/jacusa/method/call/CallMethod.java b/src/jacusa/method/call/CallMethod.java index c27bdb05..19314e64 100644 --- a/src/jacusa/method/call/CallMethod.java +++ b/src/jacusa/method/call/CallMethod.java @@ -38,6 +38,7 @@ import lib.cli.options.ShowAllSitesOption; import lib.cli.options.ShowDeletionCountOption; import lib.cli.options.ShowInsertionCountOption; +import lib.cli.options.ShowInsertionStartCountOption; import lib.cli.options.HelpOption; import lib.cli.options.MaxThreadOption; import lib.cli.options.ResultFileOption; @@ -121,6 +122,7 @@ protected void initGlobalACOptions() { addACOption(new StratifyByReadTagOption(getParameter())); addACOption(new ShowDeletionCountOption(getParameter())); addACOption(new ShowInsertionCountOption(getParameter())); + addACOption(new ShowInsertionStartCountOption(getParameter())); addACOption(new BedCoordinatesOption(getParameter())); addACOption(new ResultFileOption(getParameter())); @@ -276,7 +278,7 @@ protected void addRequired(final AbstractBuilder builder) { addBaseSub2int(builder, DataType.BASE_SUBST2DELETION_COUNT); addBaseSub2int(builder, DataType.BASE_SUBST2COVERAGE); } - if (parameter.showInsertionCount()) { + if (parameter.showInsertionCount() || parameter.showInsertionStartCount()) { addBaseSub2int(builder, DataType.BASE_SUBST2INSERTION_COUNT); addBaseSub2int(builder, DataType.BASE_SUBST2COVERAGE); } @@ -285,7 +287,7 @@ protected void addRequired(final AbstractBuilder builder) { add(builder, DataType.DELETION_COUNT); guardedAdd(builder, DataType.COVERAGE); } - if (parameter.showInsertionCount()) { + if (parameter.showInsertionCount() || parameter.showInsertionStartCount()) { add(builder, DataType.INSERTION_COUNT); guardedAdd(builder, DataType.COVERAGE); } diff --git a/src/jacusa/method/pileup/PileupMethod.java b/src/jacusa/method/pileup/PileupMethod.java index a2039283..5cc513ea 100644 --- a/src/jacusa/method/pileup/PileupMethod.java +++ b/src/jacusa/method/pileup/PileupMethod.java @@ -36,6 +36,7 @@ import lib.cli.options.ResultFormatOption; import lib.cli.options.ShowDeletionCountOption; import lib.cli.options.ShowInsertionCountOption; +import lib.cli.options.ShowInsertionStartCountOption; import lib.cli.options.ThreadWindowSizeOption; import lib.cli.options.WindowSizeOption; import lib.cli.options.condition.MaxDepthConditionOption; @@ -99,6 +100,7 @@ protected void initGlobalACOptions() { addACOption(new StratifyByReadTagOption(getParameter())); addACOption(new ShowDeletionCountOption(getParameter())); addACOption(new ShowInsertionCountOption(getParameter())); + addACOption(new ShowInsertionStartCountOption(getParameter())); addACOption(new BedCoordinatesOption(getParameter())); addACOption(new ResultFileOption(getParameter())); @@ -239,7 +241,7 @@ protected void addRequired(final AbstractBuilder builder) { addBaseSub2int(builder, DataType.BASE_SUBST2DELETION_COUNT); addBaseSub2int(builder, DataType.BASE_SUBST2COVERAGE); } - if (parameter.showInsertionCount()) { + if (parameter.showInsertionCount() || parameter.showInsertionStartCount()) { addBaseSub2int(builder, DataType.BASE_SUBST2INSERTION_COUNT); addBaseSub2int(builder, DataType.BASE_SUBST2COVERAGE); } @@ -248,7 +250,7 @@ protected void addRequired(final AbstractBuilder builder) { add(builder, DataType.DELETION_COUNT); guardedAdd(builder, DataType.COVERAGE); } - if (parameter.showInsertionCount()) { + if (parameter.showInsertionCount() || parameter.showInsertionStartCount()) { add(builder, DataType.INSERTION_COUNT); guardedAdd(builder, DataType.COVERAGE); } diff --git a/src/jacusa/method/rtarrest/RTarrestMethod.java b/src/jacusa/method/rtarrest/RTarrestMethod.java index 52ddd672..d41b73e9 100644 --- a/src/jacusa/method/rtarrest/RTarrestMethod.java +++ b/src/jacusa/method/rtarrest/RTarrestMethod.java @@ -35,6 +35,7 @@ import lib.cli.options.ResultFormatOption; import lib.cli.options.ShowDeletionCountOption; import lib.cli.options.ShowInsertionCountOption; +import lib.cli.options.ShowInsertionStartCountOption; import lib.cli.options.HelpOption; import lib.cli.options.MaxThreadOption; import lib.cli.options.ResultFileOption; @@ -114,6 +115,7 @@ protected void initGlobalACOptions() { addACOption(new StratifyByReadTagOption(getParameter())); addACOption(new ShowDeletionCountOption(getParameter())); addACOption(new ShowInsertionCountOption(getParameter())); + addACOption(new ShowInsertionStartCountOption(getParameter())); addACOption(new BedCoordinatesOption(getParameter())); addACOption(new ResultFileOption(getParameter())); @@ -293,7 +295,7 @@ protected void addRequired(final AbstractBuilder builder) { addBaseSub2int(builder, DataType.BASE_SUBST2DELETION_COUNT); addBaseSub2int(builder, DataType.BASE_SUBST2COVERAGE); } - if (parameter.showInsertionCount()) { + if (parameter.showInsertionCount() || parameter.showInsertionStartCount()) { addBaseSub2int(builder, DataType.BASE_SUBST2INSERTION_COUNT); addBaseSub2int(builder, DataType.BASE_SUBST2COVERAGE); } @@ -302,7 +304,7 @@ protected void addRequired(final AbstractBuilder builder) { add(builder, DataType.DELETION_COUNT); guardedAdd(builder, DataType.COVERAGE); } - if (parameter.showInsertionCount()) { + if (parameter.showInsertionCount() || parameter.showInsertionStartCount()) { add(builder, DataType.INSERTION_COUNT); guardedAdd(builder, DataType.COVERAGE); } diff --git a/src/jacusa/worker/CallWorker.java b/src/jacusa/worker/CallWorker.java index da350793..64633731 100644 --- a/src/jacusa/worker/CallWorker.java +++ b/src/jacusa/worker/CallWorker.java @@ -67,7 +67,7 @@ protected Result process(final ParallelData parallelData) { result = new DeletionCountResult(baseSubs, result, minkaPrm, delCountProv); } - if (getParameter().showInsertionCount()) { + if (getParameter().showInsertionCount() || getParameter().showInsertionStartCount()) { final MinkaParameter minkaPrm = new MinkaParameter(); final InsertionEstCountProvider insCountProv = new InsertionEstCountProvider(minkaPrm.getMaxIterations()); diff --git a/src/jacusa/worker/PileupWorker.java b/src/jacusa/worker/PileupWorker.java index d7ac437e..a65532a5 100644 --- a/src/jacusa/worker/PileupWorker.java +++ b/src/jacusa/worker/PileupWorker.java @@ -62,7 +62,7 @@ protected Result process(final ParallelData parallelData) { result = new DeletionCountResult(baseSubs, result, minkaPrm, delCountProv); } - if (getParameter().showInsertionCount()) { + if (getParameter().showInsertionCount() || getParameter().showInsertionStartCount()) { final MinkaParameter minkaPrm = new MinkaParameter(); final InsertionEstCountProvider insCountProv = new InsertionEstCountProvider(minkaPrm.getMaxIterations()); diff --git a/src/jacusa/worker/RTArrestWorker.java b/src/jacusa/worker/RTArrestWorker.java index 7124446e..cb18f7c6 100644 --- a/src/jacusa/worker/RTArrestWorker.java +++ b/src/jacusa/worker/RTArrestWorker.java @@ -76,7 +76,7 @@ protected Result process(final ParallelData parallelData) { result = new DeletionCountResult(baseSubs, result, minkaPrm, delCountProv); } - if (getParameter().showInsertionCount()) { + if (getParameter().showInsertionCount() || getParameter().showInsertionStartCount()) { final MinkaParameter minkaPrm = new MinkaParameter(); final InsertionEstCountProvider insCountProv = new InsertionEstCountProvider(minkaPrm.getMaxIterations()); diff --git a/src/lib/cli/options/ShowInsertionStartCountOption.java b/src/lib/cli/options/ShowInsertionStartCountOption.java new file mode 100644 index 00000000..d7e05d33 --- /dev/null +++ b/src/lib/cli/options/ShowInsertionStartCountOption.java @@ -0,0 +1,34 @@ +package lib.cli.options; + +import lib.cli.parameter.GeneralParameter; + +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.Option; + +public class ShowInsertionStartCountOption extends AbstractACOption { + + private final GeneralParameter parameter; + + public ShowInsertionStartCountOption(final GeneralParameter parameter) { + super("i", "show-start-insertions"); + this.parameter = parameter; + } + + @Override + public Option getOption(final boolean printExtendedHelp) { + return Option.builder(getOpt()) + .hasArg(false) + .desc("Show start insertion score") + .build(); + } + + /** + * Tested in @see test.lib.cli.options.FilterModusOptionTest + */ + + @Override + public void process(final CommandLine line) throws Exception { + parameter.showInsertionStartsCount(true); + } + +} \ No newline at end of file diff --git a/src/lib/cli/parameter/GeneralParameter.java b/src/lib/cli/parameter/GeneralParameter.java index 17ec666d..fc2ef1b8 100644 --- a/src/lib/cli/parameter/GeneralParameter.java +++ b/src/lib/cli/parameter/GeneralParameter.java @@ -48,6 +48,7 @@ public class GeneralParameter private final SortedSet baseSubs; private boolean showDeletionCount; private boolean showInsertionCount; + private boolean showInsertionStartCount; private boolean showAllSites; // debug flag @@ -227,6 +228,10 @@ public boolean showDeletionCount() { public boolean showInsertionCount() { return showInsertionCount; } + + public boolean showInsertionStartCount() { + return showInsertionStartCount; + } /** * @param showDeletionCount the showDeletionCount to set @@ -234,14 +239,24 @@ public boolean showInsertionCount() { public void showDeletionCount(boolean showDeletionCount) { this.showDeletionCount = showDeletionCount; } - + /** * @param showInsertionCount the showInsertionCount to set */ - public void showInsertionCount(boolean showInsertionCount) { + public void showInsertionCount(boolean showInsertionCount) throws Exception { + if (showInsertionStartCount && showInsertionCount) { + throw new Exception("Cannot set both to true"); + } this.showInsertionCount = showInsertionCount; } - + + public void showInsertionStartsCount(boolean showInsertionStartCount) throws Exception { + if (this.showInsertionCount && showInsertionStartCount) { + throw new Exception("Cannot set both to true"); + } + this.showInsertionStartCount = showInsertionStartCount; + } + /** * @return the showDeletionCount */ diff --git a/src/lib/data/assembler/factory/AbstractSiteDataAssemblerFactory.java b/src/lib/data/assembler/factory/AbstractSiteDataAssemblerFactory.java index ce7e48f1..a240c0ff 100644 --- a/src/lib/data/assembler/factory/AbstractSiteDataAssemblerFactory.java +++ b/src/lib/data/assembler/factory/AbstractSiteDataAssemblerFactory.java @@ -79,10 +79,12 @@ protected void addInsertionCache( final SharedStorage sharedStorage, final Cache cache) { - if (parameter.showInsertionCount()) { - cache.addCache(createInsertionCache( - sharedStorage, - DataType.INSERTION_COUNT.getFetcher())); + if (parameter.showInsertionCount() || parameter.showInsertionStartCount()) { + final boolean onlyStart = parameter.showInsertionStartCount(); + cache.addCache(createInsertionCache( + sharedStorage, + DataType.INSERTION_COUNT.getFetcher(), + onlyStart)); } } @@ -115,7 +117,7 @@ Cache createDeletionCache( } Cache createInsertionCache( - final SharedStorage sharedStorage, final Fetcher insFetcher) { + final SharedStorage sharedStorage, final Fetcher insFetcher, final boolean onlyStart) { final Cache cache = new Cache(); @@ -125,7 +127,7 @@ Cache createInsertionCache( final CoordinateTranslator translator = sharedStorage.getCoordinateController() .getCoordinateTranslator(); - cache.addRecordProcessor(new InsertionRecordProcessor(translator, insStorage)); + cache.addRecordProcessor(new InsertionRecordProcessor(translator, insStorage, onlyStart)); return cache; } @@ -174,7 +176,7 @@ protected void stratifyByBaseSub( algnPosProc.addStorage(bccStorage); baseSub2algnPosProc.put(baseSub, algnPosProc); - if (prm.showInsertionCount() || prm.showDeletionCount()) { + if (prm.showInsertionCount() || prm.showInsertionStartCount() || prm.showDeletionCount()) { final PositionProcessor covPosProc = new PositionProcessor(); final Fetcher covFetcher = new IntegerDataExtractor( baseSub, @@ -186,7 +188,7 @@ protected void stratifyByBaseSub( covPosProc.addStorage(covStorage); baseSub2covPosProc.put(baseSub, covPosProc); } - if (prm.showInsertionCount()) { + if (prm.showInsertionCount() || prm.showInsertionStartCount()) { final PositionProcessor insPosProc = new PositionProcessor(); final Fetcher insFetcher = new IntegerDataExtractor( baseSub, @@ -221,7 +223,8 @@ protected void stratifyByBaseSub( baseSub2algnPosProc, baseSub2covPosProc, baseSub2insPosProc, - baseSub2delPosProc)); + baseSub2delPosProc, + prm.showInsertionStartCount())); } } diff --git a/src/lib/data/assembler/factory/CallDataAssemblerFactory.java b/src/lib/data/assembler/factory/CallDataAssemblerFactory.java index 4714b45d..e7af0d18 100644 --- a/src/lib/data/assembler/factory/CallDataAssemblerFactory.java +++ b/src/lib/data/assembler/factory/CallDataAssemblerFactory.java @@ -57,7 +57,7 @@ protected Cache createCache( final PositionProcessor positionProcessor = new PositionProcessor(validators, bcqcStorage); cache.addRecordProcessor(new AlignmentBlockProcessor(translator, positionProcessor)); - if (parameter.showInsertionCount() || parameter.showDeletionCount()) { + if (parameter.showInsertionCount() || parameter.showInsertionStartCount() || parameter.showDeletionCount()) { cache.addCache(createCoverageCache(sharedStorage, DataType.COVERAGE.getFetcher())); } addDeletionCache(parameter, sharedStorage, cache); diff --git a/src/lib/data/assembler/factory/PileupDataAssemblerFactory.java b/src/lib/data/assembler/factory/PileupDataAssemblerFactory.java index b1eebf69..1d73d9e7 100644 --- a/src/lib/data/assembler/factory/PileupDataAssemblerFactory.java +++ b/src/lib/data/assembler/factory/PileupDataAssemblerFactory.java @@ -54,7 +54,7 @@ protected Cache createCache( positionProcessor)); cache.addStorage(bcqcStorage); - if (parameter.showInsertionCount() || parameter.showDeletionCount()) { + if (parameter.showInsertionCount() || parameter.showInsertionStartCount() || parameter.showDeletionCount()) { cache.addCache(createCoverageCache(sharedStorage, DataType.COVERAGE.getFetcher())); } addInsertionCache(parameter, sharedStorage, cache); diff --git a/src/lib/data/assembler/factory/RTarrestDataAssemblerFactory.java b/src/lib/data/assembler/factory/RTarrestDataAssemblerFactory.java index d3c2d873..0ed2fbea 100644 --- a/src/lib/data/assembler/factory/RTarrestDataAssemblerFactory.java +++ b/src/lib/data/assembler/factory/RTarrestDataAssemblerFactory.java @@ -66,7 +66,7 @@ public Cache createCache( locInterpreter, validators)); - if (parameter.showInsertionCount() || parameter.showDeletionCount()) { + if (parameter.showInsertionCount() || parameter.showInsertionStartCount() || parameter.showDeletionCount()) { cache.addCache(createCoverageCache(sharedStorage, DataType.COVERAGE.getFetcher())); } addInsertionCache(parameter, sharedStorage, cache); @@ -161,7 +161,7 @@ private Cache createStratifyByBaseSub( alignedPosProcessor.addStorage(rtArrestCountStorage); baseSub2alignedPosProcessor.put(baseSub, alignedPosProcessor); - if (parameter.showInsertionCount() || parameter.showDeletionCount()) { + if (parameter.showInsertionCount() || parameter.showInsertionStartCount() || parameter.showDeletionCount()) { final PositionProcessor covPosProcessor = new PositionProcessor(); final Fetcher covFetcher = new IntegerDataExtractor( baseSub, @@ -173,7 +173,7 @@ private Cache createStratifyByBaseSub( covPosProcessor.addStorage(covStorage); baseSub2covPosProcessor.put(baseSub, covPosProcessor); } - if (parameter.showInsertionCount()) { + if (parameter.showInsertionCount() || parameter.showInsertionStartCount()) { final PositionProcessor insPosProcessor = new PositionProcessor(); final Fetcher insFetcher = new IntegerDataExtractor( baseSub, @@ -211,7 +211,8 @@ private Cache createStratifyByBaseSub( baseSub2alignedPosProcessor, baseSub2covPosProcessor, baseSub2insPosProcessor, - baseSub2delPosProcessor) ); + baseSub2delPosProcessor, + parameter.showInsertionStartCount())); return cache; } diff --git a/src/lib/data/storage/processor/DeletionRecordProcessor.java b/src/lib/data/storage/processor/DeletionRecordProcessor.java index 16b7095a..60709ead 100644 --- a/src/lib/data/storage/processor/DeletionRecordProcessor.java +++ b/src/lib/data/storage/processor/DeletionRecordProcessor.java @@ -29,7 +29,7 @@ public void preProcess() { // nothing to be done } - @Override + @Override // TODO adjust deletion at every position public void process(final Record record) { // store deletions final PositionProvider delPosProvider = diff --git a/src/lib/data/storage/processor/InsertionRecordProcessor.java b/src/lib/data/storage/processor/InsertionRecordProcessor.java index e69c59ce..827b0418 100644 --- a/src/lib/data/storage/processor/InsertionRecordProcessor.java +++ b/src/lib/data/storage/processor/InsertionRecordProcessor.java @@ -15,13 +15,16 @@ public class InsertionRecordProcessor implements GeneralRecordProcessor { private final CoordinateTranslator translator; private final Storage insStorage; + private final boolean onlyStart; public InsertionRecordProcessor( final CoordinateTranslator translator, - final Storage insStorage) { + final Storage insStorage, + final boolean onlyStart) { this.translator = translator; this.insStorage = insStorage; + this.onlyStart = onlyStart; } @Override @@ -33,7 +36,7 @@ public void preProcess() { public void process(final Record record) { // store insertions final PositionProvider insPosProvider = - new AllInsertionsPosProvider(record, translator); + new AllInsertionsPosProvider(record, translator, onlyStart); while (insPosProvider.hasNext()) { final Position pos = insPosProvider.next(); insStorage.increment(pos); diff --git a/src/lib/data/storage/readsubstitution/BaseSubRecordProcessor.java b/src/lib/data/storage/readsubstitution/BaseSubRecordProcessor.java index f3d4eb43..8d8446c2 100644 --- a/src/lib/data/storage/readsubstitution/BaseSubRecordProcessor.java +++ b/src/lib/data/storage/readsubstitution/BaseSubRecordProcessor.java @@ -45,13 +45,15 @@ public class BaseSubRecordProcessor private final Map covPosProcs; private final Map insPosProcs; private final Map delPosProcs; - + private final boolean onlyStart; + public BaseSubRecordProcessor( final SharedStorage sharedStorage, final BaseCallInterpreter bci, final Validator validator, final Set queryBaseSubs, - final Map alignedPosProcessors) { + final Map alignedPosProcessors, + final boolean onlyStart) { this( sharedStorage, bci, @@ -60,7 +62,8 @@ public BaseSubRecordProcessor( alignedPosProcessors, new EnumMap<>(BaseSub.class), new EnumMap<>(BaseSub.class), - new EnumMap<>(BaseSub.class)); + new EnumMap<>(BaseSub.class), + onlyStart); } public BaseSubRecordProcessor( @@ -71,7 +74,8 @@ public BaseSubRecordProcessor( final Map alignedPosProcs, final Map covPosProcs, final Map insPosProcs, - final Map delPosProcs) { + final Map delPosProcs, + final boolean onlyStart) { this.sharedStorage = sharedStorage; @@ -88,6 +92,8 @@ public BaseSubRecordProcessor( this.covPosProcs = covPosProcs; this.insPosProcs = insPosProcs; this.delPosProcs = delPosProcs; + + this.onlyStart = onlyStart; } protected void processSE( @@ -142,7 +148,7 @@ protected void stratifyBaseCallCounts( if (! insPosProcs.isEmpty()) { // process insertions and store dependent on base substitutions - final PositionProvider insPosProvider = new AllInsertionsPosProvider(record, getTranslator()); + final PositionProvider insPosProvider = new AllInsertionsPosProvider(record, getTranslator(), onlyStart); while (insPosProvider.hasNext()) { final Position insPos = insPosProvider.next(); for (final BaseSub baseSub : observedBaseSubs) { diff --git a/src/lib/estimate/MinkaEstimateDirMultAlpha.java b/src/lib/estimate/MinkaEstimateDirMultAlpha.java index 6a26be5f..859ba7f6 100644 --- a/src/lib/estimate/MinkaEstimateDirMultAlpha.java +++ b/src/lib/estimate/MinkaEstimateDirMultAlpha.java @@ -13,10 +13,10 @@ * TODO add comments */ public class MinkaEstimateDirMultAlpha { - + private final MinkaParameter minkaEstPrm; - - private double[] tmpRowWiseSums; + + // private double[] tmpRowWiseSums; public MinkaEstimateDirMultAlpha(final MinkaParameter minkaEstimateParameter) { this.minkaEstPrm = minkaEstimateParameter; @@ -116,12 +116,12 @@ public boolean maximizeLogLikelihood(final EstimationContainer estContainer, fin estimateInfo.add("backtrack" + estContainer.getId(), Integer.toString(estContainer.getIteration())); alphaNew = backtracking(estContainer.getAlpha(), gradient, b_DenominatorSum, Q); if (alphaNew == null) { - this.tmpRowWiseSums = null; + // this.tmpRowWiseSums = null; return false; } } else { estimateInfo.add("reset" + estContainer.getId(), Integer.toString(estContainer.getIteration())); - this.tmpRowWiseSums = null; + // this.tmpRowWiseSums = null; return false; } // update value @@ -139,15 +139,19 @@ public boolean maximizeLogLikelihood(final EstimationContainer estContainer, fin } // reset - this.tmpRowWiseSums = null; + // this.tmpRowWiseSums = null; return true; } private double[] getRowWiseSums(final NominalData dirMultData) { + /* FIXME if (tmpRowWiseSums == null) { tmpRowWiseSums = dirMultData.getRowWiseSums(); } return tmpRowWiseSums; + */ + + return dirMultData.getRowWiseSums(); } // calculate likelihood diff --git a/src/lib/util/position/AllInsertionsPosProvider.java b/src/lib/util/position/AllInsertionsPosProvider.java index 0fd638b4..d116b54b 100644 --- a/src/lib/util/position/AllInsertionsPosProvider.java +++ b/src/lib/util/position/AllInsertionsPosProvider.java @@ -14,7 +14,7 @@ public class AllInsertionsPosProvider implements PositionProvider { private final CombinedPositionProvider posProvider; public AllInsertionsPosProvider( - final Record record, final CoordinateTranslator translator) { + final Record record, final CoordinateTranslator translator, final boolean onlyStart) { final List cigarDetailIs = record.getInsertion(); final int insertions = cigarDetailIs.size(); @@ -22,7 +22,7 @@ public AllInsertionsPosProvider( for (int index = 0; index < insertions; ++index) { posProviders.add( - new InsertionPositionProviderBuilder(index, record, translator) + new InsertionPositionProviderBuilder(index, record, translator, onlyStart) .adjustWindowPos() .build()); } diff --git a/src/lib/util/position/InsertionPositionProviderBuilder.java b/src/lib/util/position/InsertionPositionProviderBuilder.java index f1a80b39..68570678 100644 --- a/src/lib/util/position/InsertionPositionProviderBuilder.java +++ b/src/lib/util/position/InsertionPositionProviderBuilder.java @@ -5,7 +5,7 @@ import lib.record.Record.CigarDetail; import lib.util.coordinate.CoordinateTranslator; -// TODO +// FIXME count only the start position class InsertionPositionProviderBuilder implements lib.util.Builder { // position of the insertion @@ -18,6 +18,13 @@ class InsertionPositionProviderBuilder implements lib.util.Builder(), new HashMap<>(), - new HashMap<>()); + new HashMap<>(), + false); } // ',' separated array of strings of the following form: "x2y,winPos,{A|C|G|T}"