Skip to content
Commits on Source (7)
To help us debugging your issue, please make sure you
:exclamation: Make to check out our [User Guide](https://github.com/soedinglab/hh-suite/wiki).
- [ ] included the HHsuite version or commit ID
- [ ] added information about your operating system and compiler (if building from source)
- [ ] checked the [user-guide](https://github.com/soedinglab/hh-suite/blob/master/hhsuite-userguide.pdf) for available documentation
- [ ] ideally also included a minimal example for us to reproduce the issue
## Expected Behavior
## Current Behavior
## Steps to Reproduce (for bugs)
Please make sure to execute the reproduction steps.
## HH-suite Output (for bugs)
Please make sure to post the complete output of the tool you called. Please use [gist.github.com](https://gist.github.com).
## Context
Providing context helps us come up with a solution and improve our documentation for the future.
## Your Environment
Include as many relevant details about the environment you experienced the issue in.
* Version/Git commit used:
* Server specifications (especially CPU support for AVX2/SSE and amount of system memory):
* Operating system and version:
[submodule "lib/ffindex"]
path = lib/ffindex
url = https://github.com/soedinglab/ffindex_soedinglab.git
# Ubuntu 14.04 Trusty support
sudo: required
dist: trusty
addons:
apt:
packages:
- cmake
before_install:
- git submodule update --init --recursive
language: minimal
script:
- mkdir build
- cd build
- cmake .. && make
- CTEST_OUTPUT_ON_FAILURE=TRUE make test
- cmake $CMAKE_EXTRA .. && make -j $(nproc --all || sysctl -n hw.ncpu)
- |
if [[ "$CMAKE_EXTRA" != "" ]]; then \
make install; \
export PATH="$(pwd)/bin:$(pwd)/scripts:$PATH"; \
(cd ../data && ./test.sh); \
fi
before_install:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew link gcc@8 --force; fi
- export CC
- export CXX
matrix:
include:
- compiler: gcc
- os: linux
dist: trusty
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.9
- cmake
- gcc-4.8
- g++-4.8
- mpi-default-dev
env: CXX=g++-4.9
- compiler: gcc
env: CC=gcc-4.8 CXX=g++-4.8
- os: linux
dist: trusty
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-5
- cmake
- g++-8
- mpi-default-dev
env: CXX=g++-5
- compiler: gcc
env: CC=gcc-8 CXX=g++-8
- os: linux
dist: trusty
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
- cmake
- g++-8
- mpi-default-bin
- mpi-default-dev
env: CXX=g++-6
- compiler: gcc
env: CC=gcc-8 CXX=g++-8 CMAKE_EXTRA="-DENABLE_SANITIZERS=1 -DCMAKE_BUILD_TYPE=ASan -DCMAKE_INSTALL_PREFIX=."
- os: linux
dist: trusty
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.6
packages:
- g++-7
- cmake
- clang-3.6
- mpi-default-dev
env: CXX=g++-7
- compiler: clang
env: CC=clang-3.6 CXX=clang++-3.6
- os: linux
dist: trusty
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.6
- llvm-toolchain-trusty-7
packages:
- clang-3.6
- clang-7
- libc++-7-dev
- libc++abi-7-dev
- mpi-default-dev
env: CXX=clang++-3.6
- compiler: clang
env: CC=clang-7 CXX=clang++-7
- os: linux
dist: trusty
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.7
packages:
- clang-3.7
- mpi-default-dev
env: CXX=clang++-3.7
- compiler: clang
- cmake
- gcc-4.8
- g++-4.8
env: CC=gcc-4.8 CXX=g++-4.8
- os: linux
dist: trusty
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.8
packages:
- clang-3.8
- mpi-default-dev
env: CXX=clang++-3.8
- compiler: clang
- cmake
- g++-8
env: CC=gcc-8 CXX=g++-8
- os: linux
dist: trusty
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-3.9
- llvm-toolchain-precise-3.6
packages:
- clang-3.9
- mpi-default-dev
env: CXX=clang++-3.9
- compiler: clang
- cmake
- clang-3.6
env: CC=clang-3.6 CXX=clang++-3.6
- os: linux
dist: trusty
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-4.0
- llvm-toolchain-trusty-7
packages:
- clang-4.0
- mpi-default-dev
env: CXX=clang++-4.0
- clang-7
- libc++-7-dev
- libc++abi-7-dev
env: CC=clang-7 CXX=clang++-7
- os: osx
osx_image: xcode10.1
addons:
homebrew:
packages:
- cmake
- gcc@8
env: CC=gcc-8 CXX=g++-8
This diff is collapsed.
cmake_minimum_required(VERSION 2.8.12)
project(hhsuite CXX)
SET(HAVE_SSSE3 0 CACHE BOOL "Have SSSE3")
SET(HAVE_AVX2 0 CACHE BOOL "Have AVX2")
#set(CMAKE_BUILD_TYPE Release)
# find compiler
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
message("-- Compiler is clang(++)")
set(CMAKE_COMPILER_IS_CLANG 1)
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
message("-- Compiler is GNU ")
set(CMAKE_COMPILER_IS_GNUCXX 1)
set(CMAKE_COMPILER_IS_GNUCCC 1)
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
message("-- Compiler is ICC ")
set(CMAKE_COMPILER_IS_ICC 1)
project(hhsuite C CXX)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
set(HAVE_SSE2 0 CACHE BOOL "Have SSE2")
set(HAVE_AVX2 0 CACHE BOOL "Have AVX2")
set(ENABLE_SANITIZERS 0 CACHE BOOL "Enable Sanitizers")
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif (NOT CMAKE_BUILD_TYPE)
if (${ENABLE_SANITIZERS})
include(FindUBSan)
include(FindASan)
include(FindMSan)
include(FindTSan)
endif ()
message("-- Processor is ${CMAKE_SYSTEM_PROCESSOR}")
if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*")
set(X86_64 1)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i686.*|i386.*|x86.*|amd64.*|AMD64.*")
set(X86 1)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm.*|ARM.*)")
set(ARM 1)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)")
set(AARCH64 1)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "PPC64*|ppc64*|powerpc64*")
set(PPC64 1)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "PPC*|ppc*|powerpc*")
set(PPC 1)
endif()
set(HHSUITE_VERSION_MAJOR 3)
set (HHSUITE_VERSION_MINOR 0)
set(HHSUITE_VERSION_MINOR 1)
set(HHSUITE_VERSION_PATCH 0)
set (HHSUITE_DATE "15-03-2015")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
INSTALL(FILES
hhsuite-userguide.pdf
LICENSE
README
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
DESTINATION ./
)
include_directories(${CMAKE_BINARY_DIR}/generated)
include_directories(${PROJECT_BINARY_DIR}/generated)
include_directories(src)
include_directories(lib/ffindex/src)
add_subdirectory(lib/ffindex)
add_subdirectory(src)
add_subdirectory(data)
add_subdirectory(src)
add_subdirectory(scripts)
add_subdirectory(test)
#add_subdirectory(doc)
SET (CPACK_GENERATOR "DEB;TGZ;ZIP;RPM")
SET (CPACK_DEBIAN_PACKAGE_MAINTAINER "Markus Meier")
set(CPACK_GENERATOR "DEB;TGZ;ZIP;RPM")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Markus Meier")
set(CPACK_SOURCE_IGNORE_FILES
".synctex.gz$"
".toc$"
".blg$"
".bbl$"
".aux$"
".log$"
".dvi$"
".out.ps$"
"/rpm/"
"^${PROJECT_SOURCE_DIR}/build/"
"^${PROJECT_SOURCE_DIR}/.git/"
"^${PROJECT_SOURCE_DIR}/.gitignore"
"^${PROJECT_SOURCE_DIR}/.gitattributes"
"^${PROJECT_SOURCE_DIR}/.gitmodules"
"^${PROJECT_SOURCE_DIR}/.pydevproject"
"^${PROJECT_SOURCE_DIR}/.project"
"^${PROJECT_SOURCE_DIR}/.cproject"
"^${PROJECT_SOURCE_DIR}/lib/ffindex/.git"
"^${PROJECT_SOURCE_DIR}/lib/ffindex/.git"
"^${PROJECT_SOURCE_DIR}/.autotools"
"^${PROJECT_SOURCE_DIR}/README.md"
)
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
set(CPACK_PACKAGE_VERSION_MAJOR "${HHSUITE_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${HHSUITE_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${HHSUITE_VERSION_PATCH}")
INCLUDE(CPack)
enable_testing()
include(CPack)
FROM alpine:latest as builder
RUN apk add --no-cache gcc g++ cmake musl-dev vim ninja
WORKDIR /opt/hh-suite
ADD . .
WORKDIR /opt/hh-suite/build
RUN cmake -G Ninja -DHAVE_SSE2=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/hh-suite ..
RUN ninja && ninja install
FROM alpine:latest
MAINTAINER Milot Mirdita <milot@mirdita.de>
RUN apk add --no-cache libstdc++ libgomp
COPY --from=builder /usr/local/hh-suite /usr/local/hh-suite
ENV HHLIB=/usr/local/hh-suite
ENV PATH="/usr/local/hh-suite/bin:/usr/local/hh-suite/scripts:${PATH}"
CMD ["hhblits"]
The hhsuite contains in file hhprefilter.C code adapted from Michael
Farrar (http://sites.google.com/site/farrarmichael/smith-waterman).
His code is marked in the file hhprefilter.C.
The copy right of his code is shown below:
Copyright 2006, by Michael Farrar. All rights reserved. The SWSSE2
program and documentation may not be sold or incorporated into a
commercial product, in whole or in part, without written consent of
Michael Farrar.
For further information regarding permission for use or reproduction,
please contact Michael Farrar at:
farrar.michael@gmail.com
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Reference:
Farrar M. Striped Smith-Waterman speeds database searches
six times over other SIMD implementations. Bioinformatics. 2007, 23:156-61.
Michael Farrar died unexpectedly in December 2010.
Many thanks posthumously for your great code!
Johannes
**********************************************************************
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
......@@ -668,8 +631,8 @@ to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
{one line to give the program's name and a brief idea of what it does.}
Copyright (C) {year} {name of author}
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -689,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
{project} Copyright (C) {year} {fullname}
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
......
*****************************************************************************
** HHsuite for sensitive sequence searching version 3.0.0 (15-03-2015) **
*****************************************************************************
(C) Johannes Soeding, Markus Meier, Martin Steinegger, Michael Remmert,
Andreas Hauser, Andreas Biegert 2015
This README only serves as a quick start guide.
For full documentation see the user guide in hhsuite-userguide.pdf
*****************************************************************************
1. Requirements
*****************************************************************************
To compile from source, you will need:
* a recent C/C++ compiler
* CMake 2.8.12 or later
* pdbx python library for example from https://github.com/soedinglab/pdbx
*****************************************************************************
2. Installation
*****************************************************************************
We recommend compiling HHsuite on the machine that should run the
computations so that it can be optimized for the appropriate CPU architecture.
2.1 Packages
Some distributions incorporate HHsuite on their own:
* Ubuntu/Debian/etc. [DPKGs](http://packages.debian.org/source/sid/hhsuite)
are provided by Laszlo Kajan.
* For Archlinux you can find a PKGBUILD on aur
(https://aur.archlinux.org/packages/hhsuite/)
2.2 Release tarballs
The release tarballs (http://wwwuser.gwdg.de/~compbiol/data/hhsuite/releases/)
should contain all required source files. Simply download and extract.
2.3 Cloning from GIT
If you want to compile the most recent version, simply clone the git
repository. Then, from the repository root, initialize the ffindex submodule:
git submodule init
git submodule update
2.3.1 Compilation
With the sourcecode ready, simply run cmake with the default settings and
libraries should be auto-detected:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -G "Unix Makefiles" \\
-DCMAKE_INSTALL_PREFIX=${INSTALL_BASE_DIR} ..
make
make install
2.3.2 Setting environment variables
In your shell set environment variable HHLIB to ${INSTALL_BASE_DIR},
e.g (for bash, zsh, ksh):
export HHLIB=${INSTALL_BASE_DIR}
HHsearch and HHblits look for the column state library file cs219.lib
and the context library file context_data.lib in ${HHLIB}/data/. The HHsuite
scripts also read HHLIB to locate the perl modules Align.pm and HHPaths.pm
in ${HHLIB]/scripts/.
Add the location of HHsuite binaries and scripts to your search PATH variable
export PATH=${PATH}:${INSTALL_BASE_DIR}/bin:${INSTALL_BASE_DIR}/scripts
2.3.3 Specify BLAST, PSIPRED, PDB, DSSP paths
Specify paths in ${INSTALL_BASE_DIR}/scripts/HHPaths.pm where they are read
by HHsuite's perl scripts.
*****************************************************************************
3. Download Databases
*****************************************************************************
Download current databases from our server
(http://wwwuser.gwdg.de/~compbiol/data/hhsuite/databases/hhsuite_dbs/)
To build up multiple sequences alignments using HHblits uniprot20 is sufficient.
*****************************************************************************
4. Usage
*****************************************************************************
For performing a single search iteration of HHblits, run HHblits with the
following command:
hhblits -i <input-file> -o <result-file> -n 1 -d <database-basename>
For generating an alignment of homologous sequences:
hhblits -i <input-file> -o <result-file> -oa3m <result-alignment> \\
-d <database-basename>
You can get a detailed list of options for HHblits by running HHblits with
the "-h" option.
*****************************************************************************
5. License
*****************************************************************************
The HHsearch/HHblits software package is distributed under Gnu Public Licence,
Version 3. This means that the HH-suite is free software: you can redistribute
it and/or modify it under the terms of the GNU General Public License as
published by the Free Software Foundation, either version 3 of the License,
or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
See the copy of the GNU General Public License in the LICENSE file.
If you do not have this file, see http://www.gnu.org/licenses/
*****************************************************************************
6. Notes
*****************************************************************************
For full documentation see the user guide in hhsuite-userguide.pdf
We are very grateful for bug reports!
Please contact us at soeding@mpibpc.mpg.de
*****************************************************************************
7. Acknowledgements
*****************************************************************************
The hhsuite contains in file hhprefilter.cpp code adapted from Michael
Farrar (http://sites.google.com/site/farrarmichael/smith-waterman).
His code is marked in the file hhprefilter.cpp. For the copy right of that
code, please see the LICENSE file that comes with HHsuite.
Reference: Farrar M. Striped Smith-Waterman speeds database searches six
times over other SIMD implementations. Bioinformatics. 2007, 23:156-61.
Many posthumous thanks to Michael Farrar for his great code!
# Beta-Test
# HH-suite3 for sensitive sequence searching
# HHsuite for sensitive sequence searching version 3.0.0 (15-03-2015)
(C) Johannes Soeding, Markus Meier, Martin Steinegger, Milot, Mirdita, Michael Remmert, Andreas Hauser, Andreas Biegert
(C) Johannes Soeding, Markus Meier, Martin Steinegger, Michael Remmert, Andreas Hauser, Andreas Biegert 2015
[ ![Codeship Status for soedinglab/hh-suite](https://codeship.com/projects/0936c290-2248-0133-bcb4-52bb0fef976f/status?branch=master)](https://codeship.com/projects/96085)
[ ![Build Status](https://travis-ci.org/soedinglab/hh-suite.svg?branch=master)](https://travis-ci.org/soedinglab/hh-suite)
[![Travis Build Status](https://travis-ci.org/soedinglab/hh-suite.svg?branch=master)](https://travis-ci.org/soedinglab/hh-suite)[![Codeship Status for soedinglab/hh-suite](https://codeship.com/projects/0936c290-2248-0133-bcb4-52bb0fef976f/status?branch=master)](https://codeship.com/projects/96085)
The HH-suite is an open-source software package for sensitive protein sequence searching based on the pairwise alignment of hidden Markov models (HMMs).
## WARNING ##
We had to rename our repository for ffindex, so it might be necessary to run the following commands to update the submodule in your clone:
git pull
git submodule deinit
git submodule init
## Requirements
To compile from source, you will need:
* a recent C/C++ compiler
* [CMake](http://cmake.org/) 2.8.12 or later
* install [pdbx python library](https://github.com/soedinglab/pdbx)
## Documentation
We provide an extensive [user guide](https://github.com/soedinglab/hh-suite/wiki) with many usage examples, frequently asked questions and guides to build your own databases.
## Installation
We recommend compiling HHsuite on the machine that should run the computations so that it can be optimized for the appropriate CPU architecture.
### Packages
Some distributions incorporate HHsuite on their own:
* Ubuntu/Debian/etc. [DPKGs](http://packages.debian.org/source/sid/hhsuite) are provided by Laszlo Kajan.
* For Archlinux you can find a [PKGBUILD on aur](https://aur.archlinux.org/packages/hhsuite/)
### Release tarballs
The [release tarballs](http://wwwuser.gwdg.de/~compbiol/data/hhsuite/releases/) should contain all required source files. Simply download and extract
### Cloning from GIT
If you want to compile the most recent version, simply clone the git repository. Then, from the repository root, initialize the ffindex submodule:
git submodule init
git submodule update
We recommend compiling HH-suite on the machine that should run the computations so that it can be optimized for the available CPU instruction sets.
### Compilation
With the sourcecode ready, simply run cmake with the default settings and libraries should be auto-detected:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=${INSTALL_BASE_DIR} ..
make
make install
### Setting paths
#### Setting environment variables
In your shell set environment variable HHLIB to ${INSTALL\_BASE\_DIR}, e.g (for bash, zsh, ksh):
export HHLIB=${INSTALL_BASE_DIR}
HHsearch and HHblits look for the column state library file cs219.lib
and the context library file context_data.lib in ${HHLIB}/data/. The HHsuite
scripts also read HHLIB to locate the perl modules Align.pm and HHPaths.pm
in ${HHLIB]/scripts/.
Add the location of HHsuite binaries and scripts to your search PATH variable
export PATH=${PATH}:${INSTALL_BASE_DIR}/bin:${INSTALL_BASE_DIR}/scripts
#### Specify BLAST, PSIPRED, PDB, DSSP paths
Specify paths in ${INSTALL\_BASE\_DIR}/scripts/HHPaths.pm where they are read by HHsuite's perl scripts.
To compile from source, you will need a recent C/C++ compiler (at least GCC 4.8 or Clang 3.6) and [CMake](http://cmake.org/) 2.8.12 or later.
To download the source code and compile the HH-suite execute the following commands:
```
git clone https://github.com/soedinglab/hh-suite.git
cd hh-suite && mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=. ..
make -j 4 && make install
export PATH="$(pwd)/bin:$(pwd)/scripts:$PATH"
```
### Download Databases
Download current databases from our [server](http://wwwuser.gwdg.de/~compbiol/data/hhsuite/databases/hhsuite_dbs/)
To build up multiple sequences alignments using HHblits uniprot20 is sufficient.
Download current databases from our [download server](http://wwwuser.gwdg.de/~compbiol/data/hhsuite/databases/hhsuite_dbs/).
To build up multiple sequences alignments using HHblits, the Uniclust30 database is sufficient.
## Usage
For performing a single search iteration of HHblits, run HHblits with the
following command:
For performing a single search iteration of HHblits, run HHblits with the following command:
```
hhblits -i <input-file> -o <result-file> -n 1 -d <database-basename>
```
For generating an alignment of homologous sequences:
```
hhblits -i <input-file> -o <result-file> -oa3m <result-alignment> -d <database-basename>
```
You can get a detailed list of options for HHblits by running HHblits with the "-h" option.
## License
A detailed list of options for HHblits is available by running HHblits with the `-h` parameter.
The HHsearch/HHblits software package is distributed under Gnu Public Licence, Version 3.
This means that the HH-suite is free software: you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software Foundation, either
version 3 of the License, or (at your option) any later version.
## Reference
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the GNU General Public License for more details.
See the copy of the GNU General Public License in the LICENSE file.
If you do not have this file, see http://www.gnu.org/licenses/
## Notes
For full documentation see the user guide in hhsuite-userguide.pdf
We are very grateful for bug reports!
Please contact us at soeding@mpibpc.mpg.de
Steinegger M, Meier M, Mirdita M, Vöhringer H, Haunsberger S J, and Söding J (2019)
HH-suite3 for fast remote homology detection and deep protein annotation, *bioRxiv*, 560029. [doi: 10.1101/560029](https://doi.org/10.1101/560029)
## Links
* [soeding lab](http://www.mpibpc.mpg.de/soeding)
* [databases and precompiled hh-suite versions](http://wwwuser.gwdg.de/~compbiol/data/hhsuite/)
## Acknowledgements
The hhsuite contains in file hhprefilter.cpp code adapted from Michael
Farrar (http://sites.google.com/site/farrarmichael/smith-waterman).
His code is marked in the file hhprefilter.cpp. For the copy right of that
code, please see the LICENSE file that comes with HHsuite.
Reference: Farrar M. Striped Smith-Waterman speeds database searches six
times over other SIMD implementations. Bioinformatics. 2007, 23:156-61.
Many posthumous thanks to Michael Farrar for his great code!
* [Soeding lab](http://www.mpibpc.mpg.de/soeding)
* [Databases for the HH-suite](http://wwwuser.gwdg.de/~compbiol/data/hhsuite/)
set(compile_resource__internal_dir ${CMAKE_CURRENT_LIST_DIR} CACHE INTERNAL "")
find_program(XXD_EXECUTABLE xxd)
if(NOT XXD_EXECUTABLE)
find_program(PERL_EXECUTABLE perl)
if(NOT PERL_EXECUTABLE)
message(FATAL_ERROR "Neither xxd nor perl found in PATH. xxd is usually contained in your distributions vim-common package!")
else()
message("-- xxd not found, using xxdi.pl instead")
set(XXD_EXECUTABLE "${compile_resource__internal_dir}/xxdi.pl")
set(XXD_PARAMS "")
endif()
else()
set(XXD_PARAMS -i)
endif()
find_program(SED_EXECUTABLE sed)
if(NOT SED_EXECUTABLE)
message(FATAL_ERROR "sed not found in path!")
endif()
function(compile_resource INPUT_FILE OUTPUT_FILE)
get_filename_component(INPUT_FILE_NAME ${PROJECT_SOURCE_DIR}/data/${INPUT_FILE} NAME)
set(OUTPUT_FILE ${PROJECT_BINARY_DIR}/generated/${INPUT_FILE_NAME}.h PARENT_SCOPE)
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/generated/${INPUT_FILE_NAME}.h
COMMAND mkdir -p ${PROJECT_BINARY_DIR}/generated
COMMAND ${XXD_EXECUTABLE} ${XXD_PARAMS} ${INPUT_FILE} > ${PROJECT_BINARY_DIR}/generated/${INPUT_FILE_NAME}.h
COMMAND ${SED_EXECUTABLE} 's!unsigned char!static const unsigned char!' < ${PROJECT_BINARY_DIR}/generated/${INPUT_FILE_NAME}.h > ${PROJECT_BINARY_DIR}/generated/${INPUT_FILE_NAME}.h.tmp
COMMAND mv -f ${PROJECT_BINARY_DIR}/generated/${INPUT_FILE_NAME}.h.tmp ${PROJECT_BINARY_DIR}/generated/${INPUT_FILE_NAME}.h
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/data/
DEPENDS ${PROJECT_SOURCE_DIR}/data/${INPUT_FILE})
set_source_files_properties(${PROJECT_BINARY_DIR}/generated/${INPUT_FILE_NAME}.h PROPERTIES GENERATED TRUE)
endfunction()
#!/usr/bin/env perl
#
# xxdi.pl - perl implementation of 'xxd -i' mode
#
# Copyright 2013 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
# Copyright 2013 Linux Foundation
#
# Released under the GPLv2.
#
# Implements the "basic" functionality of 'xxd -i' in perl to keep build
# systems from having to build/install/rely on vim-core, which not all
# distros want to do. But everyone has perl, so use it instead.
#
use strict;
use warnings;
sub slurp {
my $file = shift;
open my $fh, '<', $file or die;
local $/ = undef;
my $cont = <$fh>;
close $fh;
return $cont;
}
my $indata = slurp(@ARGV ? $ARGV[0] : \*STDIN);
my $len_data = length($indata);
my $num_digits_per_line = 12;
my $var_name;
my $outdata;
# Use the variable name of the file we read from, converting '/' and '.
# to '_', or, if this is stdin, just use "stdin" as the name.
if (@ARGV) {
$var_name = $ARGV[0];
$var_name =~ s/\//_/g;
$var_name =~ s/\./_/g;
} else {
$var_name = "stdin";
}
$outdata .= "unsigned char $var_name\[] = {";
# trailing ',' is acceptable, so instead of duplicating the logic for
# just the last character, live with the extra ','.
for (my $key= 0; $key < $len_data; $key++) {
if ($key % $num_digits_per_line == 0) {
$outdata .= "\n\t";
}
$outdata .= sprintf("0x%.2x, ", ord(substr($indata, $key, 1)));
}
$outdata .= "\n};\nunsigned int $var_name\_len = $len_data;\n";
binmode STDOUT;
print {*STDOUT} $outdata;
INSTALL(FILES
context_data.crf
context_data.lib
......@@ -11,3 +9,18 @@ INSTALL(FILES
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
DESTINATION data
)
include(ResourceCompiler)
set(COMPILED_RESOURCES
context_data.crf
context_data.lib
cs219.lib
)
set(GENERATED_OUTPUT_HEADERS "")
FOREACH(INPUT_FILE ${COMPILED_RESOURCES})
compile_resource(${INPUT_FILE} OUTPUT_FILE)
list(APPEND GENERATED_OUTPUT_HEADERS "${OUTPUT_FILE}")
ENDFOREACH()
add_custom_target(generated ALL DEPENDS ${GENERATED_OUTPUT_HEADERS})
#!/bin/bash -e
rm -f single* search_* blits_*
hhalign -i query.a3m -t query.a3m
ffindex_build -s single.ffdata single.ffindex query.a3m
mpirun -np 2 \
ffindex_apply_mpi single.ffdata single.ffindex -d single_a3m_cons.ffdata -i single_a3m_cons.ffindex \
-- hhconsensus -i stdin -oa3m stdout -M a3m -v 0
mpirun -np 2 \
ffindex_apply_mpi single_a3m_cons.ffdata single_a3m_cons.ffindex -d single_a3m.ffdata -i single_a3m.ffindex \
-- hhfilter -i stdin -o stdout -diff 1000 -v 0
mpirun -np 2 \
ffindex_apply_mpi single_a3m.ffdata single_a3m.ffindex -d single_hhm.ffdata -i single_hhm.ffindex \
-- hhmake -i stdin -o stdout -v 0
mpirun -np 2 cstranslate_mpi -i single -o single_cs219 -b -x 0.3 -c 4 -I a3m
hhblits -i query.a3m -d single -blasttab blits_app_res -n 1
hhblits_omp -i single -d single -blasttab blits_omp_res -n 1
mpirun -np 2 hhblits_mpi -i single -d single -blasttab blits_mpi_res -n 1
diff <(tr -d '\000' < blits_omp_res.ffdata) blits_app_res
diff <(tr -d '\000' < blits_mpi_res.ffdata) blits_app_res
hhsearch -i query.a3m -d single -blasttab search_app_res
hhsearch_omp -i single -d single -blasttab search_omp_res
mpirun -np 2 hhsearch_mpi -i single -d single -blasttab search_mpi_res
diff <(tr -d '\000' < search_omp_res.ffdata) search_app_res
diff <(tr -d '\000' < search_mpi_res.ffdata) search_app_res
diff <(cut -f 1-10,12 blits_app_res) <(cut -f 1-10,12 search_app_res)
hhsuite (3.1.0-1) UNRELEASED; urgency=medium
* New upstream release.
-- Michael R. Crusoe <michael.crusoe@gmail.com> Thu, 28 Feb 2019 08:16:48 -0600
hhsuite (3.0~beta3+dfsg-3) unstable; urgency=high
* Team upload
......
......@@ -44,20 +44,6 @@ Description: sensitive protein sequence searching based on HMM-HMM alignment
HHblits is faster, up to twice as sensitive and produces more accurate
alignments.
Package: hhsuite-doc
Architecture: all
Section: doc
Depends: ${shlibs:Depends},
${misc:Depends}
Recommends: hhsuite
Breaks: hhsuite (<= 2.0.16-1)
Replaces: hhsuite (<= 2.0.16-1)
Description: documentation for HHsuite for HMM-HMM comparisons
HH-suite is an open-source software package for sensitive protein sequence
searching based on the pairwise alignment of hidden Markov models (HMMs).
.
This package provides a PDF with the user guide for HH-suite.
Package: hhsuite-data
Architecture: all
Depends: ${misc:Depends}
......
......@@ -3,7 +3,6 @@ Upstream-Name: hhsuite
Upstream-Contact: Andreas Hauser <hauser@genzentrum.lmu.de>
Johannes Soeding <soeding@genzentrum.lmu.de>
Source: ftp://toolkit.lmb.uni-muenchen.de/HH-suite/releases/hhsuite-([0-9.]+)\.tar\.gz
Files-Excluded: hhsuite-userguide.pdf
Files: *
Copyright: 2006, 2012 Johannes Soeding
......
Document: hhsuite
Title: HH-suite User Guide
Author: Johannes Söding, Michael Remmert, Andreas Hauser
Abstract: HH-suite for sensitive sequence searching based on HMM-HMM alignment.
Section: Science/Biology
Format: PDF
Files: /usr/share/doc/hhsuite/hhsuite-userguide.pdf.gz
mybuild/doc/hhsuite-userguide.pdf