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

busco: create config.ini #642

Closed
wants to merge 1 commit into from
Closed

Conversation

gaberoo
Copy link
Contributor

@gaberoo gaberoo commented May 22, 2019

I edited the formula to create the config.ini file with the proper Homebrew paths.

@gaberoo gaberoo requested a review from sjackman May 22, 2019 15:36
@gaberoo gaberoo self-assigned this May 22, 2019
Copy link
Member

@sjackman sjackman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very helpful. Thank you, Gabriel!

Formula/busco.rb Outdated Show resolved Hide resolved
Formula/busco.rb Outdated Show resolved Hide resolved
Formula/busco.rb Outdated Show resolved Hide resolved
@gaberoo gaberoo force-pushed the busco_config_ini branch 2 times, most recently from b3da4c6 to fd27da2 Compare May 22, 2019 18:49
@gaberoo
Copy link
Contributor Author

gaberoo commented May 22, 2019

One more thing before merging, because this seems like the best place to discuss this:

  1. I ran into this bug on my data: Augustus protein profile error on Mac osX nextgenusfs/funannotate#3. For some reason augustus doesn't work right on macOS. Augustus is on homebrew-core though. I could fix this using
brew install augustus --cc=gcc

The resulting install is happy:

 ❯ brew test augustus
Testing augustus
==> /usr/local/Cellar/augustus/3.3.2/bin/augustus --species=human test.fasta

There are some other things that aren't 100% cool with the formula. For example the boost dependence seems to be build-only:

 ❯ brew linkage augustus
System libraries:
  /usr/lib/libSystem.B.dylib
  /usr/lib/libc++.1.dylib
  /usr/lib/libz.1.dylib
Dependencies with no linkage:
  boost

So, how should be address this? Fix augustus in homebrew-core? Move it to homebrew-bio?

@gaberoo
Copy link
Contributor Author

gaberoo commented May 22, 2019

Actually, scratch that. The problem wasn't resolved.

@sjackman
Copy link
Member

So, how should be address this? Fix augustus in homebrew-core? Move it to homebrew-bio?

Yes, fix any issues with the existing augustus formula with a PR to Homebrew/core.

@gaberoo
Copy link
Contributor Author

gaberoo commented May 22, 2019

So, how should be address this? Fix augustus in homebrew-core? Move it to homebrew-bio?

Yes, fix any issues with the existing augustus formula with a PR to Homebrew/core.

I'm not sure what the best fix is. There are two competing problems. Using the examples from the augustus source code:

 ❯ augustus --species=human --proteinprofile=profile/HsDHC.prfl example.fa
# This output was generated with AUGUSTUS (version 3.3.2).
# AUGUSTUS is a gene prediction tool written by M. Stanke ([email protected]),
# O. Keller, S. König, L. Gerischer, L. Romoth and Katharina Hoff.
# Please cite: Mario Stanke, Mark Diekhans, Robert Baertsch, David Haussler (2008),
# Using native and syntenically mapped cDNA alignments to improve de novo gene finding
# Bioinformatics 24: 637-644, doi 10.1093/bioinformatics/btn013
# No extrinsic information on sequences given.
# Initialising the parameters using config directory /usr/local/Cellar/augustus/3.3.2/config/ ...

/usr/local/Cellar/augustus/3.3.2/libexec/bin/augustus: ERROR
	PP::Profile: Error parsing pattern file"profile/HsDHC.prfl", line 9.

I can fix this by compiling only the augustus source with g++-9:

 ❮ AUGUSTUS_CONFIG_PATH=$(pwd)/config ./bin/augustus --species=human --proteinprofile=examples/profile/HsDHC.prfl examples/example.fa                [16:05:16]
# This output was generated with AUGUSTUS (version 3.3.2).
# AUGUSTUS is a gene prediction tool written by M. Stanke ([email protected]),
# O. Keller, S. König, L. Gerischer, L. Romoth and Katharina Hoff.
# Please cite: Mario Stanke, Mark Diekhans, Robert Baertsch, David Haussler (2008),
# Using native and syntenically mapped cDNA alignments to improve de novo gene finding
# Bioinformatics 24: 637-644, doi 10.1093/bioinformatics/btn013
# No extrinsic information on sequences given.
# Initialising the parameters using config directory /Volumes/Data/Projects/augustus-3.3.2/config/ ...
Warning: Block HsDHC_AG is not significant enough, removed from profile.
Warning: Block HsDHC_AO is not significant enough, removed from profile.
Warning: Block HsDHC_BJ is not significant enough, removed from profile.
# Using protein profile DHC
# --[583..1610]--> HsDHC_F (24) <--[62..102]--> HsDHC_H (65) <--[38..58]--> HsDHC_J (46) <--[29..54]--> HsDHC_L (15) <--[43..76]--> HsDHC_N (20) <--[28..48]--> HsDHC_P (42) <--[4..29]--> HsDHC_Q (125) <--[13..34]--> HsDHC_R (16) <--[2..8]--> HsDHC_S (61) <--[23..47]--> HsDHC_T (17) <--[3..4]--> HsDHC_U (16) <--[29..42]--> HsDHC_W (39) <--[8..29]--> HsDHC_X (19) <--[0..2]--> HsDHC_Y (11) <--[10..66]--> HsDHC_Z (70) <--[74..141]--> HsDHC_AA (11) <--[70..156]--> HsDHC_AC (20) <--[43..124]--> HsDHC_AE (11) <--[2..3]--> HsDHC_AF (17) <--[88..119]--> HsDHC_AJ (20) <--[15..46]--> HsDHC_AK (23) <--[59..203]--> HsDHC_AL (21) <--[1..2]--> HsDHC_AM (31) <--[35..44]--> HsDHC_AP (26) <--[15..24]--> HsDHC_AQ (23) <--[13..17]--> HsDHC_AS (24) <--[152..202]--> HsDHC_AV (25) <--[6..22]--> HsDHC_AW (8) <--[201..260]--> HsDHC_AZ (19) <--[4..9]--> HsDHC_BA (17) <--[26..208]--> HsDHC_BC (12) <--[1..5]--> HsDHC_BD (134) <--[2..3]--> HsDHC_BE (13) <--[130..240]--> HsDHC_BG (23) <--[19..38]--> HsDHC_BI (20) <--[29..45]--> HsDHC_BK (23) <--[8..35]--> HsDHC_BL (9) <--[3..8]--> HsDHC_BM (20) <--[20..35]--> HsDHC_BO (44) <--[5..16]--> HsDHC_BP (31) <--[34..51]--> HsDHC_BR (16) <--[62..98]--> HsDHC_BS (33) <--[53..102]--> HsDHC_BV (21) <--[31..78]--> HsDHC_BX (12) <--[28..47]--> HsDHC_BZ (11) <--[16..30]--> HsDHC_CB (10) <----
# human version. Using default transition matrix.
# Looks like examples/example.fa is in fasta format.
# We have hints for 0 sequences and for 0 of the sequences in the input set.
#
# ----- prediction on sequence number 1 (length = 9453, name = HS04636) -----

But, I can't install the whole formula with gcc-9 because one/some of the auxprogs builds with boost. So a gcc boost would be needed to build. We could do this like we have before, but I'm not sure whether this is OK for hombrew-core.

 ❯ brew install augustus --cc=gcc-9
Warning: You passed `--cc=gcc-9`.
You will encounter build failures with some formulae.
Please create pull requests instead of asking for help on Homebrew's GitHub,
Discourse, Twitter or IRC. You are responsible for resolving any issues you
experience, as you are running this unsupported configuration.

==> Downloading http://bioinf.uni-greifswald.de/augustus/binaries/augustus-3.3.2.tar.gz
Already downloaded: /Users/gaberoo/Library/Caches/Homebrew/downloads/b4e15ad9ecf5080fee08519801b3edae88f68f9a2add0cf230b955df2ebd80f1--augustus-3.3.2.tar.gz
==> make clean
==> make
Last 15 lines from /Users/gaberoo/Library/Logs/Homebrew/augustus/02.make:
      ...
  "virtual thunk to std::__1::basic_iostream<char, std::__1::char_traits<char> >::~basic_iostream()", referenced from:
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in libbamtools.a(SamHeader.cpp.o)
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in libbamtools.a(SamFormatParser_p.cpp.o)
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in libbamtools.a(SamFormatPrinter_p.cpp.o)
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in libbamtools.a(SamHeaderValidator_p.cpp.o)
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in libbamtools.a(SamSequence.cpp.o)
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in libbamtools.a(BgzfStream_p.cpp.o)
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in libbamtools.a(BamRandomAccessController_p.cpp.o)
      ...
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make[2]: *** [bam2hints] Error 1
make[1]: *** [all] Error 2
make: *** [all] Error 2

Do not report this issue to Homebrew/brew or Homebrew/core!

@sjackman
Copy link
Member

For Homebrew/core, I believe the usual rule is that it must be possible to build the formula using Apple Clang. If you can reproduce the PP::Profile: Error parsing pattern file error outside of Homebrew (by compiling it from source) I'd suggest reporting the issue to the upstream author. If the issue is not resolvable, augustus could be moved from Homebrew/core to Brewsci/bio and compiled with gcc.

@gaberoo
Copy link
Contributor Author

gaberoo commented May 22, 2019

I'll see what upstream says, though from nextgenusfs/funannotate#3 it seems that they might not be very responsive.

@gaberoo
Copy link
Contributor Author

gaberoo commented May 22, 2019

Done: Gaius-Augustus/Augustus#64

@sjackman
Copy link
Member

Seeing as nextgenusfs/funannotate#3 goes back to 2016, I think the best bet is to build augustus with gcc. Open the PR to fix it in Homebrew/core. If it's accepted, yeah, (the bar is set lower for existing formulae). If it's not accepted, you can migrate augustus to Brewsci/bio.

@gaberoo
Copy link
Contributor Author

gaberoo commented May 22, 2019

OK. I'll have to get back to this though. The auxprogs are a mess, and correcting the boost dependencies will require some detective work.

@gaberoo
Copy link
Contributor Author

gaberoo commented May 23, 2019

PR on homebrew-core: Homebrew/homebrew-core#40220

@sjackman
Copy link
Member

Can this PR be merged in the mean time, while we wait for the fix to augustus?

@gaberoo gaberoo closed this in ffcafe0 May 23, 2019
@sjackman
Copy link
Member

Thank you, Gabriel!

@gaberoo gaberoo deleted the busco_config_ini branch June 7, 2019 17:52
tseemann pushed a commit to tseemann/homebrew-bio that referenced this pull request Jun 11, 2019
Closes brewsci#642.

Signed-off-by: Gabriel Leventhal <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants