Skip to content

Incorporating DruGUI into ProDy#2171

Merged
AnthonyBogetti merged 60 commits intoprody:mainfrom
Cventura18:main
Feb 5, 2026
Merged

Incorporating DruGUI into ProDy#2171
AnthonyBogetti merged 60 commits intoprody:mainfrom
Cventura18:main

Conversation

@Cventura18
Copy link
Copy Markdown
Contributor

This is an update of DruGUI to DruGUI 2.0, which is compatible with Python 3 and ProDy. Unlike the previous which was made in TCL, DruGUI 2.0 is written fully in python. The user will have to provide their vmd executable, which will prepare the system for druggability simulations. There is a GUI version and a non-gui version as well. DruGUI 2.0 uses the most update CHARMM forcefields, allows for easier preparation of membrane proteins, and an updated set of probe molecules. (Membrane protein druggability simulations have only been done with POPC membranes)

from prody.drugui import DruGUI
DruGUI()

This will open the DruGUI 2.0 GUI which is similar to the current GUI of DruGUI. Preparation and analysis of druggability simulations can be performed here. Probe grid calculations and druggability assessment have been combined and is under the Analysis Result section. Future updates will include evaluating a hotspot with a known ligand of the protein. Using the GUI only allows for the preparation of seven unique probes. The non-GUI version allows for more probes to be selected for druggability simulations.

from prody.drugui import drugui_prepare

drugui_prepare(pdb="/Users/carlosventura/Desktop/druggability/testprotein/MDM2/1ycr_chainA_autopsf.pdb", psf="/Users/carlosventura/Desktop/druggability/testprotein/MDM2/1ycr_chainA_autopsf.psf", prefix = "dg",
outdir_location="/Users/carlosventura/Desktop/druggability/testprotein/MDM2",
vmd='/Applications/VMD1.9.4a57-arm64-Rev12.app/Contents/vmd/vmd_MACOSXARM64')

from prody.drugui import drugui_analysis

drugui_analysis(pdb='/Users/carlosventura/Desktop/druggability/testprotein/pthr_membrane/simulation_run1/newcgenff.pdb',
psf='/Users/carlosventura/Desktop/druggability/testprotein/pthr_membrane/simulation_run1/newcgenff.psf',
dcds='/Users/carlosventura/Desktop/druggability/testprotein/pthr_membrane/simulation_run1/final.dcd',
outdir_location='/Users/carlosventura/Desktop/druggability/testprotein/pthr_membrane/simulation_run1/al1',
probes=['IPAM', 'IPRO', 'ACTT', 'IBUT', 'ACAM', 'IMID', 'BENZ'])

This is how the non-gui version is called. {"IPRO": 16, "IMID": 14, "ACTT": 14, "ACAM": 14, "IPAM": 14, "IBTN": 14, "BENZ": 14} is the default probe composition that is currently used in the lab and is the default probes for drugui_prepare. The user can provide their own custom probe composition. For drugui_analysis, ['IPAM', 'IPRO', 'ACTT', 'IBUT', 'ACAM', 'IMID', 'BENZ'] are the default probes for the analysis. Other probes can be used based on the probe composition used for druggability simulations. The parameters for analyzing druggability simulations in drugui_analyze are similar to the parameters in the GUI version.

@AnthonyBogetti
Copy link
Copy Markdown
Member

Thanks, @Cventura18, this looks like a huge undertaking! Can you please provide us with a minimal workflow or jupyter notebook that we can use to test the code on our end? Also, we may want to write some unit tests for this, since it is a pretty complex module. Let me think about that though.

@AnthonyBogetti AnthonyBogetti self-requested a review August 21, 2025 17:08
@AnthonyBogetti
Copy link
Copy Markdown
Member

Also, we will want to remove the .DS_Store files and add that to the gitignore.

@AnthonyBogetti
Copy link
Copy Markdown
Member

Create or open the .gitignore file in the root of your repository and add the following line:
.DS_Store

If .DS_Store files were already committed, they need to be removed from Git's tracking index. Use the git rm --cached command:
git rm --cached .DS_Store

If .DS_Store files exist in multiple directories, you might need to run this command for each instance or use a find command to automate the removal. For example:
find . -name ".DS_Store" -print0 | xargs -0 git rm --cached --ignore-unmatch

After removing the files from the index, commit these changes to the repository:
git commit -m "Remove .DS_Store files"

I just found the above on Google but that should work.

@Cventura18
Copy link
Copy Markdown
Contributor Author

@AnthonyBogetti will do!

Thanks, @Cventura18, this looks like a huge undertaking! Can you please provide us with a minimal workflow or jupyter notebook that we can use to test the code on our end? Also, we may want to write some unit tests for this, since it is a pretty complex module. Let me think about that though.

@AnthonyBogetti
Copy link
Copy Markdown
Member

Hi @Cventura18, I have been testing, and so far the GUI part seems to be working. One favor though, can you make a warning message if the user leaves the Output folder blank?

Also, I would be interested in having the CHARMM force field files removed. Particularly this one: [top_all36_cgenff.rtf], but the rest as well, mostly for copyright considerations and also because they add altogether 300,000+ lines of code to ProDy. Can you think of anyway to avoid that? maybe we could still have a simple user installation step involving these files before running DruGUI() and the user could get these from prody.org or something. What do you think? Other than that, I just need to test the non-gui one but I think it should be working so this may be close.

@Cventura18
Copy link
Copy Markdown
Contributor Author

Hi @AnthonyBogetti I can include that warning message and remove the CHARMM force field files. I think an installation step is a good idea. Do you know where in particular the lines of code are being added? That would help me come up with an idea how to make the installation step.

@AnthonyBogetti
Copy link
Copy Markdown
Member

Hi @Cventura18, this file in particular, which is included twice is 50k lines per file: prody/drugui/DruGUI-script/druggability/top_all36_cgenff.rtf

Also, any other file with cgenff I worry about the copyright issue... do you know which ones are OK to include and which to not? I think the probe molecule prms might be OK, but any database kind of file (like the rtf one above) we probably should have the user obtain that separately.

@AnthonyBogetti
Copy link
Copy Markdown
Member

Unfortunately, I am not as familiar with how CHARMM/NAMD does things, but you will know better which files will be necessary and which ones the user can download separately during the installation.

@Cventura18
Copy link
Copy Markdown
Contributor Author

Hi @AnthonyBogetti,

I was able to successfully modify the code. In the GUI version there is now a section where the user must provide both the cgenff rtf file and prm. The only parameters provided is the probe.prm. The users should add the files par_all36_cgenff.prm, par_all27_prot_lipid_na.inp, par_all36_lipid.prm, par_all36_prot.prm, par_all36_carb.prm, par_all36_na.prm, and toppar_water_ions.str in the additional parameters section to run druggability simulations. In the no-GUI version, cgenff_rtf and cgenff_prm are now required variables in order to use drugui_prepare. The user states the location of both the cgenff rtf and prm files to generate the probes and should provide the previous mention CHARMM files in the additional parameter list to run druggability simulations successfully. The cgenff rtf and prm files I have used are top_all36_cgenff.rtf and par_all36_cgenff.prm

@AnthonyBogetti AnthonyBogetti merged commit d8c737f into prody:main Feb 5, 2026
0 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants