@Override public ExpandingArrayList<VariantDatum> reduceInit() { return new ExpandingArrayList<>(); }
public List<VariantDatum> getEvaluationData() { final List<VariantDatum> evaluationData = new ExpandingArrayList<>(); for( final VariantDatum datum : data ) { if( datum != null && !datum.failingSTDThreshold && !datum.atTrainingSite && !datum.atAntiTrainingSite ) { evaluationData.add( datum ); } } return evaluationData; }
public Pair<ExpandingArrayList<Long>, Long> reduceInit() { return new Pair<ExpandingArrayList<Long>, Long>(new ExpandingArrayList<Long>(), 0l); }
public List<VariantDatum> selectWorstVariants() { final List<VariantDatum> trainingData = new ExpandingArrayList<>(); for( final VariantDatum datum : data ) { if( datum != null && !datum.failingSTDThreshold && !Double.isInfinite(datum.lod) && datum.lod < VRAC.BAD_LOD_CUTOFF ) { datum.atAntiTrainingSite = true; trainingData.add( datum ); } } logger.info( "Selected worst " + trainingData.size() + " scoring variants --> variants with LOD <= " + String.format("%.4f", VRAC.BAD_LOD_CUTOFF) + "." ); return trainingData; }
public MultivariateGaussian( final int numAnnotations ) { mu = new double[numAnnotations]; sigma = new Matrix(numAnnotations, numAnnotations); pVarInGaussian = new ExpandingArrayList<>(); }
public List<VariantDatum> getRandomDataForPlotting( final int numToAdd, final List<VariantDatum> trainingData, final List<VariantDatum> antiTrainingData, final List<VariantDatum> evaluationData ) { final List<VariantDatum> returnData = new ExpandingArrayList<>(); Collections.shuffle(trainingData, Utils.getRandomGenerator()); Collections.shuffle(antiTrainingData, Utils.getRandomGenerator()); Collections.shuffle(evaluationData, Utils.getRandomGenerator()); returnData.addAll(trainingData.subList(0, Math.min(numToAdd, trainingData.size()))); returnData.addAll(antiTrainingData.subList(0, Math.min(numToAdd, antiTrainingData.size()))); returnData.addAll(evaluationData.subList(0, Math.min(numToAdd, evaluationData.size()))); Collections.shuffle(returnData, Utils.getRandomGenerator()); return returnData; }
public List<VariantDatum> getTrainingData() { final List<VariantDatum> trainingData = new ExpandingArrayList<>(); for( final VariantDatum datum : data ) { if( datum.atTrainingSite && !datum.failingSTDThreshold ) { trainingData.add( datum ); } } logger.info( "Training with " + trainingData.size() + " variants after standard deviation thresholding." ); if( trainingData.size() < VRAC.MIN_NUM_BAD_VARIANTS ) { logger.warn( "WARNING: Training with very few variant sites! Please check the model reporting PDF to ensure the quality of the model is reliable." ); } else if( trainingData.size() > VRAC.MAX_NUM_TRAINING_DATA ) { logger.warn( "WARNING: Very large training set detected. Downsampling to " + VRAC.MAX_NUM_TRAINING_DATA + " training variants." ); Collections.shuffle(trainingData, Utils.getRandomGenerator()); return trainingData.subList(0, VRAC.MAX_NUM_TRAINING_DATA); } return trainingData; }
@BeforeMethod public void before() { empty = new ExpandingArrayList<Integer>(); initCap10 = new ExpandingArrayList<Integer>(10); hasOne = new ExpandingArrayList<Integer>(); hasOne.add(1); hasTen = new ExpandingArrayList<Integer>(); hasTen.addAll(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); }
@Override public ExpandingArrayList<VariantDatum> map( final RefMetaDataTracker tracker, final ReferenceContext ref, final AlignmentContext context ) { final ExpandingArrayList<VariantDatum> mapList = new ExpandingArrayList<>(); if( tracker == null ) { // For some reason RodWalkers get map calls with null trackers return mapList; } mapList.addAll( addOverlappingVariants(input, true, tracker, context) ); if( aggregate != null ) { mapList.addAll( addOverlappingVariants(aggregate, false, tracker, context) ); } return mapList; }
logger.info( "Building " + annotationKeys[iii] + " x " + annotationKeys[jjj] + " plot..."); final List<VariantDatum> fakeData = new ExpandingArrayList<>(); double minAnn1 = 100.0, maxAnn1 = -100.0, minAnn2 = 100.0, maxAnn2 = -100.0; for( final VariantDatum datum : randomData ) {
/** * Using the RefMetaDataTracker find overlapping variants and pull out the necessary information to create the VariantDatum * @param rods the rods to search within * @param isInput is this rod an -input rod? * @param tracker the RefMetaDataTracker from the RODWalker map call * @param context the AlignmentContext from the RODWalker map call * @return a list of VariantDatums, can be empty */ private List<VariantDatum> addOverlappingVariants( final List<RodBinding<VariantContext>> rods, final boolean isInput, final RefMetaDataTracker tracker, final AlignmentContext context ) { if( rods == null ) { throw new IllegalArgumentException("rods cannot be null."); } if( tracker == null ) { throw new IllegalArgumentException("tracker cannot be null."); } if( context == null ) { throw new IllegalArgumentException("context cannot be null."); } final ExpandingArrayList<VariantDatum> variants = new ExpandingArrayList<>(); for( final VariantContext vc : tracker.getValues(rods, context.getLocation()) ) { if( vc != null && ( IGNORE_ALL_FILTERS || vc.isNotFiltered() || ignoreInputFilterSet.containsAll(vc.getFilters()) ) ) { if( VariantDataManager.checkVariationClass( vc, VRAC.MODE ) && !VRAC.useASannotations) { addDatum(variants, isInput, tracker, context, vc, null, null); } else if(VRAC.useASannotations) { for(final Allele allele : vc.getAlternateAlleles()) { if(allele == Allele.SPAN_DEL) continue; if (VariantDataManager.checkVariationClass(vc, allele, VRAC.MODE)) addDatum(variants, isInput, tracker, context, vc, vc.getReference(), allele); } } } } return variants; }
@Override public Pair<ExpandingArrayList<Long>, Long> treeReduce(Pair<ExpandingArrayList<Long>, Long> lhs, Pair<ExpandingArrayList<Long>, Long> rhs) { ExpandingArrayList<Long> nt = new ExpandingArrayList<Long>(); nt.addAll(lhs.first); int index = 0; for (Long l : rhs.first) { if (nt.get(index) == null) nt.add(l); else nt.set(index,nt.get(index) + l); index++; } return new Pair<ExpandingArrayList<Long>, Long>(nt, lhs.second + rhs.second); }