arvestad / jprime

Probabilistic Inference of Molecular Evolution
Other
8 stars 10 forks source link

Delirious fails to use substitution models other than default (using the jar from the dropbox) #25

Open Gullumluvl opened 6 years ago

Gullumluvl commented 6 years ago

Hi,

I downloaded the jar file from the dropbox link, and am able to run jprime Delirious with default parameters, for example:

java -jar ~/install/jprime-0.3.6.jar Delirious \
    ../../../../taxon_data/Rodentia.timetree.nointernal.nozero.dots.nwk \
    RodentiaENSGT00760000118824.d.b.a.a.b.a.a.b_backtrans.mfa \
    RodentiaENSGT00760000118824.d.b.a.a.b.a.a.b_gsmap.tsv \
    -i 100000 -o DLRS_default100k

However, I am quite interested in using codon models, but I got many errors while trying:

with -sm UNIFORMCODON:

 ERROR: null

Use option -h or --help to show usage.
See .info file for more information.

Content of the info file:

# =========================================================================
# ||                             PRE-RUN INFO                            ||
# =========================================================================
# DELIRIOUS
# Arguments: [../../../../taxon_data/Rodentia.timetree.nointernal.nozero.dots.nwk, RodentiaENSGT00760000118824.d.b.a.a.b.a.a.b_backtrans.mfa, RodentiaENSGT00760000118824.d.b.a.a.b.a.a.b_gsmap.tsv, -i, 100000, -o, DLRS_default100k-3, -lout, -sm, UNIFORMCODON]
# Current time: 2018-01-04 04:53:06
# Host tree rescaling factor: 0.013721810598397183
# Run failed. Reason:
java.lang.NullPointerException
    at se.cbb.jprime.math.AdditionalEJMLOps.getEigensystemSolution(AdditionalEJMLOps.java:30)
    at se.cbb.jprime.seqevo.SubstitutionMatrixHandler.update(SubstitutionMatrixHandler.java:185)
    at se.cbb.jprime.seqevo.SubstitutionMatrixHandler.<init>(SubstitutionMatrixHandler.java:109)
    at se.cbb.jprime.seqevo.UniformCodon.createUniformCodon(UniformCodon.java:30)
    at se.cbb.jprime.seqevo.SubstitutionMatrixHandlerFactory.create(SubstitutionMatrixHandlerFactory.java:48)
    at se.cbb.jprime.apps.dlrs.Delirious.main(Delirious.java:123)
    at se.cbb.jprime.apps.JPrIMEStarter.main(JPrIMEStarter.java:88)

with -sm ARVECODON

ERROR: 62

Use option -h or --help to show usage.
See .info file for more information.

info file:

# =========================================================================
# ||                             PRE-RUN INFO                            ||
# =========================================================================
# DELIRIOUS
# Arguments: [../../../../taxon_data/Rodentia.timetree.nointernal.nozero.dots.nwk, RodentiaENSGT00760000118824.d.b.a.a.b.a.a.b_backtrans.mfa, RodentiaENSGT00760000118824.d.b.a.a.b.a.a.b_gsmap.tsv, -i, 100000, -o, DLRS_default100k-3, -lout, -sm, ARVECODON]
# Current time: 2018-01-04 05:09:19
# Host tree rescaling factor: 0.013721810598397183
# Initial guest tree: Produced with NJ on sequence identity (arbitrarily rooted).
# Run failed. Reason:
java.lang.ArrayIndexOutOfBoundsException: 62
    at se.cbb.jprime.seqevo.SequenceType.getLeafLikelihood(SequenceType.java:200)
    at se.cbb.jprime.seqevo.SubstitutionMatrixHandler.getLeafLikelihood(SubstitutionMatrixHandler.java:249)
    at se.cbb.jprime.seqevo.SubstitutionModel.updateLeafLikelihood(SubstitutionModel.java:294)
    at se.cbb.jprime.seqevo.SubstitutionModel.updateLikelihood(SubstitutionModel.java:217)
    at se.cbb.jprime.seqevo.SubstitutionModel.updateLikelihood(SubstitutionModel.java:222)
    at se.cbb.jprime.seqevo.SubstitutionModel.updateLikelihood(SubstitutionModel.java:222)
    at se.cbb.jprime.seqevo.SubstitutionModel.updateLikelihood(SubstitutionModel.java:222)
    at se.cbb.jprime.seqevo.SubstitutionModel.<init>(SubstitutionModel.java:114)
    at se.cbb.jprime.apps.dlrs.Delirious.main(Delirious.java:177)
    at se.cbb.jprime.apps.JPrIMEStarter.main(JPrIMEStarter.java:88)

with USERDEFINED

I went into the code to copy the arvecodon matrix into a text file with the correct format, and ran with the following option: -sm USERDEFINED="$(cat arvecodon.txt)"

This resulted in a stackoverflow error:

Exception in thread "main" java.lang.StackOverflowError
        at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
        at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
        at java.util.regex.Pattern$Curly.match0(Pattern.java:4272)
        at java.util.regex.Pattern$Curly.match(Pattern.java:4234)
        at java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
        at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)

(repeated many times)

Would you mind helping me on that? I'm a bit lost. Also I have never developped in java, but with some help I could maybe use the source code in this github repository instead of the dropbox jar file.

Let me know if you want to test using my input files, I will send you a zip.

Thanks a lot! :)

Gullumluvl commented 6 years ago

I confirm that I have the same problem when building the latest version from this repository (jprime-0.3.7).