{"action":"created","issue":{"url":"https://api.github.com/repos/ratschlab/rDiff/issues/2","labels_url":"https://api.github.com/repos/ratschlab/rDiff/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/ratschlab/rDiff/issues/2/comments","events_url":"https://api.github.com/repos/ratschlab/rDiff/issues/2/events","html_url":"https://github.com/ratschlab/rDiff/issues/2","id":103863489,"number":2,"title":"rDiff fails on >2K genes during gene expression step; requires 64-bit octave? (my process to build it detailed)","user":{"login":"warrenmcg","id":6866073,"avatar_url":"https://avatars.githubusercontent.com/u/6866073?v=3","gravatar_id":"","url":"https://api.github.com/users/warrenmcg","html_url":"https://github.com/warrenmcg","followers_url":"https://api.github.com/users/warrenmcg/followers","following_url":"https://api.github.com/users/warrenmcg/following{/other_user}","gists_url":"https://api.github.com/users/warrenmcg/gists{/gist_id}","starred_url":"https://api.github.com/users/warrenmcg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/warrenmcg/subscriptions","organizations_url":"https://api.github.com/users/warrenmcg/orgs","repos_url":"https://api.github.com/users/warrenmcg/repos","events_url":"https://api.github.com/users/warrenmcg/events{/privacy}","received_events_url":"https://api.github.com/users/warrenmcg/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":11,"created_at":"2015-08-29T17:02:12Z","updated_at":"2015-09-30T17:08:04Z","closed_at":null,"body":"Once I got rDiff up and running, I attempted to have it analyze my SplAdder results, and it crashed with the following error:\r\n```\r\nGetting gene expression for: /FUS_KO_splicing_results//CtrBrain2_tophatEnsemblOut/CtrBr2.bam\r\nFinished 2203 out of 22301 geneserror: out of memory or dimension too large for Octave's index type\r\nerror: called from:\r\nerror:   /home/warren/Downloads/rDiff-master/src/tools/read_utils/clip_reads.m at line 11, column 23\r\nerror:   /home/warren/Downloads/rDiff-master/src/tools/read_utils/get_reads_for_gene.m at line 45, column 12\r\nerror:   /home/warren/Downloads/rDiff-master/src/get_reads_caller.m at line 52, column 10\r\nerror:   /home/warren/Downloads/rDiff-master/src/get_read_counts.m at line 32, column 17\r\nerror:   /home/warren/Downloads/rDiff-master/src/rdiff.m at line 38, column 5\r\nstarting Octave failed\r\n```\r\n\r\nI realized that I needed to re-build Octave as 64-bit, but as this feature is still in an experimental state, it wasn't straightforward. You first need to build the Blas, Lapack, Qrupdate, Arpack, and SuiteSparse libraries as 64-bit aware too. You'll get a reminder warning about this during the build process, whether you do it or not. If you don't do it, though, Octave will likely fail to run when you try to use it (I didn't test that; I'm just making a reasonable assumption).\r\n\r\nHere are the webpages detailing instructions on how to install 64-bit octave:\r\ninitial page: http://timoeckhard.weebly.com/tutorial-install-octave-38-under-ubuntu-1304.html\r\ndetailed page with step-by-step instructions, tested with gcc 4.3.4 and Debian system: http://www.gnu.org/software/octave/doc/interpreter/Compiling-Octave-with-64_002dbit-Indexing.html\r\n\r\nHere are the modifications I made with my set-up, which was tested with Ubuntu 14.04.3, gcc 4.8.4, and Octave 3.8.1 downloaded from ftp://ftp.gnu.org/gnu/octave/octave-3.8.1.tar.gz:\r\n**Initial Set-up:**\r\n```\r\nsudo mkdir /usr/lib/octave-prefix64\r\nsudo mkdir /usr/lib/octave-prefix64/lib\r\nsudo mkdir /usr/lib/octave-prefix64/include \r\n```\r\n`/usr/lib/octave-prefix64/` is my location for the `$prefix64` directory described in the detailed instructions. All the necessary files go in the `$prefix64/lib/` sub-directory, and the Include files from SuiteSparse go into the `$prefix64/include/` directory.\r\n\r\n**Blas and Lapack (bundled together):**\r\nDownloaded lapack-3.5.0; configured the make.inc file (which provides the configuration details to set-up the Makefile) as described; had an error where the Blaslib library was missing (“librefblas.a”), so I first did `make blaslib` before `make`; then it compiled without error\r\n\r\n**Qrupdate:**\r\nDownloaded qrupdate-1.1.2; configured the Makeconf file (similarly provides configuration details) as described; you need to add `-L=/usr/lib/octave-prefix64/lib` flag before the `-lblas` and `-llapack` flags, because these libraries are in a non-standard location now: `/usr/lib/octave-prefix64` [substitute this for whatever your $prefix64 directory is]\r\n\r\n**Arpack:**\r\nDownloaded 3.1.5; added “fdefault-integer-8” to any line where FFLAGS was defined using quotations (the line with just FFLAGS=-g and empty were left alone)\r\n\r\n**SuiteSparse:**\r\nDownloaded SuiteSparse 4.4.5 from [here](http://faculty.cse.tamu.edu/davis/suitesparse.html), as the URL given in the detailed instructions is dead; changed the SuiteSparse_config/SuiteSparse_config.mk file to reflect the new 64-bit aware library and include directories; could not figure out how to add the suggested code to make shared libraries, so I just did without, and SuiteSparse and Octave appeared to build without issues\r\n\r\n**Octave:**\r\nThere is no way, as far as I know, to get Octave to build as 64-bit using the Ubuntu package manager `apt-get`. I thus downloaded Octave from the FTP site (link above), and configured it as detailed in the instructions, filling in $prefix64 with my directory path."},"comment":{"url":"https://api.github.com/repos/ratschlab/rDiff/issues/comments/144478993","html_url":"https://github.com/ratschlab/rDiff/issues/2#issuecomment-144478993","issue_url":"https://api.github.com/repos/ratschlab/rDiff/issues/2","id":144478993,"user":{"login":"teresouza","id":9550755,"avatar_url":"https://avatars.githubusercontent.com/u/9550755?v=3","gravatar_id":"","url":"https://api.github.com/users/teresouza","html_url":"https://github.com/teresouza","followers_url":"https://api.github.com/users/teresouza/followers","following_url":"https://api.github.com/users/teresouza/following{/other_user}","gists_url":"https://api.github.com/users/teresouza/gists{/gist_id}","starred_url":"https://api.github.com/users/teresouza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/teresouza/subscriptions","organizations_url":"https://api.github.com/users/teresouza/orgs","repos_url":"https://api.github.com/users/teresouza/repos","events_url":"https://api.github.com/users/teresouza/events{/privacy}","received_events_url":"https://api.github.com/users/teresouza/received_events","type":"User","site_admin":false},"created_at":"2015-09-30T17:08:04Z","updated_at":"2015-09-30T17:08:04Z","body":"Ok people, after so many hours octave compiled. I got a lot of warnings (see below).\r\nSome things: Most dependencies (cURL, GLPK, etc) are in my $PATH and also isn't that odd that it did not find the COLAMD libraries and UMFPACK?\r\n\r\nconfigure: WARNING: Qhull library not found.  This will result in loss of functionality of some geometry functions.\r\nconfigure: WARNING: HDF5 library not found.  Octave will not be able to save or load HDF5 data files.\r\nconfigure: WARNING: GLPK library not found.  The glpk function for solving linear programs will be disabled.\r\nconfigure: WARNING: cURL library not found.  The ftp objects, urlread and urlwrite functions will be disabled.\r\nconfigure: WARNING: OpenGL libs (GL and GLU) not found.  Native graphics will be disabled.\r\nconfigure: WARNING: COLAMD library not found.  This will result in some lack of functionality for sparse matrices.\r\nconfigure: WARNING: CCOLAMD library not found.  This will result in some lack of functionality for sparse matrices.\r\nconfigure: WARNING: CHOLMOD library not found.  This will result in some lack of functionality for sparse matrices.\r\nconfigure: WARNING: UMFPACK not found.  This will result in some lack of functionality for sparse matrices.\r\nconfigure: WARNING: JAVA_HOME environment variable not initialized.  Auto-detection will proceed but is unreliable.\r\nconfigure: WARNING: No javac compiler or jar executable found.  Octave will not be able to call Java methods.\r\nconfigure: WARNING: OpenGL libs (GL and GLU) not found -- disabling GUI\r\nconfigure: WARNING: \r\nconfigure: WARNING: You used the EXPERIMENTAL --enable-64 option.\r\nconfigure: WARNING: Are you sure that is what you want to do?\r\nconfigure: WARNING: \r\nconfigure: WARNING: Your Fortran compiler must have an option to generate\r\nconfigure: WARNING: code with 8 byte signed INTEGER values.  This option\r\nconfigure: WARNING: should be specified in the F77_INTEGER_8_FLAG variable\r\nconfigure: WARNING: Make.  This should work automatically for gfortran.  If\r\nconfigure: WARNING: you use another compiler, you will need to set this\r\nconfigure: WARNING: variable on the configure command line.  You must also\r\nconfigure: WARNING: compile the ARPACK, BLAS, LAPACK, QRUPDATE, and SuiteSparse\r\nconfigure: WARNING: libraries to use 8 byte signed integers for array indexing.\r\nconfigure: WARNING: \r\nconfigure: WARNING: \r\nconfigure: WARNING: I didn't find the necessary libraries to compile native\r\nconfigure: WARNING: graphics.  It isn't necessary to have native graphics,\r\nconfigure: WARNING: but you will need to have gnuplot installed or you won't\r\nconfigure: WARNING: be able to use any of Octave's plotting commands\r\nconfigure: WARNING: \r\nconfigure: \r\nconfigure: NOTE: Libraries or auxiliary programs may be skipped if they are\r\nconfigure: NOTE: not found OR if they are missing required features on your\r\nconfigure: NOTE: system. \r\n"}}