volkamerlab / opencadd

A Python library for structural cheminformatics
https://opencadd.readthedocs.io
MIT License
91 stars 18 forks source link

Biopython update #157

Open pipaj97 opened 1 year ago

pipaj97 commented 1 year ago

Description

In the latest version of biopython, some functionalities do not work anymore in OpenCADD. This PR fixes this problem.

Todos

Notable points that this PR has either accomplished or will accomplish.

Status

AndreaVolkamer commented 8 months ago

@pipaj97 can you have a look at these comments please?

AndreaVolkamer commented 8 months ago

@dominiquesydow can you please have a look in the CI failures realted to the kliffs package:

 =========================== short test summary info ============================
  FAILED opencadd/tests/databases/test_klifs_local_remote.py::TestsAllQueries::test_all_interactions - bravado.exception.HTTPURITooLong: 414 Request-URI Too Long: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
  <html><head>
  <title>414 Request-URI Too Long</title>
  </head><body>
  <h1>Request-URI Too Long</h1>
  <p>The requested URL's length exceeds the capacity
  limit for this server.<br />
  </p>
  <hr>
  <address>Apache/2.4.38 (Debian) Server at klifs.net Port 443</address>
  </body></html>
  FAILED opencadd/tests/databases/test_klifs_local_remote.py::TestsAllQueries::test_all_conformations - bravado.exception.HTTPURITooLong: 414 Request-URI Too Long: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
  <html><head>
  <title>414 Request-URI Too Long</title>
  </head><body>
  <h1>Request-URI Too Long</h1>
  <p>The requested URL's length exceeds the capacity
  limit for this server.<br />
  </p>
  <hr>
  <address>Apache/2.4.38 (Debian) Server at klifs.net Port 443</address>
  </body></html>
dominiquesydow commented 7 months ago

Hi @AndreaVolkamer,

I fixed the following two items:

1. A future deprecation warning for pandas, e.g. here:

/Users/dominique/Documents/GitHub/opencadd/opencadd/databases/klifs/core.py:147: FutureWarning: A value is trying to be set on a copy of a DataFrame or Series through chained assignment using an inplace method.
  The behavior will change in pandas 3.0. This inplace method will never work because the intermediate object on which we are setting values always behaves as a copy.

  For example, when doing 'df[col].method(value, inplace=True)', try using 'df.method({col: value}, inplace=True)' or df[col] = df[col].method(value) instead, to perform the operation inplace on the original object.

    dataframe["ligand_allosteric.expo_id"].replace(0, "-", inplace=True)

We are doing now instead:

dataframe["ligand_allosteric.expo_id"] = dataframe["ligand_allosteric.expo_id"].replace(0, "-")

2. Two instances of HTTPURITooLong errors when querying KLIFS.

In these two cases we are pulling all interactions and all conformations - part of that query is that we pull all structure IDs from KLIFS, to then build a URL with all of them to retrieve interactions and conformations. This URL is naturally too long (I guess they rightfully added a limit). I am now chunking over the list of structure IDs instead.

codecov-commenter commented 7 months ago

Codecov Report

Merging #157 (cb3a39f) into master (c76e87c) will increase coverage by 0.10%. The diff coverage is 91.42%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
dominiquesydow commented 7 months ago

@AndreaVolkamer I did not touch any KLIFS-unrelated issues.

dominiquesydow commented 7 months ago

@AndreaVolkamer ok could not resist & applied black to the full package --- can someone look into Python 3.12, which seems to fail with conda.