ssadedin / ximmer

Ximmer is a system for CNV calling on exome and targeted genomic sequencing
http://ssadedin.github.io/ximmer/
GNU Lesser General Public License v2.1
19 stars 10 forks source link

Installation errors with xhmm #40

Open longfei-stat opened 2 years ago

longfei-stat commented 2 years ago

Hi,

I am trying to install ximmer but cannot install xhmm properly "Tool xhmm did not probe successfully even after installation." The error messages are:

g++ -c -Wall -O3 -I./sources/include sources/lib/MatrixDecomp.cpp -o build/lib/MatrixDecomp.o In file included from ./sources/include/MatrixDecomp.hpp:6:0, from sources/lib/MatrixDecomp.cpp:1: ./sources/include/LAPACKvector.hpp:13:3: warning: identifier ‘noexcept’ is a keyword in C++11 [-Wc++0x-compat] virtual ~LAPACKvector() noexcept(false) {} ^ In file included from ./sources/include/MatrixDecomp.hpp:6:0, from sources/lib/MatrixDecomp.cpp:1: ./sources/include/LAPACKvector.hpp:13:25: error: expected ‘;’ at end of member declaration virtual ~LAPACKvector() noexcept(false) {} ^ ./sources/include/LAPACKvector.hpp:13:36: error: expected identifier before ‘false’ virtual ~LAPACKvector() noexcept(false) {} ^ ./sources/include/LAPACKvector.hpp:13:36: error: expected ‘,’ or ‘...’ before ‘false’ ./sources/include/LAPACKvector.hpp:13:41: error: ISO C++ forbids declaration of ‘noexcept’ with no type [-fpermissive] virtual ~LAPACKvector() noexcept(false) {} ^ ./sources/include/LAPACKvector.hpp: In member function ‘int HMM_PP::LAPACKvector::noexcept(int)’: ./sources/include/LAPACKvector.hpp:13:44: warning: no return statement in function returning non-void [-Wreturn-type] virtual ~LAPACKvector() noexcept(false) {} ^ In file included from sources/lib/MatrixDecomp.cpp:3:0: ./sources/include/VectorOnDisk.hpp: At global scope: ./sources/include/VectorOnDisk.hpp:84:25: error: expected ‘;’ at end of member declaration virtual ~VectorOnDisk() noexcept(false) { ^ ./sources/include/VectorOnDisk.hpp:84:36: error: expected identifier before ‘false’ virtual ~VectorOnDisk() noexcept(false) { ^ ./sources/include/VectorOnDisk.hpp:84:36: error: expected ‘,’ or ‘...’ before ‘false’ ./sources/include/VectorOnDisk.hpp:84:41: error: ISO C++ forbids declaration of ‘noexcept’ with no type [-fpermissive] virtual ~VectorOnDisk() noexcept(false) { ^ make[2]: [build/lib/MatrixDecomp.o] Error 1 make[2]: Leaving directory `/stornext/HPCScratch/home/wang.lo/software/ximmer/eval/pipeline/tools/xhmm/trunk/sources/hmm++' make[1]: [sources/hmm++/] Error 2 make[1]: Leaving directory `/stornext/HPCScratch/home/wang.lo/software/ximmer/eval/pipeline/tools/xhmm/trunk' make: *** [all] Error 2

Do you have any idea how to fix this problem?

Thanks!

ssadedin commented 2 years ago

I think this is probably related to recent changes to make it compatible with modern C++ versions.

I tried with GCC 4.9.4 and got the error you observe. Then I tried with GCC 10.2.0 and it did not get that error. However it then failed at a later point. I got it to compile ultimately with GCC 4.9.4 by checking out the version just prior to the recent changes (5be5662) and using GCC 4.9.4.

You could try something like:

cd /stornext/HPCScratch/home/wang.lo/software/ximmer/eval/pipeline/tools/xhmm
rm -rf trunk
git clone https://bitbucket.org/statgen/xhmm.git trunk && cd trunk && git checkout --force  5be5662  && make 

Once it is compiled like that then re-running the installer should allow it to continue.

Unfortunately I suspect some of the other tools will have problems as at least one of them was reliant on Python 2.

longfei-stat commented 2 years ago

Thanks, Simon! The installation has been completed successfully with the commands you provided.

However, when I run the command

~/hpc_home/software/ximmer/bin/ximmer -v -nosim -c T1.groovy -o results

using the following configuration file:

bam_files="~/hpc_home/AID/bam/hg19/*.bam"
target_regions="/stornext/HPCScratch/home/wang.lo/AID/cnv/hg19/xhmm/targets_list.bed"
callers { 
    xhmm { 
        exome_wide_cnv_rate=1e-04
        mean_number_of_targets_in_cnv=3 
    } 
    exomedepth { 
        transition_probability=0.0001 
    } 
    cnmops { 
        prior_impact=5 
        min_width=1 
    } 
    conifer { 
        conifer_svd_num=1 

    } 
}
variants="/stornext/HPCScratch/home/wang.lo/AID/cnv/ximmer_variants.vcf"
gene_filter="/home/users/allstaff/wang.lo/hpc_home/software/R_function/CVID_AID_APP/AID.T1.txt"

It shows

Configured verbose logging
Ximmer  [1] INFO    |5:15:22 Configured verbose logging 
Ximmer  [1] INFO    |5:15:22 Simulation disabled. 
Ximmer  [1] INFO    |5:15:22 No run directory configured: run directory = run 
Ximmer  [1] INFO    |5:15:22 Configuration validated! 
SimulationRun   [1] INFO    |5:15:44 Resolved BAM files for run 1: [] 
SimulationRun   [1] INFO    |5:15:44 Processing BAM Files: 

Caught: java.lang.RuntimeException: After comparing the samples specified in the 'samples' block with the available BAM files, no samples remain to analyse. Please check that sample ids are consistent with those in the BAM files supplied
java.lang.RuntimeException: After comparing the samples specified in the 'samples' block with the available BAM files, no samples remain to analyse. Please check that sample ids are consistent with those in the BAM files supplied
    at SimulationRun.resolveBamFiles(SimulationRun.groovy:63)
    at SimulationRun$resolveBamFiles$0.call(Unknown Source)
    at SimulationRun$_configureIntegerRuns_closure6.doCall(SimulationRun.groovy:160)
    at SimulationRun.configureIntegerRuns(SimulationRun.groovy:140)
    at SimulationRun.configureRuns(SimulationRun.groovy:74)
    at SimulationRun$configureRuns.call(Unknown Source)
    at Ximmer.initialiseRuns(Ximmer.groovy:302)
    at Ximmer.run(Ximmer.groovy:194)
    at Ximmer$run.call(Unknown Source)
    at Ximmer.main(Ximmer.groovy:1279)

i used -nosim. Why it's still showing 'SimulationRun'? What dose the 'sample' block look like? I checked the header of the BAM files. They seems consistent with the bam file names. Could you let me know how to fix this error? Thanks!