use of org.apache.commons.math3.linear.DiagonalMatrix in project GDSC-SMLM by aherbert.
the class PCPALMMolecules method optimiseLeastSquares.
private double[] optimiseLeastSquares(float[] x, float[] y, double[] initialSolution) {
// Least-squares optimisation using numerical gradients
final SkewNormalDifferentiableFunction function = new SkewNormalDifferentiableFunction(initialSolution);
function.addData(x, y);
LevenbergMarquardtOptimizer optimizer = new LevenbergMarquardtOptimizer();
//@formatter:off
LeastSquaresProblem problem = new LeastSquaresBuilder().maxEvaluations(Integer.MAX_VALUE).maxIterations(3000).start(initialSolution).target(function.calculateTarget()).weight(new DiagonalMatrix(function.calculateWeights())).model(function, new MultivariateMatrixFunction() {
public double[][] value(double[] point) throws IllegalArgumentException {
return function.jacobian(point);
}
}).build();
//@formatter:on
Optimum optimum = optimizer.optimize(problem);
double[] skewParameters = optimum.getPoint().toArray();
return skewParameters;
}
use of org.apache.commons.math3.linear.DiagonalMatrix in project gatk by broadinstitute.
the class DecomposeSingularValuesIntegrationTest method assertSVDValues.
private void assertSVDValues(final File outputFileV, final File outputFileS, final File outputFileU) {
try {
final ReadCountCollection rcc = ReadCountCollectionUtils.parse(CONTROL_PCOV_FULL_FILE);
final SVD svd = SVDFactory.createSVD(rcc.counts());
final RealMatrix sDiag = new DiagonalMatrix(svd.getSingularValues());
assertOutputFileValues(outputFileU, svd.getU());
assertOutputFileValues(outputFileS, sDiag);
assertOutputFileValues(outputFileV, svd.getV());
assertUnitaryMatrix(svd.getV());
assertUnitaryMatrix(svd.getU());
Assert.assertTrue(MatrixUtils.isSymmetric(sDiag, 1e-32));
} catch (final IOException ioe) {
Assert.fail("Could not open test file: " + CONTROL_PCOV_FULL_FILE, ioe);
}
}
use of org.apache.commons.math3.linear.DiagonalMatrix in project gatk by broadinstitute.
the class DecomposeSingularValues method runPipeline.
@Override
protected void runPipeline(final JavaSparkContext ctx) {
try {
final ReadCountCollection rcc = ReadCountCollectionUtils.parse(inputFile);
final SVD svd = SVDFactory.createSVD(rcc.counts(), ctx);
writeMatrix(svd.getV(), outputFileV);
writeMatrix(svd.getU(), outputFileU);
writeMatrix(new DiagonalMatrix(svd.getSingularValues()), outputFileS);
} catch (final IOException ioe) {
throw new UserException.CouldNotReadInputFile(inputFile, ioe.getMessage());
}
}
use of org.apache.commons.math3.linear.DiagonalMatrix in project gatk-protected by broadinstitute.
the class DecomposeSingularValuesIntegrationTest method assertSVDValues.
private void assertSVDValues(final File outputFileV, final File outputFileS, final File outputFileU) {
try {
final ReadCountCollection rcc = ReadCountCollectionUtils.parse(CONTROL_PCOV_FULL_FILE);
final SVD svd = SVDFactory.createSVD(rcc.counts());
final RealMatrix sDiag = new DiagonalMatrix(svd.getSingularValues());
assertOutputFileValues(outputFileU, svd.getU());
assertOutputFileValues(outputFileS, sDiag);
assertOutputFileValues(outputFileV, svd.getV());
assertUnitaryMatrix(svd.getV());
assertUnitaryMatrix(svd.getU());
Assert.assertTrue(MatrixUtils.isSymmetric(sDiag, 1e-32));
} catch (final IOException ioe) {
Assert.fail("Could not open test file: " + CONTROL_PCOV_FULL_FILE, ioe);
}
}
use of org.apache.commons.math3.linear.DiagonalMatrix in project gatk-protected by broadinstitute.
the class DecomposeSingularValues method runPipeline.
@Override
protected void runPipeline(final JavaSparkContext ctx) {
try {
final ReadCountCollection rcc = ReadCountCollectionUtils.parse(inputFile);
final SVD svd = SVDFactory.createSVD(rcc.counts(), ctx);
writeMatrix(svd.getV(), outputFileV);
writeMatrix(svd.getU(), outputFileU);
writeMatrix(new DiagonalMatrix(svd.getSingularValues()), outputFileS);
} catch (final IOException ioe) {
throw new UserException.CouldNotReadInputFile(inputFile, ioe.getMessage());
}
}
Aggregations