List of usage examples for org.apache.commons.math3.distribution BetaDistribution getAlpha
public double getAlpha()
From source file:com.analog.lyric.math.DimpleRandom.java
/** * Returns sample from beta distribution with specified alpha and beta parameters. * @since 0.08//from w w w . ja v a 2s . c om */ public double nextBeta(double alpha, double beta) { BetaDistribution randBeta = _randBeta; if (randBeta.getAlpha() != alpha || randBeta.getBeta() != beta) { randBeta = new BetaDistribution(_randGenerator, alpha, beta); _randBeta = randBeta; } return randBeta.sample(); }
From source file:gedi.lfc.LfcAlignedReadsProcessor.java
@Override public void endRegion(MutableReferenceGenomicRegion<?> region, ProcessorContext context) throws IOException { if (allreads) { } else if (multimode()) { out.writef("%s", region.getData()); for (int i = 0; i < total.length; i++) out.writef("\t%.1f", total[i]); out.writeLine();/*www .java2 s. c o m*/ } else { BetaDistribution beta = new BetaDistribution(total[0] + 1, total[1] + 1); out.writef("%s\t%.1f\t%.1f\t%.4f\t%.4f\t%.4f\n", region.getData(), total[0] + 1, total[1] + 1, pToLog2Fc(beta.inverseCumulativeProbability(0.5 * credi)), pToLog2Fc((beta.getAlpha() - 1) / (beta.getAlpha() + beta.getBeta() - 2)), pToLog2Fc(beta.inverseCumulativeProbability(1 - 0.5 * credi))); } }
From source file:gedi.lfc.LfcComputer.java
public void compute(LineOrientedFile out, GenomicRegionStorage<AlignedReadsData> reads, ReferenceSequenceConversion readConversion, GenomicRegionStorage<Transcript> transcripts, ContrastMapping contrast, Downsampling downsampling, Set<String> restrictToGenes) { if (contrast.getNumMergedConditions() != 2) throw new RuntimeException("Must be binary contrast!"); // mapping to genes HashMap<String, MutableReferenceGenomicRegion<String>> genesToRegon = new HashMap<String, MutableReferenceGenomicRegion<String>>(); transcripts.iterateReferenceGenomicRegions().forEachRemaining(rgr -> { if (restrictToGenes != null && !restrictToGenes.contains(rgr.getData().getGeneId())) return; MutableReferenceGenomicRegion<String> r = genesToRegon.get(rgr.getData().getGeneId()); if (r == null) genesToRegon.put(rgr.getData().getGeneId(), new MutableReferenceGenomicRegion<String>().setReference(rgr.getReference()) .setRegion(rgr.getRegion()).setData(rgr.getData().getGeneId())); else {//w w w .ja va 2 s.c o m if (!r.getReference().equals(rgr.getReference())) throw new RuntimeException(rgr.getData().getGeneId() + " is located on multiple chromosomes: " + r.getReference() + ", " + rgr.getReference()); r.setRegion(r.getRegion().union(rgr.getRegion())); } }); // MemoryIntervalTreeStorage<String> genes = new MemoryIntervalTreeStorage<String>(); // for (MutableReferenceGenomicRegion<String> rgr : genesToRegon.values()) // genes.add(rgr.getReference(), rgr.getRegion(), rgr.getData()); double credi = 0.05; try { out.startWriting(); out.writef("Gene\talpha\tbeta\t%.3g credibility\tlog2 fold change\t%.3g credibility\n", 0.5 * credi, 1 - 0.5 * credi); for (MutableReferenceGenomicRegion<String> gene : genesToRegon.values()) { double[] total = new double[contrast.getNumMergedConditions()]; double[] buff = new double[contrast.getNumMergedConditions()]; reads.iterateIntersectingMutableReferenceGenomicRegions(readConversion.apply(gene.getReference()), gene.getRegion().getStart(), gene.getRegion().getEnd()).forEachRemaining(rgr -> { // check if there is a matching transcript if (gene.getRegion().contains(rgr.getRegion())) { // compute downsampled and add downsampling.getDownsampled(rgr.getData(), contrast, buff); ArrayUtils.add(total, buff); // System.out.println(Arrays.toString(buff)+"\t"+rgr.getReference()+":"+rgr.getRegion()+"\t"+rgr.getData()); } }); // System.err.println(gene); BetaDistribution beta = new BetaDistribution(total[0] + 1, total[1] + 1); out.writef("%s\t%.1f\t%.1f\t%.4f\t%.4f\t%.4f\n", gene.getData(), total[0] + 1, total[1] + 1, pToLog2Fc(beta.inverseCumulativeProbability(0.5 * credi)), pToLog2Fc((beta.getAlpha() - 1) / (beta.getAlpha() + beta.getBeta() - 2)), pToLog2Fc(beta.inverseCumulativeProbability(1 - 0.5 * credi))); } out.finishWriting(); } catch (IOException e) { } }