Difference between revisions of "RAREMETAL FAQ"

From Genome Analysis Wiki
Jump to navigationJump to search
Line 73: Line 73:
 
==RUNTIME ERRORS==
 
==RUNTIME ERRORS==
  
===recommended strategy for debugging===
+
===recommended strategies for debugging===
 
The ideal would be to send us your data so that we can debug. But if data sharing is not an option, you can use the following strategy to generate a backtrace and send it to us, without sharing the raw data.   
 
The ideal would be to send us your data so that we can debug. But if data sharing is not an option, you can use the following strategy to generate a backtrace and send it to us, without sharing the raw data.   
  

Revision as of 09:57, 28 March 2014

COMPILE PROBLEMS

error: zlib.h: No such file or directory

Error:

make -C ../../libStatGen --no-print-directory opt
gcc -O4 -pipe -Wall  -I../include -I.  -D__ZLIB_AVAILABLE__ -D_FILE_OFFSET_BITS=64 -D__STDC_LIMIT_MACROS  -o obj/bgzf.o -c bgzf.c 
In file included from bgzf.c:37:
bgzf.h:30:18: error: zlib.h: No such file or directory
bgzf.c: In function âopen_writeâ:
bgzf.c:187: error: âZ_DEFAULT_COMPRESSIONâ undeclared (first use in this function)
bgzf.c:187: error: (Each undeclared identifier is reported only once
bgzf.c:187: error: for each function it appears in.)
bgzf.c: In function âdeflate_blockâ:
bgzf.c:298: error: âz_streamâ undeclared (first use in this function)
bgzf.c:298: error: expected â;â before âzsâ
bgzf.c:299: error: âzsâ undeclared (first use in this function)
bgzf.c:306: warning: implicit declaration of function âdeflateInit2â
bgzf.c:306: error: âZ_DEFLATEDâ undeclared (first use in this function)

SOLUTION

Based on the compile error, it appears that the development verison of zlib may not be installed. Please go to http://genome.sph.umich.edu/wiki/Zlib for more information.

User can compile the library without ZLIB, but then the code will not be able to read compressed files (typically BAM files are compressed). If no compressed files is needed, then user can compile using: make ZLIB_AVAIL=0.

error: undefined reference to `_gfortran_pow_r8_i4'

Error:

../../libStatGen/libStatGen.a(mvt.o): In function `mvtdns_':
mvt.f:(.text+0x20c9): undefined reference to `_gfortran_pow_r8_i4'
../../libStatGen/libStatGen.a(mvt.o): In function `mvchnv_':
mvt.f:(.text+0x5848): undefined reference to `_gfortran_pow_r8_i4'
collect2: ld returned 1 exit status
make: *** [../bin/raremetal] Error 1

SOLUTION

It looks like in some versions of compilers, the Fortran library (required by RareMetal) isn't automatically included. These Makefile changes fixed it on the machine where I was able to recreate your compile issue:

1) libStatGen/Makefiles/Makefile.src, edit the settings for OPT_BUILD, DEBUG_BUILD, and PROFILE_BUILD to be (the new part is in bold): OPT_BUILD = $(CXX) $(COMPFLAGS) $(USER_LINK_OPTIONS) -o $(PROG_OPT) $(OBJECTS_OPT) $(USER_LIBS) $(REQ_LIBS_OPT) -lm $(ZLIB_LIB) $(OTHER_LIBS) DEBUG_BUILD = $(CXX) $(COMPFLAGS) $(USER_LINK_OPTIONS) -o $(PROG_DEBUG) $(OBJECTS_DEBUG) $(USER_LIBS) $(REQ_LIBS_DEBUG) -lm $(ZLIB_LIB) $(OTHER_LIBS) PROFILE_BUILD = $(CXX) $(COMPFLAGS) $(USER_LINK_OPTIONS) -o $(PROG_PROFILE) $(OBJECTS_PROFILE) $(USER_LIBS) $(REQ_LIBS_PROFILE) -lm $(ZLIB_LIB) $(OTHER_LIBS)

2) raremetal/src/Makefile, add: (I added it on the line right after USER_LIBS is defined.) OTHER_LIBS = -lgfortran

NOTE: this has been fixed by idenifying a bug in makefile. If you still see the same error message, please try the above solutions.

error while loading shared libraries

Error:

gcc -O4 -pipe -Wall  -I../include -I.  -D__ZLIB_AVAILABLE__ -D_FILE_OFFSET_BITS=64 -D__STDC_LIMIT_MACROS  -o obj/bgzf.o -c bgzf.c
/broad/software/free/Linux/redhat_5_x86_64/pkgs/gcc_4.4.4/libexec/gcc/x86_64-unknown-linux-gnu/4.4.4/cc1: error while loading shared  libraries: libmpfr.so.1: cannot open shared object file: No such file or directory
make[2]: *** [obj/bgzf.o] Error 1
make[1]: *** [samtools] Error 2
make: *** [../../libStatGen/libStatGen. a] Error 2 

SOLUTION

If you are using version 0.4.4 and under, please go to our wiki page to download the newest version [[[RAREMETAL]]]. There was a bug in makefile in older versions of RAREMETAL that could cause this error and it has been fixed. For a quick fix, please go to /raremetal/src and open "Makefile". Then comment out the lines at the bottom of raremetal/src/Makefile that set LD_LIBRARY_PATH. Try compiling and see if it works.

error: BGZF EOF marker is missing in reffhsexome_v2.vcf.gz

Loading input files... Loading DAT files ... done. Loading PED files ... done.

BGZF EOF marker is missing in reffhsexome_v2.vcf.gz Exiting, exception thrown: FAIL_IO: Failed to open reffhsexome_v2.vcf.gz

SOLUTION

This problem has been solved. If you are using version 0.4.5 or older, please download the newest version [[[RAREMETALWORKER]]], and then in your command line, add --noeof. If you still see the error message, then you need to check if your bgzip has been updated to current version.

RUNTIME ERRORS

recommended strategies for debugging

The ideal would be to send us your data so that we can debug. But if data sharing is not an option, you can use the following strategy to generate a backtrace and send it to us, without sharing the raw data.

How to Generate a backtrace of the error:
This will allow us to see where in the code it hit a segmentation fault.  This method isn't perfect and may still leave us with further  questions for you before we can come to an answer.
1) Compile for debug: make debug 
2) Enable core dumps in the window where he will run: ulimit -c unlimited
3) Run bin/debug/raremetal
(If this does not coredump, then set OPTFLAG_OPT = -g -O4 in src/Makefile and try rerunning the bin/raremetal version - this will run  optimized, but with the debug symbols)
4) Run: gdb bin/debug/raremetal core  
(specifying the bath to the raremetal executable that was run & the path to the generated core file)
5) In the gdb window, type: bt.
6) Save the backtrace results and send it to us.
That will generate the backtrace which will help us see where the segmentation fault occurred.

GENERAL QUESTIONS

Q: What is rareMetalWorker? How is it related to rareMetal?

A: rareMetalWorker is the program that generates summary statistics for individual studies to share. It generates both single variant association results and covariance matrices of score statistics together with QC statistics. It enables analysis of familial data, population data, unrelated individuals and samples with cryptic relatedness and population stratification. rareMETAL takes the summary statistics generated by raerMetalWorker to perform both single variant and gene-level association analysis.