Giter Club home page Giter Club logo

pyrod's Introduction

PyRod is a python software developed to generate dynamic molecular interaction fields (dMIFs) and pharmacophore features based on analyzing the protein environment of water molecules in molecular dynamcis simulations. Check the PyRod wiki for more information on installation and usage. The employed algorithms are described in the PyRod publication in JCIM.

Installation

Clone this repository

Open a new terminal and clone this repository

git clone https://github.com/schallerdavid/pyrod.git ~/pyrod

Install dependencies

PyRod is written in python 3.8 and uses MDAnalysis (>= 0.19.0, is shipped with NumPy and SciPy), NumPy and SciPy which can be easily installed using pip:

pip3 install --upgrade MDAnalysis

or

python3 -m pip install --upgrade MDAnalysis

You can also use conda to install all dependencies:

conda create -n pyrod -c conda-forge mdanalysis python=3.8

Create alias for your bash

echo 'alias pyrod="python3 ~/pyrod/pyrod.py"' >> ~/.bashrc

Run PyRod

Load conda environment (optional)

source activate pyrod

Feed config file to pyrod

pyrod /path/to/pyrod_config_file.cfg

Example

An example Jupyter Notebook for visualization of dMIFs using NGLView is provided in the example directory.

Citation

Please cite our paper in JCIM when using PyRod for your research.

License Information

PyRod is published under GNU General Public License v2.0. For more information read LICENSE.

pyrod's People

Contributors

schallerdavid avatar

Stargazers

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

Watchers

 avatar  avatar

pyrod's Issues

Why generated 0 features from 5ns protein's trajectory

Dear David,

I recently used pyrod to explore the pharmacophore of the protein. This protein has been made into a 5ns MD using amber16, then the trajectory has been converted into a .nc format trajectory using cpptraj with autoimage parameter. When I performed "pyrod trajectory_pharmacophore_combo.cfg" (using the default parameters), the log shows that 0 features are generated. Due to I am a long-time user of ligandscout. I opened a * .pml file with ligandscout and only displayed Exclusion Volumes balls. Would you help me to solve this problem, many thanks.

Kindest regards

Jiyuan

errot

FileNotFoundError: [Errno 2] No such file or directory: '/hdd1/software/pyrod/pyrod/centroid/frames_0.csv'

Traceback (most recent call last):
File "pyrod.py", line 240, in
ensemble_to_centroid(topology, trajectories, output_name, directory, debugging)
File "/hdd1/software/pyrod/pyrod_lib/trajectory.py", line 578, in ensemble_to_centroid
with open('{}/frames_{}.csv'.format(output_directory, x), 'r') as csv:
FileNotFoundError: [Errno 2] No such file or directory: '/hdd1/software/pyrod/pyrod/centroid/frames_0.csv'

Generating 0 exclusion volumes and features for a 10ns protein

traj_Rv0827c.txt
Hi David,

I have been trying to attain a super pharmacophore for a 10ns simulation run in TIP4Pew water model. After the trajectory analysis, the program is resulting in generation of 0 exclusion volumes and thus, 0 features. Can you please help me out in troubleshooting? Here i am attaching the config file for your perusal.
Please help us out in figuring out the mistake, where we are going wrong.

Thanks and regards
Praveena K

Issue encountered while running pyrod - Seeking guidance

Hi David,
I hope this message finds you well. Firstly, I would like to express my gratitude for developing the Pyrod on GitHub. I recently downloaded and attempted to reproduce the project, but encountered an issue that I need assistance with.I use gromacs for dynamics simulations to generate trajectories,
image

Problem Description:
While executing the project, I encountered the following error:
File "/home/ai/anaconda3/envs/pyrod/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap
self.run()
File "/home/ai/anaconda3/envs/pyrod/lib/python3.8/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "trajectory.py", line 68, in trajectory_analysis
hd_atomids, hd_types, hd_hydrogen_atomid_lists = hd_selection(main_atoms)
File "pyrod/pyrod_lib/trajectory_helper.py", line 85, in hd_selection
return np.array(atomids), np.array(types), np.array(hydrogen_atomid_lists)
ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (294,) + inhomogeneous part.
Processing results.
Traceback (most recent call last):
File "pyrod.py", line 130, in
dmif, partners = post_processing(results_list, total_number_of_frames)
File "grid.py", line 85, in post_processing
dmif = results[0][0]
IndexError: list index out of range
Expected assistance:
I would greatly appreciate any guidance or suggestions you can provide to help me overcome this problem. If there are specific changes I need to make in order to successfully execute the project, please let me know. Additionally, if there is any further information or logs that would be helpful for you in troubleshooting this issue, please advise.

Thank you for your time and support. Your expertise and guidance will be immensely valuable to me. Please feel free to reach out to me if you require any additional information or have any further questions.

Best regards,

Shift in the density maps

Hi,

I am inputting an AMBER trajectory into pyrod. The issue that I am facing is that the density maps shift a bit when I compare them to the water density that I calculated from the trajectory. I was wondering if you could tell me why this shift is happening and how I can fix it.

Thanks,
Sepehr

Issue encountered while running pyrod - Seeking guidance

Hi David,
I hope this message finds you well. Firstly, I would like to express my gratitude for developing the Pyrod on GitHub. I recently downloaded and attempted to reproduce the project, but encountered an issue that I need assistance with.I use gromacs for dynamics simulations to generate trajectories,
image

Problem Description:
While executing the project, I encountered the following error:
File "/home/ai/anaconda3/envs/pyrod/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap
self.run()
File "/home/ai/anaconda3/envs/pyrod/lib/python3.8/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "trajectory.py", line 68, in trajectory_analysis
hd_atomids, hd_types, hd_hydrogen_atomid_lists = hd_selection(main_atoms)
File "pyrod/pyrod_lib/trajectory_helper.py", line 85, in hd_selection
return np.array(atomids), np.array(types), np.array(hydrogen_atomid_lists)
ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (294,) + inhomogeneous part.
Processing results.
Traceback (most recent call last):
File "pyrod.py", line 130, in
dmif, partners = post_processing(results_list, total_number_of_frames)
File "grid.py", line 85, in post_processing
dmif = results[0][0]
IndexError: list index out of range
Expected assistance:
I would greatly appreciate any guidance or suggestions you can provide to help me overcome this problem. If there are specific changes I need to make in order to successfully execute the project, please let me know. Additionally, if there is any further information or logs that would be helpful for you in troubleshooting this issue, please advise.

Thank you for your time and support. Your expertise and guidance will be immensely valuable to me. Please feel free to reach out to me if you require any additional information or have any further questions.

Best regards,

Unable to perform ROC analysis with helper script

Hi David,

I have used Pyrod to successfully generate a super pharmacophore. Afterwards, I selected potentially important features and generated a combinatorial library, which consists of 404 pharmacophores. I then tried using the Python helper script (library_roc_analysis.py) to perform an ROC analysis of the pharmacophores. Unfortunately, the script is not able to perform the analysis in my case. I am running the script on a Windows 10 computer with Python 3.10 and LigandScout 4.4.3

While the program is running, it continuously outputs the same message (Analyzing pharmacophore 0 of 404.). However, it does not make any progress. Here is the entire output after I interrupted it manually (otherwise it would continue running indefinitely):

screening_problem

The only file that gets created is roc_statistics.txt (with no results):
roc_statistics.txt

I have also tried running it through the command line in Windows, but it is also stuck at the start (Analyzing pharmacophore 0 of 404.). This is the output when cancelling the process:

Analyzing pharmacophore 0 of 404.Traceback (most recent call last):
File "C:\Users\martinl\Dropbox\PC\Desktop\SRC KNASE\PYROD_real\lck_last100frames\PYROD_HELPERSCRIPT\library_roc_analysis_LS_local.py", line 173, in
subprocess.run('{0} -q {1}.pml -d {2}:active -o {1}.sdf -l {1}.log -C {3} -M {4}'.format(
File "C:\Users\martinl\AppData\Local\Programs\Python\Python311\Lib\subprocess.py", line 548, in run
with Popen(*popenargs, **kwargs) as process:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\martinl\AppData\Local\Programs\Python\Python311\Lib\subprocess.py", line 1026, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Users\martinl\AppData\Local\Programs\Python\Python311\Lib\subprocess.py", line 1538, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
KeyboardInterrupt

Here are the files I used, including the python script:
test_files.zip

I am otherwise able to load the files into Ligandscout and perform an ROC analysis individually on each pharmacophore with no problems. I suspect there might be an issue with program versions, but I have not been able to locate the problem. I would greatly appreciate any help.

Thank you and regards,
Martin

Other trajectory file formats that can be used in pyrod analysis

Hi!

I want to use pyrod for water pharmacopore modelling towards a multi-targeting drug design. In regards with this I have been running 10ns TIP4Ew simulation with amber14 force field for my targets. My question is will pyrod accept trajectory files generated in .pdb format from these simulation?
If not please. specify the file formats that are preferred for analysis through pyrod?

data shape error

Hello developers:
I am trying to use pyrod with trajectory_analysis.cfg file.

The trajectory_analysis.cfg file fellows:
[directory]
directory:

[trajectory analysis parameters]
center: 48, 40, 35
edge lengths: 35, 35, 35
topology: /data/shiyu/tmp_pyrod/protein_UNK_prod.gro
trajectories: /data/shiyu/tmp_pyrod/protein_UNK_prod.xtc
first frame: 100
last frame: 200
step size: 1
metal names:
map formats: cns, xplor, kont
number of processes: 1
dmifs only: false

The error information appears on my screen:
Starting trajectory analysis.
Initializing grid.
Analyzing 101 frames from 1 trajectory.
Process Process-2:
Traceback (most recent call last):
File "/soft/anaconda3/2022.05/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap
self.run()
File "/soft/anaconda3/2022.05/lib/python3.9/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/soft/AIDD/pyrod/pyrod_lib/trajectory.py", line 68, in trajectory_analysis
hd_atomids, hd_types, hd_hydrogen_atomid_lists = hd_selection(main_atoms)
File "/soft/AIDD/pyrod/pyrod_lib/trajectory_helper.py", line 85, in hd_selection
return np.array(atomids), np.array(types), np.array(hydrogen_atomid_lists)
ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (354,) + inhomogeneous part.
Processing results.
Traceback (most recent call last):
File "/soft/AIDD/pyrod/pyrod.py", line 130, in
dmif, partners = post_processing(results_list, total_number_of_frames)
File "/soft/AIDD/pyrod/pyrod_lib/grid.py", line 85, in post_processing

I don't know how to make it works.

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.