-
PyRx 0.9 Release Announcement
We are pleased to announce the release of PyRx 0.9. The following are new features and bug fixes implemented for 0.9 release:
[105] Vina Wizard is now using the number of CPUs (–cpu option). Please use Edit > Preferences and enter Available CPUs to specify this number. By default, PyRx sets it to the number of available CPUs minus one, or just one if there is only one CPU available.
[104] Implemented hydrogen bond visualization (3). Users can now click on
icon on the toolbar or right-click on a molecule and select Display > Hydrogen Bonds. The later displays only intramolecular hydrogen bonding, while former shows intermolecular hydrogen bonding between all molecules in PyRx (unless there is only one molecule in 3D Scene, in which case we show intramolecular hydrogen bonding for that molecule).
[103] You can now explicitly set search box dimensions. This was previously read-only and users could change it only by using handles of BoxWidget.
[102] Implemented a new GUI for non-standard residues (HETATM) when making macromolecule pdbqt, available through Make Macromolecule menu. If input macromolecule contains non-standard residues, such as in the case of 1hsg, users can now select what to do with non-standard residues as shown in the GUI below:
[100] Added cleanup=’nphs_lps_waters’ to AD4ReceptorPreparation to handle DNA’s which otherwise was failing because the default was cleanup=’nphs_lps_waters_nonstdres’.
[99] Removed unbound ligand mode from AutoDock 4.2 parameters list. See Bug: Unbound ligand mode not respected.
[97] Fixed Import > Workspace Tarball – Local File.
[94] and [95] Users can now open multiple molecules at once. We copy input pdbqt files to ~/.mgltools/PyRx/Ligands by default. If there are more than 100 input files to open, we don’t add pdbqt inputs to 3D Scene. This is done to allow “Add Ligand” to handle large number of input pdbqt files.
[92] and [93] Updated atom color scheme to include new atom types.
[89] Added an option to render secondary structures as ribbons thanks to ePMV. To use this, right-click (Control-click on Mac) on the molecule and select Display > Ribbons.
[88] Fixed PyRx -> Help -> Check for Updates… for Windows.
[87] Fixed alternate conformations selection when making pdbqt for macomolecules.
[86] Fixed the histogram icon in the Tables toolbar.
See also: List of Changes in PyRx Version 0.8
-
Rotating Mayavi Camera
I wrote this small script that can be used to rotate molecules in PyRx. You can try it by downloading rotate.py and then use File → Run Python Script menu from PyRx to run it. To stop this rotation, click on Python Shell tab under Controls panel, type
stop()
and hit Enter. The following is the complete code for rotate.py and it’s intended for (Python) developers who want to learn how it’s done.def rotate(event): frame.mayaviEngine.scene.camera.azimuth(1); #change 1 to any other degree as needed. frame.mayaviEngine.scene.render() def stop(): frame.timer.Stop() del frame.timer import wx frame.Bind(wx.EVT_TIMER, rotate) frame.timer = wx.Timer(frame) frame.timer.Start(50) #you change the rate here
The
rotate
function here callsframe.mayaviEngine.scene.camera.azimuth(1)
which is what we need to do the rotation (.render
is there to update the scene, otherwise we won’t see the changes). I read Advanced Scripting with Mayavi where I found an example code for foscene.camera.azimuth
. To call this function from PyRx, we need to get a handle offrame.mayaviEngine
object.frame
is an instance ofMainFrame
class definded in wxMainFrame.py and initialized in runPyRx.py. This is where we store references to various PyRx parts includingmayaviEngine
instance. The rest of the code is used to callrotate
function and it’s wxPython specific. I copied the last three lines from PyRx/autodockPage.py where we usewx.Timer
to run AutoDock jobs and to check their status. Please let me know if you have any questions. -
Installing Nvidia Driver on CentOS 6
This post explains how to install NVIDIA proprietary drivers on CentOS 6. By default, CentOS 6 comes with nouveau drivers, which for 3D (OpenGL) rendering, is order of magnitude slower that NVIDIA’s proprietary drivers. For instance, I had glxgear running at round 400 frames per second (FPS) before installing NVIDIA proprietary drivers and at around 1000 FPS after. So it pays to add this extra step to your CentOS 6 installation. Before we start, make sure you have all required packages installed:
yum groupinstall "Development Tools" yum install kernel-devel kernel-headers dkms
The last package (dkms) is needed so that we don’t have to reinstall NVIDIA drivers after each kernel updates. Now we are ready to download NVIDIA proprietary drivers – http://www.nvidia.com/Download/index.aspx
To find out your Video Card model number, click Main Menu → System Settings → Display or run:
lspci | grep VGA
I then run /sbin/init 3 and then chmod +x NVIDIA-Linux-x86-290.10.run followed by ./NVIDIA-Linux-x86-290.10.run. However, this gave me:
“ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver, and must be disabled before proceeding. Please consult the NVIDIA driver README and your Linux distribution’s documentation for details on how to correctly disable the Nouveau kernel driver.”After trying many different options I have found a solution described at http://www.linuxquestions.org/questions/ubuntu-63/nouveau-kernel-driver-825432.
So I added the following line to /etc/modprobe.d/blacklist.conf file
blacklist nouveau
and then did:
$ mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak $ dracut -v /boot/initramfs-$(uname -r).img $(uname -r)
Reboot and run ./NVIDIA-Linux-x86-290.10.run to finish installing NVIDIA driver.
Another difference, between CentOS 6 and earlier versions of CentoOS is that system-config-packages (Add/remove applications) is now called gpk-application. You need to run yum install gnome-packagekit if gpk-application is not installed in your system. Also, if you are planning to do OpenGL development run (source: www.centos.org – Forums – CentOS 6 – Software Support – Help me ..):
yum install mesa-libGL-devel mesa-libGLU-devel
-
ConnectomeViewer and Spatio-Temporal Simulation Environment (STSE)
I was looking for a sample code and found Nullege search engine for Python source code to be very useful. There are other search engines that do similar work, such as Google Code Search and Koders.com, however, Nullege seems to be the best one for Python. I have found the following excellent projects that I would like to share. The first one is called ConnectomeViewer and it’s an amazing tool for brain research. The second one is called STSE and it provides spatio-temporal simulation environment for biological systems. It’s nice to see that they are both using Mayavi for 3D Visualization. Since PyRx is using Mayavi too, this means that our users will be able to transfer their skills seamlessly between these tools. I’m looking forward to seeing other uses of Mayavi and 3D Visualization in life sciences.
-
PyRx 0.8 Release Announcement
I’m pleased to announce the release of PyRx 0.8. Here is what’s new in this new release:
Version 0.8 – 30 December 2010
[84] Implemented Vina Web Services client and added remote executaition mode for Vina wizard.
[83] Changed web service URI from http://ws.nbcr.net to http://kryptonite.nbcr.net. Opal client distributed with PyRx is compatible with Opal2 services running on this new server.
[80] We now show ScrolledMessageDialog with TraceBack when PyRx fails to start.
[76] Exporting SDF in Analyze Results allows to specify the Number of Poses to Retain. This option is available through Edit -> Preferences. In the case of Vina results, we sort the result using Vina Binding Affinity before saving the result. For AutoDock 4, sorting is done using Binding Energy.
[75] Implemented update feature available through Help -> Check for Updates menu. This enables users to get the latest features and bug fixes more easily.
[74] Made a number of important changes and bug fixes related to flexible residue generation and docking. In particular the names of flexible and rigid parts of a macromolecule now ends with ‘_flex.pdbqt’ and ‘_rigid.pdbqt’, respectively.
[71] Users can now save docked structures and binding energies as SDF (Structure Data Format). Thanks to Martin Indarte post in the forum: SDF with binding energies/scores
[69] Switched back to using wx.TextCtrl in Text editors. This widget can now handle large files (> 5MB – tested with wxPython-2.8.11).
[66] Included an option for exhaustiveness in the Vina Wizard thanks to Martin Indarte post in the forum: Can I change the exhaustiveness in VINA wizard?
See also: List of Changes in PyRx Version 0.7
-
Shape-based alignment of molecules
I was looking for an open source project that would do small molecule alignment and I finally found it. There are many publications out there that describe different algorithms for small molecule alignment, but I couldn’t find any that I can try myself. I was very excited to read release announcement for Piramid that does exactly what I was looking for. Below are my initial results.
3D SFD CID_3107 3D SFD CID_9950643 Molecules from the first raw shown together. CID_3107 is highlighted. The same molecules after aligning them. Update: The URL and the name of this tool has been changed since I wrote this post. This tools is now called Shape-it™ and it’s avialabe from http://silicos-it.com/software/software.html.
-
List of Changes in PyRx Version 0.7
The following are list of changes in PyRx version 0.7.
Version 0.7 – 9 Jun 2010
- Fixed Make Macromolecule on Mac.
- Fixed error message that showed up upon completion of remote jobs.
- Fixed startup problems for Windows. Read PyRx wont start for more info.
Version 0.6 – 21 May 2010
[56]: Created Preferences page for Ligand Preparation. Users can now inactivate all torsions or limit the number of torsions using Edit -> Preferences widget shown below. These options will be in effect when using AutoDock -> Make ligand menu in Molecules panel, and also when doing Convert Selected or All to AutoDock Ligand (pdbqt) using Open Babel widget.
[54]: Fixed MacOS X Drawing bug.
[52]: Analyze Results widget can now be sorted by (left) clicking on table header.
[47]: Added AutoDock Vina interface and included Vina 1.1.1 binaries in the installers. The new Vina Wizard, as shown below, is now the default docking wizard. Also, merged Select Ligand and Select Macromolcule page into a single Select Molecules page.
[44]: Switched from TextCtrl to RichTextCtrl to handle large files. It would be possible, in the future, to add other functions to the toolbar as shown in wxRichTextCtrl overview.
[43]: Fixed problems with axes.set_xlim in Table Plotting widget.
[42]: Added try/expect in showHistogram to log possible errors with clustering. See also Clustering bug.
[41]: Moved from AutoDock 4 to AutoDock 4.2 parameters. This suppresses “WARNING: Using autodock4.0 unbound extended model in autodock4.2!” in the log file. Thanks to Adam Lesser for reporting this.
[40]: Bug fix – fixed problem with Flexible Residues. Now it converts original file into pdbqt before passing it to AD4FlexibleReceptorPreparation. See also: Flexible ligands Bug.
[39]: Bug fix – if there is a problem with writing to PyRx folder, it will now use a temporary folder and inform user about that. See also: PyRx fails to run on OSX.
[37]: Do not plot ROC curve when there are no actives or inactives.
-
e-LEA3D and ZODIAC
Thanks to Mark Fortner for sharing this article. It showed up today on my virtual screening feed from PubMed, but it’s too good of an article to miss. Similar to AutoGrow, e-LEA3D is using fragments to built lead compounds. Building blocks are extracted from Comprehensive Medicinal Chemistry database by Symyx. It was interesting to find that besides DOCK Blaster there are also TarFisDock and SCFBIO servers that are using DOCK. Cloud Computing For Drug Discovery is an interesting subject and I knew that there are servers such as DockingServer, DrugFinder and GridSystems that are doing excellent job in this area. It’s interesting also to mention that current version of e-LEA3D is using PLANTS for docking and Frog to generate 3D conformations. The most exciting part is that I rediscovered ZODIAC which is also a GUI for PLANTS. ZODIAC is very similar in spirit to PyRx in that it’s an open source state-of-the-art tool for running molecular docking experiments. In summary, both e-LEA3D and ZODIAC are terrific tools for drug discovery.
-
ParaDockS
There is a new article in J. Chem. Inf. Model. that talks about ParaDockS. This is the only other docking program, besides AutoDock 4 and Vina, that is open source. Congradulations to ParaDockS team for making such a great product available! This means that PyRx can some day use ParaDockS and vise versa, so here I’ll summirize main features of ParaDockS. First, it’s using particle-swarm optimizer, similar to PSO@Autodock. Unlike, AutoDock 4, which uses force field-derived (AMBER) objective function, ParaDockS is using knowledge-based potentials. I look forward for the new develoments in this area.
-
Thermal Shift Assay for Inhibitors of 15-Hydroxyprostaglandin Dehydrogenase
Here are the results of a new PubChem BioAssay AID: 2427 with 42 compounds (22 active, 2 inactive and 18 inconclusive).
AutoDock did a perfect job here giving favourable binding energy for active compounds compared to inactives. As a result, we have a prefect ROC curve here. I made the makers bigger so you can see that all actives are on a vertical x=0 line and all inactives lay on a horizontal y=1 line.