Home Blog
PyRx 0.9 Release Announcement PDF Print
Written by Sarkis Dallakian   

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 http://pyrx.sourceforge.net/images/hbond.png 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. http://pyrx.sourceforge.net/images/09-AtomColors.png

[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

Add a comment
Last Updated on Tuesday, 09 July 2013 13:54
Rotating Mayavi Camera PDF Print
Written by Sarkis Dallakian   

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.
def 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 calls frame.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 of frame.mayaviEngine object. frame is an instance of MainFrame class definded in wxMainFrame.py and initialized in runPyRx.py. This is where we store references to various PyRx parts including mayaviEngine instance. The rest of the code is used to call rotate function and it's wxPython specific. I copied the last three lines from PyRx/autodockPage.py where we use wx.Timer to run AutoDock jobs and to check their status. Please let me know if you have any questions. 

Add a comment
Last Updated on Sunday, 25 March 2012 15:22
Installing Nvidia Driver on CentOS 6 PDF Print
Written by Sarkis Dallakian   

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


Add a comment
Last Updated on Wednesday, 08 May 2013 20:30
ConnectomeViewer and Spatio-Temporal Simulation Environment (STSE) PDF Print
Written by Sarkis Dallakian   

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.

Add a comment
Last Updated on Monday, 14 February 2011 13:43
PyRx 0.8 Release Announcement PDF Print
Written by Sarkis Dallakian   

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. http://pyrx.scripps.edu/images/75_update.png

[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. http://pyrx.scripps.edu/images/flex_rigid_74.png

[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

Add a comment
Last Updated on Monday, 10 January 2011 16:06

Page 4 of 7
Get PyRx