GithubHelp home page GithubHelp logo

lbc-lnbio / pykvfinder Goto Github PK

View Code? Open in Web Editor NEW
19.0 4.0 9.0 159.93 MB

pyKVFinder: Python-C parallel KVFinder

Home Page: https://lbc-lnbio.github.io/pyKVFinder/

License: GNU General Public License v3.0

Python 66.63% C 32.62% SWIG 0.75%
cavity-detection cavity-characterization python-package numpy-arrays scripting

pykvfinder's People

Contributors

dependabot[bot] avatar flbulgarelli avatar jvsguerra avatar wapablos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pykvfinder's Issues

Volume vs. Time plot for a particular pocket

How to plot the volume/area of a particular cryptic pocket(s) with respect to time? Can we see the changing pocket volume interactively on Jupyter notebook (using nglview)? Thanks.

Segmentation error when running the workflow

Hello!
I am trying to integrate the package in a pipeline, and when running multiple times with the same file, same commands many times, sometimes I get segmentation error, while sometimes I get results:
Screenshot from 2022-12-06 16-31-43

This is the code to reproduce the error:
import pyKVFinder pyKVFinder.run_workflow('./tests/resources/1H6J_B.pdb', include_depth=True, include_hydropathy=True, hydrophobicity_scale='EisenbergWeiss').residues

And this is the error I get:
File "/home/ana/.anaconda3/envs/cavidb/lib/python3.8/site-packages/pyKVFinder/grid.py", line 1556 in constitutional

I am currently working in Ubuntu 22.04 but also occurs when using Ubuntu 20. Same bug when I am inside a conda envvironment, and also outside it.

I attach the pdb file used.
Thanks
1H6J_B.zip

box.toml file generation

How to get a box.toml file for a particular protein of interest surrounding the whole protein?

Question: Performing a Localized Search

Hello! I've found pyKVFinder to be an excellent tool for my work. Thanks for continuing to maintain it.
Is it possible to run it on only a subset of residues? Say if I want to detect any pockets formed by say residues 1,23,45,80.
I know the process returns the set of residues comprising each pocket, but I was wondering if there was a way to specify this beforehand. Thanks!

[MNT] Implement Pylint in CI Workflow for Enhanced Code Quality

Enhance the code quality of your project by integrating Pylint into your Continuous Integration (CI) pipeline. Pylint is a powerful static code analyzer for Python that can identify and report code issues, ensuring a higher standard of code cleanliness and maintainability.

Steps to implement:

  • Create a Pylint Configuration File: Start by creating a Pylint configuration file (pylintrc), specifying your preferred coding standards and configurations. This file will help customize Pylint's behavior according to your project's needs.
  • Update GitHub Actions Workflow: Utilize the GitHub Actions Starter Workflow for Pylint as a reference to create a Pylint CI workflow file (commonly named .github/workflows/pylint.yml).
  • Review Pylint Reports: After Pylint runs, make sure to capture and display the results in the CI workflow. You can use actions or scripts to generate and publish a Pylint report, making it easily accessible for developers.

Benefits:

  • Identify and address code quality issues early in the development process.
  • Maintain a consistent coding standard across your project.
  • Improve overall code maintainability and readability.

Supramolecular cage analysis notebook

Release notes

Include an example of a host-guest analysis for supramolecular chemists.

Intended users

Supramolecular chemists that wish to use pyKVFinder to detect and characterize cavities and/or calculate a van der Waals volume of molecules.

[ENH] Support reading mmCIF files in pyKVFinder

Problem to solve

PDB entries with extended Chemical Component Dictionary (CCD) or PDB IDs will be distributed in PDBx/mmCIF format only, as announced by the wwPDB in collaboration with the PDBx/mmCIF Working Group. PDB entries containing these extended IDs will not be supported by the legacy PDB file format. (see previous announcement)

Reference: https://www.rcsb.org/news/feature/63ff72ccc031758bf1c30ff7

Proposal

To ensure that pyKVFinder can continue to support PDB entries with extended CCD or PDB IDs, we propose adding support for reading mmCIF files in pyKVFinder. Specifically, we propose adding a new function that can read mmCIF files in the same format as the existing read_pdb and read_xyz functions.

By adding support for reading mmCIF files in pyKVFinder, we can ensure that users can continue to use pyKVFinder to analyze PDB entries with extended CCD or PDB IDs, without the need for manual conversion or preprocessing of the data.

Further details

The proposed function for reading mmCIF files will need to be developed in accordance with the PDBx/mmCIF format specifications. We will also need to update the documentation to reflect the new functionality.

[Bug]: help me understand use of pyKVFinder

Bug summary

In pyKVFinder/pyKVFinder/main.py I have as an example of how to run it:

>>> import os
>>> import pyKVFinder
>>> pdb = os.path.join(os.path.dirname(pyKVFinder.__file__), 'data', 'tests', '1FMO.pdb')
>>> results = pyKVFinder.run_workflow(pdb)
>>> results..... (result.export() , results.results.cavities etc etc )

and this works fine with me; but then I have multiple instances of :

>>> from pyKVFinder import pyKVFinder
>>> import os
>>> pdb = os.path.join(os.path.dirname(pyKVFinder.__file__), 'data', 'tests', '1FMO.pdb')
>>> results = pyKVFinder(pdb)
>>> results.export()

and this fails to me with : ImportError: cannot import name 'pyKVFinder' from 'pyKVFinder'

what am I doing wrong ?

Code for reproduction

>>> from pyKVFinder import pyKVFinder
>>> import os
>>> pdb = os.path.join(os.path.dirname(pyKVFinder.__file__), 'data', 'tests', '1FMO.pdb')
>>> results = pyKVFinder(pdb)
>>> results.export()

Actual outcome

ImportError: cannot import name 'pyKVFinder' from 'pyKVFinder'

Expected outcome

run flawless like with:

>>> import os
 >>> import pyKVFinder
 >>> pdb = os.path.join(os.path.dirname(pyKVFinder.__file__), 'data', 'tests', '1FMO.pdb')
 >>> results = pyKVFinder.run_workflow(pdb)
 >>> results

Additional information

No response

Operating system

No response

Python version

No response

pyKVFinder Version

0.6.1

Numpy Version

No response

Jupyter version

No response

Installation

pip

Integrate depth and hydropathy into one file for pyKVFinder

Problem to solve

Currently, pyKVFinder (v0.5.5) saves depth and hydropathy information into separate files to display characterizations. This approach can be inconvenient and inefficient for users who need to work with both datasets simultaneously.

Proposal

We propose integrating the depth and hydropathy information into a single PDB file, where depth is represented as B-factor (temperature factor) and hydropathy as Q-factor (occupancy). This will make it easier for users to work with both sets of data simultaneously.

Further details

If this enhancement is implemented, we will need to update the documentation accordingly. Specifically, we will need to update the tutorial and API reference to reflect the changes in the new file format.

[MNT] Add Windows build support

Adding Windows build for pyKVFinder using cibuildwheel and GitHub Actions

We are working on improving the compatibility and distribution of the pyKVFinder project. To achieve this, we're planning to introduce a Windows build. This will be made possible by utilizing the powerful combination of cibuildwheel and GitHub Actions.

For more information about cibuildwheel and its capabilities, please refer to the official cibuildwheel GitHub repository.

Cannot install pyKVFinder from PyPi...

Hi

I'm trying to install with pip on MacOS HIgh Sierra (old hardware, this is the newest OS I can install) as per the instructions on https://pypi.org/project/pyKVFinder/

[MacPro:~/icl/test] harry% pip install pyKVFinder
ERROR: Could not find a version that satisfies the requirement pyKVFinder (from versions: none)
ERROR: No matching distribution found for pyKVFinder

and

[MacPro:~/icl/test] harry% python3 -m pip install pyKVFinder
ERROR: Could not find a version that satisfies the requirement pyKVFinder (from versions: none)
ERROR: No matching distribution found for pyKVFinder

[MacPro:/icl/test] harry% python3 --version
Python 3.9.13
[MacPro:
/icl/test] harry% python3 -m pip --version
pip 22.3.1 from /Applications/miniconda3/lib/python3.9/site-packages/pip (python 3.9)

[MacPro:~/icl/test] harry% swig -version

SWIG Version 4.1.1

Compiled with /Applications/Xcode_13.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ [Darwin]

Configured options: +pcre

Please see https://www.swig.org for reporting bugs and further information

My assumption is that
(a) I'm doing something wrong
(b) something is missing on my system or
(c) my OS is too old :-(

any help would be appreciated!

[MNT] Expand compatibility to Python 3.12 and 3.13

Ensure future-proof compatibility for your project by expanding its support to Python versions 3.12 and 3.13. This maintenance task involves updating and modifying the codebase to ensure smooth operation on the latest Python releases, embracing new features and optimizations.

  • Update Build Configuration: Modify the build configuration files (pyproject.toml) to incorporate changes necessary for compatibility with Python 3.12 and 3.13. Pay attention to any deprecations or new build system requirements introduced in these versions.
  • Dependencies Check: Verify that all build dependencies, including build tools and libraries, are compatible with Python 3.12 and 3.13. Update or replace any dependencies that pose compatibility challenges.
  • Continuous Integration (CI) Update: Update your CI workflow to include build tests specifically for Python 3.12 and 3.13. This ensures that future changes are continuously validated against these versions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.