spficklin / RMTGeneNet

Construction of gene co-expression networks with Random Matrix Theory (RMT) thresholding.
GNU General Public License v2.0
9 stars 4 forks source link

Segfault on example data (CentOS) #5

Closed chartl closed 8 years ago

chartl commented 8 years ago

I'm running:

$ cat /proc/version Linux version 2.6.32-573.18.1.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) ) #1 SMP Tue Feb 9 22:46:17 UTC 2016

and from the base directory of the github clone I run:

$ rm -rf examples/Pearson && make clean && make && cd examples/ && mkdir Pearson && ../ccm yeast-s_cerevisiae1.global.RMA.nc-no-na-nh 10359 1535 rm -f ccm.o rmm.o ccm rmm gcc -m64 -c -g ccm.c gcc -m64 -c -g rmm.c gcc -m64 ccm.o -g -Wall -lm -lgsl -lgslcblas -fopenmp -llapack -lblas -lpthread -lm -o ccm gcc -m64 rmm.o -g -Wall -lm -lgsl -lgslcblas -fopenmp -llapack -lblas -lpthread -lm -o rmm Reading input file 'yeast-s_cerevisiae1.global.RMA.nc-no-na-nh'... Segmentation fault

spficklin commented 8 years ago

Hi chartl.

Try adding the .txt to the end of the yeast filename. At one point the code did require that the extension be removed but I believe the code was changed to allow it and it looks like the README wasn't updated.

I added a fix so that the code will no longer segfault, it will give you a message about the file not being found. And the README has updated.

chartl commented 8 years ago

Same issue:

$ rm -rf examples/Pearson && make clean && make && cd examples/ && mkdir Pearson && ../ccm yeast-s_cerevisiae1.global.RMA.nc-no-na-nh.txt 10359 1535 rm -f ccm.o rmm.o ccm rmm gcc -m64 -c -g ccm.c gcc -m64 -c -g rmm.c gcc -m64 ccm.o -g -Wall -lm -lgsl -lgslcblas -fopenmp -llapack -lblas -lpthread -lm -o ccm gcc -m64 rmm.o -g -Wall -lm -lgsl -lgslcblas -fopenmp -llapack -lblas -lpthread -lm -o rmm Reading input file 'yeast-s_cerevisiae1.global.RMA.nc-no-na-nh.txt'... Segmentation fault (core dumped)

And with full extension ('.txt.gz')

$ rm -rf examples/Pearson && make clean && make && cd examples/ && mkdir Pearson && ../ccm yeast-s_cerevisiae1.global.RMA.nc-no-na-nh.txt.gz 10359 1535 rm -f ccm.o rmm.o ccm rmm gcc -m64 -c -g ccm.c gcc -m64 -c -g rmm.c gcc -m64 ccm.o -g -Wall -lm -lgsl -lgslcblas -fopenmp -llapack -lblas -lpthread -lm -o ccm gcc -m64 rmm.o -g -Wall -lm -lgsl -lgslcblas -fopenmp -llapack -lblas -lpthread -lm -o rmm Reading input file 'yeast-s_cerevisiae1.global.RMA.nc-no-na-nh.txt.gz'... Error: EOF reached early. Exiting.

Update:

Unzipping did the trick

$ rm -rf examples/Pearson && make clean && make && cd examples/ && mkdir Pearson && ../ccm yeast.test.txt 10359 1535

rm -f ccm.o rmm.o ccm rmm gcc -m64 -c -g ccm.c gcc -m64 -c -g rmm.c gcc -m64 ccm.o -g -Wall -lm -lgsl -lgslcblas -fopenmp -llapack -lblas -lpthread -lm -o ccm gcc -m64 rmm.o -g -Wall -lm -lgsl -lgslcblas -fopenmp -llapack -lblas -lpthread -lm -o rmm Reading input file 'yeast.test.txt'... Calculating correlations... Writing file 1 of 2: ./Pearson/yeast.test.pc0.bin...

spficklin commented 8 years ago

Oh, you'll have to uncompress the file first.

gunzip yeast-s_cerevisiae1.global.RMA.nc-no-na-nh.txt.gz

Have you pull the code since my last reply? I t should have warned you that that file couldn't be opened when you tried it with just the .txt extension.

spficklin commented 8 years ago

HI chartl. Did this resolve the issue for you? If so I'll close the issue. If not let me know and we can keep working on it.

jmwhitha commented 8 years ago

We ran into the same issue. This produced a .pc0.bin and .pc1.bin, but then when we tried to run rmm -i yeast-s_cerevisiae1.global.RMA.nc-no-na-nh we had a segfault. We also had a segfault when we tried putting the .pc0.bin extension at the end of the file. It also segfaults with relative and full path.

jmwhitha commented 8 years ago

Sorry, I'm from another group. We are using Ubuntu 15.10.

jmwhitha commented 8 years ago

What OS did you test RMTGeneNet on?

spficklin commented 8 years ago

I'm using Ubuntu 14.04. If you are using the example yeast file you can create the network in this way:

1) Change directories to the 'examples' directory 2) Run the ccm program: ../ccm yeast-s_cerevisiae1.global.RMA.nc-no-na-nh.txt 10359 1535 3) Run the rmm program: ../rmm -i yeast-s_cerevisiae1.global.RMA.nc-no-na-nh -b 0.930000 4) Generate the network with the perl script: perl ../parse_pearson_bin.pl -b Pearson -t 0.831100 -p probest_ordo yeast-s_cerevisiae1.global

I updated the examples/README.txt to fix some typos that hopefully will help. I just ran the commands above and all worked well.

jmwhitha commented 8 years ago

I tried that, and the first command didn't work. So, I thought it might be the way I edited the Makefile since I had a separate RMTGene folder. So I downloaded the RMTGeneNet-master and used the following Make File. While there was no yeast-s_cerevisiae1.global.RMA.nc-no-na-nh.txt in the example folder this time, I just copied it from the old RMTGeneNet folder I kept in a separate directory. The command still didn't work even though ccm was now in the folder above the example. I will also post my commands so you can see. I'm thinking now it may have to do with my MKL. Where did you get yours? I have a free trial now, but only for a few more days, and it comes in a very expensive package.

MKLROOT = /opt/intel/mkl

MKLROOT = /opt/intel/composerxe-2011.0.084/mkl

CC = gcc -m64 EXE_DIR = /opt/RMTGeneNet

CCFLAGS = -g

LDFLAGS = -g -Wall -lm -lgsl -lgslcblas -fopenmp -llapack -lblas -lpthread -lm

OBJS = ccm.o rmm.o EXE = ccm rmm

all: ${OBJS} ${CC} ccm.o ${LDFLAGS} -o ccm ${CC} rmm.o ${LDFLAGS} -o rmm

ccm.o: ccm.c ${CC} -c ${CCFLAGS} ccm.c

rmm.o: rmm.c rmm.h ${CC} -c ${CCFLAGS} rmm.c

clean: rm -f ${OBJS} ${EXE}

install: all install -m 0755 ccm ${EXE_DIR} install -m 0755 rmm ${EXE_DIR} install -m 0755 parse_pearson_bin.pl ${EXE_DIR}

Here's what it says when I "make" and "make install"

vjw@Thermomics:/opt/RMTGeneNet-master$ sudo make gcc -m64 -c -g ccm.c gcc -m64 -c -g rmm.c gcc -m64 ccm.o -g -Wall -lm -lgsl -lgslcblas -fopenmp -llapack -lblas -lpthread -lm -o ccm gcc -m64 rmm.o -g -Wall -lm -lgsl -lgslcblas -fopenmp -llapack -lblas -lpthread -lm -o rmm vjw@Thermomics:/opt/RMTGeneNet-master$ sudo make install gcc -m64 ccm.o -g -Wall -lm -lgsl -lgslcblas -fopenmp -llapack -lblas -lpthread -lm -o ccm gcc -m64 rmm.o -g -Wall -lm -lgsl -lgslcblas -fopenmp -llapack -lblas -lpthread -lm -o rmm install -m 0755 ccm /opt/RMTGeneNet install -m 0755 rmm /opt/RMTGeneNet install -m 0755 parse_pearson_bin.pl /opt/RMTGeneNet vjw@Thermomics:/opt/RMTGeneNet-master$ ls ccm ccm.o INSTALL.txt Makefile README.txt rmm.c rmm.o ccm.c examples LICENSE.txt parse_pearson_bin.pl rmm rmm.h

jmwhitha commented 8 years ago

vjw@Thermomics:/opt/RMTGeneNet-master$ cd examples vjw@Thermomics:/opt/RMTGeneNet-master/examples$ ls probest_order.txt README.txt samples.txt vjw@Thermomics:/opt/RMTGeneNet-master/examples$ cd README.txt bash: cd: README.txt: Not a directory vjw@Thermomics:/opt/RMTGeneNet-master/examples$ sudo cp ~/Downloads/RMTGeneNet/examples/yeast-s_cerevisiae1.global.RMA.nc-no-na-nh.txt ./ vjw@Thermomics:/opt/RMTGeneNet-master/examples$ ../ccm yeast-s_cerevisiae1.global.RMA.nc-no-na-nh.txt 10359 1535 Reading input file 'yeast-s_cerevisiae1.global.RMA.nc-no-na-nh.txt'... Calculating correlations... Writing file 1 of 2: ./Pearson/yeast-s_cerevisiae1.global.RMA.nc-no-na-nh.pc0.bin... Segmentation fault vjw@Thermomics:/opt/RMTGeneNet-master/examples$

jmwhitha commented 8 years ago

Not sure why but README.txt is an executable in the folder. So is LICENSE.txt, INSTALL.txt, ccm.c, rmm.h, rmm.c, and parse_pearson_bin.pl.

spficklin commented 8 years ago

Very strange. I'm not sure why you're getting a segfault. You have the most up-to-date code? Does it segfault almost immediately after it prints the message about writing file 1 of 2? Or, does it take a bit of time?

I just reran the example again and here's what I get:

../ccm yeast-s_cerevisiae1.global.RMA.nc-no-na-nh.txt 10359 1535 Reading input file 'yeast-s_cerevisiae1.global.RMA.nc-no-na-nh.txt'... Calculating correlations... Writing file 1 of 2: ./Pearson/yeast-s_cerevisiae1.global.RMA.nc-no-na-nh.pc0.bin... Writing file 2 of 2: ./Pearson/yeast-s_cerevisiae1.global.RMA.nc-no-na-nh.pc1.bin... Done.

jmwhitha commented 8 years ago

Thanks for the response, but I'm still having trouble. As much as I would like to, I may not be able to use this method given the time constraint.

jmwhitha commented 8 years ago

Someone from our help desk helped me get further.

We tried the command below and got the following error. Any idea what's happening? strace ./rmm -i 2016-5-17_RMAnormSummary -b 0.930000

read(5, "\335d\343>\320$~>b\241\323\275$\332\343\275\17[:\276\204'i\276\307\320]=x*\365="..., 4096) = 3416 close(5) = 0 munmap(0x7f882e0e8000, 4096) = 0 mmap(NULL, 1196032, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f882dfa6000 write(1, " calculating eigenvalues for n "..., 62 calculating eigenvalues for n x n matrix of size n = 546... ) = 62 munmap(0x7f882dfa6000, 1196032) = 0 write(1, " testing similarity of NNSD wit"..., 45 testing similarity of NNSD with Poisson... ) = 45 write(2, "gsl: interp.c:38: ERROR: insuffi"..., 78gsl: interp.c:38: ERROR: insufficient number of points for interpolation type ) = 78 write(2, "Default GSL error handler invoke"..., 35Default GSL error handler invoked. ) = 35 rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0 write(4, "Threshold\tChi-square\tCut Matrix "..., 37) = 37 tgkill(1816, 1816, SIGABRT) = 0 --- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=1816, si_uid=0} --- +++ killed by SIGABRT +++ Aborted

spficklin commented 8 years ago

The most recent code changes in the development branch should resolve these issues. I'm marking this as closed. Please reopen if some problem still remains.