Difference between revisions of "RAREMETAL FAQ"
Shuang Feng (talk | contribs) |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | [[Category:RAREMETAL]] | ||
+ | [[Category:RAREMETALWORKER]] | ||
==COMPILE PROBLEMS== | ==COMPILE PROBLEMS== | ||
===error: zlib.h: No such file or directory=== | ===error: zlib.h: No such file or directory=== | ||
Line 61: | Line 63: | ||
− | ===error can not find Makefile.base | + | ===error: can not find Makefile.base === |
../libStatGen/Makefiles/Makefile.tool:4: Makefile.base: No such file or directory | ../libStatGen/Makefiles/Makefile.tool:4: Makefile.base: No such file or directory | ||
Line 67: | Line 69: | ||
====SOLUTION==== | ====SOLUTION==== | ||
− | This is most likely that you are having an older version of Make. To compile, you have to use Make version 3.80 and older. To get updated version of make, please go to [http://ftp.gnu.org/gnu/make | + | This is most likely that you are having an older version of Make. To compile, you have to use Make version 3.80 and older. To get updated version of make, please go to [http://ftp.gnu.org/gnu/make '''make download''']. |
==RUNTIME ERRORS== | ==RUNTIME ERRORS== |
Latest revision as of 10:46, 20 March 2018
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 identifying a bug in makefile. If you still see the same error message, please try the above solutions.
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 download 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: can not find Makefile.base
../libStatGen/Makefiles/Makefile.tool:4: Makefile.base: No such file or directory ../libStatGen/Makefiles/Makefile.tool:23: *** first argument to `word' function must be greater than 0. Stop.
SOLUTION
This is most likely that you are having an older version of Make. To compile, you have to use Make version 3.80 and older. To get updated version of make, please go to make download.
RUNTIME ERRORS
error: BGZF EOF marker is missing in xxx.vcf.gz
Loading input files... Loading DAT files ... done. Loading PED files ... done.
BGZF EOF marker is missing in xxx.vcf.gz Exiting, exception thrown: FAIL_IO: Failed to open xxx.vcf.gz
SOLUTION
This problem has been solved. If you are using version 0.4.5 or older, please download the newest version download 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.
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
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 RAREMETALWORKER to perform both single variant and gene-level association analysis.