Hi all,
I have a number of reads (10000) that I need to blat against the human genome. So I decided installing standalone blat on my Mac Pro 4,1 would be the way forward. I first downloaded the ready compiled executable for Mac-i386. Seemed to be extremely hassle free and working until I tried telling it to use the .fa version of the human genome that is 3.16 GB, as the database. Then I got an error msg saying it was out of memory while it was trying to hold the entire genome in memory... Arse!
So after a bit of searching I came across a few posts in various places pointing out that the ready downloadable blat was 32 bit and capped at using only 4GB of RAM, regardless of the amount of RAM your machine already has, and that the way forward was to compile from source code which was remarkably similar to linux. How bad could it be I thought?
I went to http://users.soe.ucsc.edu/~kent/src/ and downloaded blatSrc.zip
I've had a number of errors which I managed to solve:
1) First problem seemed to be with a load of png libraries... as out lined here
That one wasn't too bad. Quick search for libpng-devel leads you to a downloadable solution.
2) Next problem appeared to be with the $MACHTYPE. The error msg I was receiving said:
make[1]: *** No rule to make target `../lib//jkweb.a', needed by `blat'.
Stop.
make: *** [all] Error 2
I found the answer to that one here
and managed to rename my machtype from x86_64-apple-darwin to x86_64 with a little help from a linux colleague
3) So finally, I'm in the blatSrc folder and I type 'make'... waiting with baited breath for the next error message. And there didn't appear to be any! But my next problem is that the output I got indicated that for some reason, it doesn't appear to have put all the executables in the same place (see below).
lb-mac:blatSrc Ash$ make
cd lib && make
make[1]: `x86_64/jkweb.a' is up to date.
cd jkOwnLib && make
make[1]: `../lib/x86_64/jkOwnLib.a' is up to date.
cd blat && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/blat blat.o ../lib/x86_64/jkOwnLib.a ../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
strip /Users/Ash/bin/x86_64/blat
cd gfClient && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/gfClient gfClient.o ../lib/x86_64/jkOwnLib.a ../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
strip /Users/Ash/bin/x86_64/gfClient
cd gfServer && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/gfServer gfServer.o ../lib/x86_64/jkOwnLib.a ../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
strip /Users/Ash/bin/x86_64/gfServer
cd hg/pslPretty && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/pslPretty pslPretty.o ../../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
cd hg/pslReps && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/pslReps pslReps.o ../../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
cd hg/pslSort && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/pslSort pslSort.o ../../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
cd utils/nibFrag && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/nibFrag nibFrag.o ../../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng
strip /Users/Ash/bin/x86_64/nibFrag
cd utils/faToNib && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/faToNib faToNib.o ../../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
strip /Users/Ash/bin/x86_64/faToNib
cd utils/faToTwoBit && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/faToTwoBit faToTwoBit.o ../../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
strip /Users/Ash/bin/x86_64/faToTwoBit
cd utils/twoBitToFa && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/twoBitToFa twoBitToFa.o ../../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
strip /Users/Ash/bin/x86_64/twoBitToFa
cd utils/twoBitInfo && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/twoBitInfo twoBitInfo.o ../../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
strip /Users/Ash/bin/x86_64/twoBitInfo
cd webBlat && make
make[1]: `webBlat' is up to date.
I could understand if it had put all the executables in one place - perhaps I had screwed up creating the bin file in the wrong place or something. But the fact that some appear to be in the directory I was in and others appear to have been deposited elsewhere (bin) is really confusing me! Does anyone know why? Have I done something wrong? Incidentally, it certainly appears to have created a 64 bit version of blat.
Apologies for the rambling post - I hope this proves useful to anyone else trying to install standalone blat on a Mac, and would be extremely grateful if someone could enlighten me to whether I've totally screwed up or not!
Cheers,
A
I have a number of reads (10000) that I need to blat against the human genome. So I decided installing standalone blat on my Mac Pro 4,1 would be the way forward. I first downloaded the ready compiled executable for Mac-i386. Seemed to be extremely hassle free and working until I tried telling it to use the .fa version of the human genome that is 3.16 GB, as the database. Then I got an error msg saying it was out of memory while it was trying to hold the entire genome in memory... Arse!
So after a bit of searching I came across a few posts in various places pointing out that the ready downloadable blat was 32 bit and capped at using only 4GB of RAM, regardless of the amount of RAM your machine already has, and that the way forward was to compile from source code which was remarkably similar to linux. How bad could it be I thought?
I went to http://users.soe.ucsc.edu/~kent/src/ and downloaded blatSrc.zip
I've had a number of errors which I managed to solve:
1) First problem seemed to be with a load of png libraries... as out lined here
That one wasn't too bad. Quick search for libpng-devel leads you to a downloadable solution.
2) Next problem appeared to be with the $MACHTYPE. The error msg I was receiving said:
make[1]: *** No rule to make target `../lib//jkweb.a', needed by `blat'.
Stop.
make: *** [all] Error 2
I found the answer to that one here
and managed to rename my machtype from x86_64-apple-darwin to x86_64 with a little help from a linux colleague
3) So finally, I'm in the blatSrc folder and I type 'make'... waiting with baited breath for the next error message. And there didn't appear to be any! But my next problem is that the output I got indicated that for some reason, it doesn't appear to have put all the executables in the same place (see below).
lb-mac:blatSrc Ash$ make
cd lib && make
make[1]: `x86_64/jkweb.a' is up to date.
cd jkOwnLib && make
make[1]: `../lib/x86_64/jkOwnLib.a' is up to date.
cd blat && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/blat blat.o ../lib/x86_64/jkOwnLib.a ../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
strip /Users/Ash/bin/x86_64/blat
cd gfClient && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/gfClient gfClient.o ../lib/x86_64/jkOwnLib.a ../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
strip /Users/Ash/bin/x86_64/gfClient
cd gfServer && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/gfServer gfServer.o ../lib/x86_64/jkOwnLib.a ../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
strip /Users/Ash/bin/x86_64/gfServer
cd hg/pslPretty && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/pslPretty pslPretty.o ../../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
cd hg/pslReps && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/pslReps pslReps.o ../../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
cd hg/pslSort && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/pslSort pslSort.o ../../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
cd utils/nibFrag && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/nibFrag nibFrag.o ../../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng
strip /Users/Ash/bin/x86_64/nibFrag
cd utils/faToNib && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/faToNib faToNib.o ../../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
strip /Users/Ash/bin/x86_64/faToNib
cd utils/faToTwoBit && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/faToTwoBit faToTwoBit.o ../../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
strip /Users/Ash/bin/x86_64/faToTwoBit
cd utils/twoBitToFa && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/twoBitToFa twoBitToFa.o ../../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
strip /Users/Ash/bin/x86_64/twoBitToFa
cd utils/twoBitInfo && make
gcc -O -g -Wall -Wno-unused-variable -o /Users/Ash/bin/x86_64/twoBitInfo twoBitInfo.o ../../lib/x86_64/jkweb.a -pthread -lssl -lcrypto -lpng -lm
strip /Users/Ash/bin/x86_64/twoBitInfo
cd webBlat && make
make[1]: `webBlat' is up to date.
I could understand if it had put all the executables in one place - perhaps I had screwed up creating the bin file in the wrong place or something. But the fact that some appear to be in the directory I was in and others appear to have been deposited elsewhere (bin) is really confusing me! Does anyone know why? Have I done something wrong? Incidentally, it certainly appears to have created a 64 bit version of blat.
Apologies for the rambling post - I hope this proves useful to anyone else trying to install standalone blat on a Mac, and would be extremely grateful if someone could enlighten me to whether I've totally screwed up or not!
Cheers,
A
Comment