Most of the stats we are exposed to in our formative years as statisticians are viewed through a frequentist lens. Bayesian methods are often viewed with scepticism, perhaps due in part to a lack of understanding over how to specify our prior distribution and perhaps due to uncertainty as to what we should do with the posterior once we’ve got it.
Continue readingCategory Archives: Python
OpenMM – easy to learn, highly flexible molecular dynamics in Python
When I came to OPIG this past March I realized I had a novel opportunity – there was no one to tell me which molecular dynamics (MD) program I had to use! Usually, researchers do not have much choice in the matter due to a number of practical concerns. Conflicts between input and output file formats, forces, velocities, and basically everything else between MD suites make having multiple programs flying around tenuous at best if you want group members to be able to help one another. After weighing my options, I settled on OpenMM – and so far I am very happy with the decision.
Python Handout
Many OPIGlets extensively use Jupyter (in either Notebook or Lab flavour) to prototype and present their work. However, as project progress frequently notebooks are converted into regular python files for a number of reasons, losing the notebook functionality.
Wouldn’t it be nice if we could combine some of the benefits of Jupyter notebooks (not least the ability to present both code & results naturally) with regular python files?
Enter Python Handout.
Python Handout was recently (5th August 2019) released by Danijar Hafner and allows Python scripts to be converted into handouts with Markdown comments and inline figures (see above picture).
Installation is via pip (pip3 install -U handout
) and Python Handout supports python 3 scripts.
While I’ve not used Handout much (yet), I will definitely be experimenting more in the coming weeks.
How to Iterate in PyMOL
Sometimes pointing-and-clicking just doesn’t cut it. With PyMOL’s built-in Python interpreter, repetitive actions are made simple.
Continue readingWhy you should care about type hints in Python
Duck typing is great. Knowing that as long as my object does what the function expects it to, I can pass it to the function and get my results without having to worry about exactly what else my object might do. Coming from statically-typed languages such as Java and C++, this is incredibly liberating, and makes it easy to rapidly prototype complex and expressive code without worrying about checking types everywhere. This expressiveness, however, comes with a cost: type errors are only caught at runtime, and can be hard to debug if the original author didn’t document what that one variable in that one function signature is expected to look like.
Continue readingConstrained Embedding with RDKit
This blog post explores the RDKit function ConstrainedEmbed.
Continue readingProperty based testing in Python with Hypothesis : how to break your own code before someone else does
Traceback (most recent call last):
ZeroDivisionError: integer division or modulo by 0
We’ve all been there. You’ve written your code, tested it out on some toy data and then when you make the move to the real data, there was something you didn’t expect.
Maybe some samples have been truncated to zero. Maybe the input arrays are the wrong shape. Suddenly your code comes crashing down around you, and you’re left thinking: well how could I have known that was going to happen? I can’t test everything
Continue readingUsing PML Scripts to generate PyMOL images
We can all agree that typing commands into PyMOL can make pretty and publishable pictures. But your love for PyMOL lasts until you realise there is a mistake and need to re-do it. Or have to iterate over several proteins. And it takes many fiddly commands to get yourself back there (relatable rant over). Recently I was introduced to the useful tool of PML scripting, and for those who have not already discovered this gem please do read on.
These scripts can be called when you launch PyMOL (or from File>Run) and iterate through the commands in the script to adapt the image. This means all your commands can be adjusted to make the figure optimal and allow for later editing.
I have constructed and commented an example script (Joe_Example.pml
) below to give a basic depiction of a T4 Lysozyme protein. Here I load the structure and set the view (the co-ordinates can be copied from PyMOL easily by clicking the ‘get view’ command). You then essentially call the commands that you would normally use to enhance your image. To try this for yourself, download the T4 Lysozyme structure from the PBD (1LYD) and running the script (command line: pymol Joe_Example.pml)
in the same directory to give the image below.
######################### ### Load your protein ### ######################### load ./1lyd.pdb, 1lyd ########################## ### Set your viewpoint ### ########################## set_view (\ -0.682980239, 0.305771887, -0.663358808,\ -0.392205656, 0.612626553, 0.686194837,\ 0.616211832, 0.728826880, -0.298486710,\ 0.000000000, 0.000000000, -155.216171265,\ 4.803394318, 63.977561951, 106.548652649,\ 123.988197327, 186.444198608, 20.000000000 ) ################# ### Set Style ### ################# hide everything set cartoon_fancy_helices = 1 set cartoon_highlight_color = grey70 bg_colour white set antialias = 1 set ortho = 1 set sphere_mode, 5 ############################ ### Make your selections ### ############################ select sampleA, 1lyd and resi 1-20 colour blue, 1lyd colour red, sampleA show cartoon, 1lyd ################### ### Save a copy ### ################### ray 1000,1500 png Lysozyme_Example_Output.png
Enjoy!