PDB-REDO / dssp

Application to assign secondary structure to proteins
BSD 2-Clause "Simplified" License
166 stars 19 forks source link

No download info given for 'dssp' and its source directory #74

Closed lewisbb closed 9 months ago

lewisbb commented 9 months ago

Hello! My attempt of building dssp locally ended badly on the third step, explained in your "Building" instruction. Full log:

$ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/.local
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake:3091 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake:4208 (_ep_add_download_command)
  CMakeLists.txt:58 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

'/opt/homebrew/Cellar/cmake/3.26.3/bin/cmake' '-E' 'env' '/usr/bin/git' 'pull'
Already up to date.
CMake Error at /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake:3131 (message):
  No download info given for 'dssp' and its source directory:

   /Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/build/dssp

  is not an existing non-empty directory.  Please specify one of:

   * SOURCE_DIR with an existing non-empty directory
   * DOWNLOAD_COMMAND
   * URL
   * GIT_REPOSITORY
   * SVN_REPOSITORY
   * HG_REPOSITORY
   * CVS_REPOSITORY and CVS_MODULE
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake:4208 (_ep_add_download_command)
  CMakeLists.txt:99 (ExternalProject_Add)

-- Configuring incomplete, errors occurred!

After investigating the ./dssp/build/dssp directory, I noted it to be empty.

I need your help. Could you show me, what am I doing wrong, please? Thank you!

mhekkel commented 9 months ago

Curious error. Could you please try to move your code to a directory where there is no space in the path?

lewisbb commented 9 months ago

Curious error. Could you please try to move your code to a directory where there is no space in the path?

I've tried to do so, and nothing changed :( The error remained the same as explained in my previous comment, with different source directory path given.

mhekkel commented 9 months ago

Could you please remove the build directory and run the command again but now with --debug-output appended? And share the result here?

lewisbb commented 9 months ago

Done. The output was just as following (with commands provided):

$ rm -r build
$ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/.local --debug-output
Running with debug output on.
-- The CXX compiler identification is AppleClang 15.0.0.15000100
   Called from: [3] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/CMakeDetermineCompilerId.cmake
                [2] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake
                [1] /Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/CMakeLists.txt
-- Detecting CXX compiler ABI info
   Called from: [3] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/CMakeDetermineCompilerABI.cmake
                [2] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/CMakeTestCXXCompiler.cmake
                [1] /Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/CMakeLists.txt
-- Detecting CXX compiler ABI info - done
   Called from: [3] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/CMakeDetermineCompilerABI.cmake
                [2] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/CMakeTestCXXCompiler.cmake
                [1] /Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/CMakeLists.txt
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
   Called from: [2] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/CMakeTestCXXCompiler.cmake
                [1] /Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/CMakeLists.txt
-- Detecting CXX compile features
   Called from: [3] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/CMakeDetermineCompileFeatures.cmake
                [2] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/CMakeTestCXXCompiler.cmake
                [1] /Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/CMakeLists.txt
-- Detecting CXX compile features - done
   Called from: [3] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/CMakeDetermineCompileFeatures.cmake
                [2] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/CMakeTestCXXCompiler.cmake
                [1] /Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/CMakeLists.txt
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake:3091 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake:4208 (_ep_add_download_command)
  CMakeLists.txt:58 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

   Called from: [3] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake
                [2] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake
                [1] /Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/CMakeLists.txt
-- Found Git: /usr/bin/git (found version "2.39.3 (Apple Git-145)")
   Called from: [4] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/FindPackageMessage.cmake
                [3] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/FindPackageHandleStandardArgs.cmake
                [2] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/FindGit.cmake
                [1] /Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/CMakeLists.txt
'/opt/homebrew/Cellar/cmake/3.26.3/bin/cmake' '-E' 'env' '/usr/bin/git' 'clone' 'file:///Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/' '/Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/build/dssp' '-b' 'trunk'
Cloning into '/Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/build/dssp'...
fatal: Remote branch trunk not found in upstream origin
CMake Error at /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake:3131 (message):
  No download info given for 'dssp' and its source directory:

   /Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/build/dssp

  is not an existing non-empty directory.  Please specify one of:

   * SOURCE_DIR with an existing non-empty directory
   * DOWNLOAD_COMMAND
   * URL
   * GIT_REPOSITORY
   * SVN_REPOSITORY
   * HG_REPOSITORY
   * CVS_REPOSITORY and CVS_MODULE
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake:4208 (_ep_add_download_command)
  CMakeLists.txt:99 (ExternalProject_Add)

   Called from: [3] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake
                [2] /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake
                [1] /Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/CMakeLists.txt
-- Configuring incomplete, errors occurred!
mhekkel commented 9 months ago

OK, found it. And I must apologise, I made the classic error of typing in some instructions without testing them myself.

Apparently the git checkout step does not fetch all info required. You will have to run git fetch first before running cmake.

I'll update the readme for this.

Thanks for reporting this problem

lewisbb commented 9 months ago

Thank you very much!

lewisbb commented 9 months ago

I'm sorry, I've had a moment to check your solution just now. Adding git fetch command doesn't literally changed anything, the error keeps the same, as in my first message. Could you help me? My commands:

$ git clone https://github.com/PDB-REDO/dssp.git -b dssp-builder
Cloning into 'dssp'...
remote: Enumerating objects: 1398, done.
remote: Counting objects: 100% (143/143), done.
remote: Compressing objects: 100% (84/84), done.
remote: Total 1398 (delta 89), reused 100 (delta 59), pack-reused 1255
Receiving objects: 100% (1398/1398), 1.34 MiB | 1.12 MiB/s, done.
Resolving deltas: 100% (872/872), done.
$ cd dssp
$ git fetch
$ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/.local
-- The CXX compiler identification is AppleClang 15.0.0.15000100
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake:3091 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake:4208 (_ep_add_download_command)
  CMakeLists.txt:58 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found Git: /usr/bin/git (found version "2.39.3 (Apple Git-145)")
'/opt/homebrew/Cellar/cmake/3.26.3/bin/cmake' '-E' 'env' '/usr/bin/git' 'clone' 'file:///Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/' '/Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/build/dssp' '-b' 'trunk'
Cloning into '/Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/build/dssp'...
fatal: Remote branch trunk not found in upstream origin
CMake Error at /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake:3131 (message):
  No download info given for 'dssp' and its source directory:

   /Users/lewis/Documents/Информация/Мое/Учеба/Университет/Курсовая 4-й курс/server/dssp/build/dssp

  is not an existing non-empty directory.  Please specify one of:

   * SOURCE_DIR with an existing non-empty directory
   * DOWNLOAD_COMMAND
   * URL
   * GIT_REPOSITORY
   * SVN_REPOSITORY
   * HG_REPOSITORY
   * CVS_REPOSITORY and CVS_MODULE
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake:4208 (_ep_add_download_command)
  CMakeLists.txt:99 (ExternalProject_Add)

-- Configuring incomplete, errors occurred!

./dssp/build/dssp directory remains empty.

drlemmus commented 9 months ago

Did you try working in a directory without spaces and Cyrillic characters?

lewisbb commented 9 months ago

Sure. It ended likewise:

$ git clone https://github.com/PDB-REDO/dssp.git -b dssp-builder
Cloning into 'dssp'...
remote: Enumerating objects: 1398, done.
remote: Counting objects: 100% (143/143), done.
remote: Compressing objects: 100% (84/84), done.
remote: Total 1398 (delta 89), reused 100 (delta 59), pack-reused 1255
Receiving objects: 100% (1398/1398), 1.34 MiB | 509.00 KiB/s, done.
Resolving deltas: 100% (872/872), done.
$ cd dssp
$ git fetch
$ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/.local
-- The CXX compiler identification is AppleClang 15.0.0.15000100
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake:3091 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake:4208 (_ep_add_download_command)
  CMakeLists.txt:58 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found Git: /usr/bin/git (found version "2.39.3 (Apple Git-145)")
'/opt/homebrew/Cellar/cmake/3.26.3/bin/cmake' '-E' 'env' '/usr/bin/git' 'clone' 'file:///Users/lewis/Desktop/dssp/' '/Users/lewis/Desktop/dssp/build/dssp' '-b' 'trunk'
Cloning into '/Users/lewis/Desktop/dssp/build/dssp'...
fatal: Remote branch trunk not found in upstream origin
CMake Error at /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake:3131 (message):
  No download info given for 'dssp' and its source directory:

   /Users/lewis/Desktop/dssp/build/dssp

  is not an existing non-empty directory.  Please specify one of:

   * SOURCE_DIR with an existing non-empty directory
   * DOWNLOAD_COMMAND
   * URL
   * GIT_REPOSITORY
   * SVN_REPOSITORY
   * HG_REPOSITORY
   * CVS_REPOSITORY and CVS_MODULE
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.26.3/share/cmake/Modules/ExternalProject.cmake:4208 (_ep_add_download_command)
  CMakeLists.txt:99 (ExternalProject_Add)

-- Configuring incomplete, errors occurred!
mhekkel commented 9 months ago

That's strange, I tried it and it worked for me.

OK, then there is only one solution: replace

git fetch

with

git checkout trunk
git checkout dssp-builder
lewisbb commented 9 months ago

On a git checkout step it started to work fine. But a new error occurred on a cmake --build build step. See attached files. stderr.txt stdout.txt How can I handle it?

mhekkel commented 9 months ago

If you have an hour, I'll fix the make process. This is not going to work.

(problem is that the download of zlib failed since the file no longer exists at the remote site)

lewisbb commented 9 months ago

Thank you very much for your help. I'll be awaiting.

mhekkel commented 9 months ago

I'm very sorry, but I had to give up trying to get dssp-builder up and running again. It's too much work for now.

So you will have to fall back to installing the requirements first, i.e. you have to install zilb, libmcfp and libcifpp by hand first. See the updated readme.

lewisbb commented 9 months ago

Hello! Are there any progressions? I had no luck to install requirements for DSSP successfully. I need your algorithm implementation in my work :(

mhekkel commented 9 months ago

Like I commented last week, the dssp-builder trick no longer works. You will have to build and install the requirements manually as stated in the new README. Or you can download a pre built executable from the release page:

https://github.com/PDB-REDO/dssp/releases/tag/v4.4.0

lewisbb commented 9 months ago

Understood. Have you any, maybe, docker things with executable version of DSSP?

mhekkel commented 9 months ago

There is a tool called pdb-redo-builder that uses docker to create linux executables that can run on older Linux versions. You can find it here: https://github.com/PDB-REDO/pdb-redo-builder

The executable we have for download at the release page, is that really not working for you?

lewisbb commented 9 months ago

I'm using Mac with M1, and I don't really know how to use these executables :(

drlemmus commented 9 months ago

Could you reach out to us by email to explain for what you need DSSP and how often? Perhaps we can help you with a different DSSP solution that doesn't require local software.