TheJacksonLaboratory / LIRICAL

LIkelihood Ratio Interpretation of Clinical AbnormaLities
https://thejacksonlaboratory.github.io/LIRICAL/stable
Other
22 stars 11 forks source link

Compiling LIRICAL successful, but no executable produced #590

Closed twincacca closed 7 months ago

twincacca commented 1 year ago

Hello,

When following the simple instructions to compile locally LIRICAL (as shown below), the procedure successfully completes with the "SUCCESS" tag for each build step, however the LIRICAL.jar executable is not created, and the one in the cli directory ("/lirical-cli/target/lirical-cli-2.0.0-RC1.jar") does not run saying "no main manifest attribute, in lirical-cli-2.0.0-RC1.jar".

git clone https://github.com/TheJacksonLaboratory/LIRICAL.git
cd LIRICAL
mvn package
# [INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ lirical-background ---
# [INFO] Building jar: /home/antoine/LIRICAL/lirical-background/target/lirical-background-2.0.0-RC1.jar
# [INFO] ------------------------------------------------------------------------
# [INFO] Reactor Summary:
# [INFO]
# [INFO] LIRICAL 2.0.0-RC1 .................................. SUCCESS [  0.005 s]
# [INFO] lirical-core ....................................... SUCCESS [  7.692 s]
# [INFO] lirical-io ......................................... SUCCESS [  2.913 s]
# [INFO] lirical-exomiser-db-adapter ........................ SUCCESS [  1.397 s]
# [INFO] lirical-configuration .............................. SUCCESS [  0.659 s]
# [INFO] lirical-cli ........................................ SUCCESS [  0.370 s]
# [INFO] lirical-background 2.0.0-RC1 ....................... SUCCESS [  1.819 s]
# [INFO] ------------------------------------------------------------------------
# [INFO] BUILD SUCCESS
# [INFO] ------------------------------------------------------------------------
# [INFO] Total time: 15.533 s
# [INFO] Finished at: 2022-10-19T13:30:58+02:00
# [INFO] ------------------------------------------------------------------------

java -jar target/LIRICAL.jar # not there where it should

Of note, when I do the analogous steps for Exomiser (both versions 12 & 13), then all goes in the same way, except that a final executable is successfully produced... any ideas? need to update LIRICAL instructions? :)

Cheers, Antoine

ielis commented 1 year ago

Hi, there is no need to build locally, you can download a pre-built JAR from the releases section. That's the version which is in sync with the docs where LIRICAL works as advertised.

If you absolutely must build locally, then this will do the trick:

cd LIRICAL
./mvnw -Prelease clean package
twincacca commented 1 year ago

Great! Works. Yeah the precompiled jar executables are very convenient, but on this one I needed recompiling. Thank you! Antoine

twincacca commented 1 year ago

Actually, the produced executable "lirical-background-2.0.0-RC1.jar" is not the same as the pre-compiled one that can be downloaded from the releases section. Also the "download" command, downloads other data than the ones downloaded by the pre-compiled binary.

ielis commented 1 year ago

Hi, we're in the middle of releasing a new LIRICAL version, hence the lagging documentation, different resource files, etc.. If you're curious you can use lirical-cli/target/lirical-cli-2.0.0-RC1.jar, the CLI should be kind of self-explanatory and should not surprise you too much if you worked with the previous LIRICAL versions.

Otherwise, I recommend using the last major version.

twincacca commented 1 year ago

Thank you for clarifying this. Just one more little question related to the subject. I was wondering if LIRICAL employs Exomiser12 as an external module?

Because in the Exomiser code (v12 & v13), I can find the piece of code where the logitScore formula is defined, and I can modify it, recompile and see different Exomiser variant classification. The same does not seem to be achievable with LIRICAL.

Thank you very much. Antoine

ielis commented 1 year ago

Hi, no, not in this way. LIRICAL uses Exomiser databases exclusively as a source of variant frequencies and in silico deleteriousness scores, and uses the data within its own computational model. It does not use the logit formula, just the database.

twincacca commented 1 year ago

Hello again,

I can't understand one thing related to our previous discussion.

What I would actually do is to make a comparison between LIRICAL as it is, i.e., using Exomiser for evaluating variants' pathogenicity/frequency, versus LIRICAL modified in a way that uses the ACMG score for evaluating the variants.

I tried to modify the LIRICAL code in different points in "LIRICAL-1.3.4/src/main/java/org/monarchinitiative/lirical/backgroundfrequency", by setting the variables "frequency" & "pathogenicity" to different values, just to check the effect.

(I modified the source code of "v1.3.4.zip" then re-built the target as you suggested previously).

However, none of the changes I apply seem to take any effect, and when I run LIRICAL on the "Pfeiffer" tutorial example hpo & vcf, I keep obtaining the same outcome, whatever alteration I apply to the code.

Sorry if I missed something trivial, but I could not figure that out.

Thanks for any hints :)

Cheers, Antoine

ielis commented 1 year ago

Hi @twincacca sorry for a delayed response, we performed many updates to the code base.

One of the updates involve an option for using custom deleterious variant background frequencies. You have to prepare a file with the same format to this file and you can use it via -b | --background option as described here. Note that if a background variant frequency is missing in the file for a gene, LIRICAL will use a value provided by --variant-background-frequency CLI option (default: 0.1)

I think this is what can be done to address your question but I'm not 100% sure I understand what you're asking about. Please let me know if you have any other questions.

Thanks & cheers, Daniel