Skip to content

Instantly share code, notes, and snippets.

@armanbilge
Created January 20, 2015 12:29
Show Gist options
  • Save armanbilge/af7634ab3b825f47c0dd to your computer and use it in GitHub Desktop.
Save armanbilge/af7634ab3b825f47c0dd to your computer and use it in GitHub Desktop.
public static void main(String... args) throws IOException, Importer.ImportException {
final TreeModel tree = new TreeModel(new NewickImporter("(a:1,b:1);").importNextTree());
final SimpleAlignment alignment = new SimpleAlignment();
alignment.setDataType(Nucleotides.INSTANCE);
alignment.addSequence(new Sequence(new Taxon("a"), "A"));
alignment.addSequence(new Sequence(new Taxon("b"), "C"));
final PatternList patterns = new SitePatterns(alignment);
final SiteModel siteModel = new GammaSiteModel(new GTR(new Variable.D(1, 1), new Variable.D(1, 1), new Variable.D(1, 1), new Variable.D(1, 1), new Variable.D(1, 1), new Variable.D(1, 1), new FrequencyModel(Nucleotides.INSTANCE, new double[]{0.25, 0.25, 0.25, 0.25})));
final TreeLikelihood likelihood = new TreeLikelihood(patterns, tree, siteModel, new DefaultBranchRateModel(), null, true, false, true, true, false);
final Variable<Double> var = tree.createNodeHeightsParameter(true, true, false);
final int index = 0;
var.setValue(index, 0.0);
System.out.println(Differentiable.differentiate(likelihood::getLogLikelihood, var, index));
System.out.println(likelihood.differentiate(var, index));
// for (double t = 0; t <= 4.0; t += 1.0 / 32) {
// var.setValue(index, t);
// System.out.println(t + "," + likelihood.getLogLikelihood());
// }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment