Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Augustus protein profile error on Mac osX #3

Open
nextgenusfs opened this issue Apr 24, 2016 · 16 comments
Open

Augustus protein profile error on Mac osX #3

nextgenusfs opened this issue Apr 24, 2016 · 16 comments
Labels

Comments

@nextgenusfs
Copy link
Owner

There is an error when using Augustus that seems to only show up on Mac systems. When training Augustus using BUSCO, BUSCO uses the --proteinprofile option to find a gene model that matches that protein profile. Augustus compiled on Mac throws an error here that looks like this:

augustus: ERROR
    PP::Profile: Error parsing pattern file"PF00012.13.prfl", line 9.

I've seen this error on several version of Augustus compiled on Mac. The error does not exist when Augustus is compiled on Linux.

The result of this is that BUSCO cannot train Augustus if running funannotate on Mac. You can still use funannotate but must pass in a valid species name using the --augustus_species parameter. The script will still run if you try to use BUSCO to train Augustus, however you will get no gene model predictions from Augusuts and only GeneMark models will get passed to EVM.

@nextgenusfs
Copy link
Owner Author

nextgenusfs commented Apr 28, 2016

This is still a problem on OS X only. So here is the short term fix until the Augustus developers can fix the code and/or somebody smarter than me can fix the home-brew augustus formulae.

First uninstall home-brew augustus:

brew uninstall --force augustus

Then make sure you have GCC-5 installed and bamtools:

brew install gcc5 bamtools

Now you can download the "fixed" augustus source code from my dropbox account, all I've changed here are some values in the Makefiles to use g++-5 and then use home-brew installed bamtools:

wget https://www.dropbox.com/s/1v3u3ii0j51faq5/augustus-3.2.1-osx.tar.gz

Unpack the code:

tar xzvf augustus-3.2.1-osx.tar.gz

Move into the directory and compile and install (might want to cross your fingers....)

#navigate
cd augustus-3.2.1

#compile
make

#install
sudo make install

Now make sure to change your AUGUSTUS_CONFIG_PATH in your ~/.bash_profile:

export AUGUSTUS_CONFIG_PATH=/opt/augustus-3.2.1/config

@nextgenusfs
Copy link
Owner Author

Note, if you have a more recent version of GCC installed, i.e. gcc6, then you can modify this distribution as such to configure for gcc-6.

#move into augustus folder
cd augustus-3.2.1

#change gcc version
find . -name Makefile | xargs sed -i 's/g++-5/g++-6/g'

@bextra
Copy link

bextra commented Mar 1, 2017

+1 I am also plagued by this issue

@nextgenusfs
Copy link
Owner Author

Did the above installation of v3.2.1 work by chance? I have not tried the newest version (v3.2.3) yet so I don't know if it will compile on Mac or not.

@bextra
Copy link

bextra commented Mar 1, 2017

Walking through the steps now. Currently at the make stage (with fingers crossed)

@bextra
Copy link

bextra commented Mar 1, 2017

I installed Augustus via homebrew a week ago and that still didn't work which is how I found this. I think that was 3.2.2.

@nextgenusfs
Copy link
Owner Author

Yes, the home-brew installation appears to install correctly, but protein profile is broken. I've opened several tickets with Augustus developers and have never gotten a response.... hopefully my hack solution will work for you. If you don't need to run BUSCO2 than rest of pipeline will work however.

@bextra
Copy link

bextra commented Mar 1, 2017

Just ran it on the test data file and no errors in the augustus.log from BUSCO. Looks like it ran like a charm. Now to test on some bio data. Thanks so much for implementing a workable solution that's well documented to boot!

@nextgenusfs
Copy link
Owner Author

Great! Best of luck, let me know if you run into any problems or something isn't clear.

@sarah872
Copy link

Hey there. I am also running into this issue. I installed augustus over brew (current AUGUSTUS (3.2.2), and I am getting the same error (PP::Profile: Error parsing pattern file"PF00012.13.prfl", line 9.). I was trying your solution, but when I go for make, I get the following error (I am pasting here everything that terminal prints out):

mkdir -p bin
cd src && /Library/Developer/CommandLineTools/usr/bin/make
g++-5 -c -Wall -Wno-sign-compare -ansi -pedantic -O3 -o genbank.o genbank.cc -I../include
g++-5 -c -Wall -Wno-sign-compare -ansi -pedantic -O3 -o properties.o properties.cc -I../include
/var/folders/nd/65wyxsxn52d55wrw0gjrd5q80000gn/T//ccgtdMcJ.s:6186:suffix or operands invalid for 'movq'
make[1]: *** [properties.o] Error 1
make: *** [all] Error 2

@nextgenusfs
Copy link
Owner Author

Hi @sarah872. There still isn't an easy solution for this. I have never been able to get any help from Augustus developers, thus here is what I know currently as the status of Augstus with Mac OSx. I can't get Augustus v3.2.2 through v3.3 to compile on Mac correctly.

I have gotten v3.2.1 to compile where both ProteinProfile search works for BUSCO and the rest of the program seems to function, but with several caveats. The programs bundled in Augustus that read BAM files (bam2hints, filterBAM, etc) must be compiled with same compiler used to compile Bamtools. AND the Makefiles for these programs have hard coded paths to a particular machine, which is of course not where Bamtools is located on everybody else system. Notably, I also can't get Bamtoolsv2.4.1 to work either. And then Augustus itself must be compile with g++ v4.8 or greater in order to get the proteinprofile to work. Obviously this really sucks and makes it hard to use/install Augustus....

I've actually now managed to break my augustus install on my MacBook, and it has taken me several hours to get it figured out how to rebuild it. If you have a Linux machine it will be easier to install/run. If not, I think I'm going to dump the modified Augustus v3.2.1 onto a GitHub repository and post some instructions on how I got it to work. Will let you know when that's done.

@sarah872
Copy link

Thanks for keeping me updated. I actually have access to Linux on a grid server, but not as admin - so installation is restricted to my user.

@nextgenusfs
Copy link
Owner Author

Hi @sarah872. You can give this a try, let me know if it works: https://github.com/nextgenusfs/augustus

@sarah872
Copy link

thanks I did. Unfortunately I am getting an error when doing this step:

make CC=gcc-7 CXX=g++-7 BAMTOOLS_CC=clang BAMTOOLS_CXX=clang++ BAMTOOLS=/usr/local/bin/bamtools

bam2hints.cc:16:10: fatal error: 'api/BamReader.h' file not found
#include <api/BamReader.h>
         ^~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [bam2hints.o] Error 1
make[1]: *** [all] Error 2
make: *** [all] Error 2

@nextgenusfs
Copy link
Owner Author

It can't find the include folder from bamtools, where did you install bamtools?

@nextgenusfs
Copy link
Owner Author

Try a git pull on the augustus repository, I added print command to print out where the make file is trying to build bamtools from.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants