Example usage for org.apache.commons.math3.distribution BetaDistribution getAlpha

List of usage examples for org.apache.commons.math3.distribution BetaDistribution getAlpha

Introduction

In this page you can find the example usage for org.apache.commons.math3.distribution BetaDistribution getAlpha.

Prototype

public double getAlpha() 

Source Link

Document

Access the first shape parameter, alpha .

Usage

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) {
    }

}