🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂

just an “interesting” frame collected last week at the synchrotron
An interesting bad frame collected last week at the synchrotron...In its way, it’s so beautiful 🙂

It is astonishing sometimes to observe people’s behavior in a small environment such a crystallography lab. Last week, our favorite instrument, the Nanodrop, decided it was time to stop working. Broken.

PANIC! (oh yes, wonderful song from Italian Metal Band Death SS!)

Suddenly, the pain of going 2 floor downstairs (yes, there’s another one!) became unbearable. Once again, it confirmed how necessary is to keep lab equipment in good shape, and make sure of having excellent contacts with technical service guys ready to fix something when accidents happen.

What happened? Simple. The lamp decided to die. Almost 7 years of continuous, successful daily measurements, and then kaboom.

The symptoms? Clear. I guess that if you have a Nanodrop you are all familiar with its sounds. The “click” when the arm moves to generate the meniscus on the liquid, and the “frying sound” when light passes through the optical fiber to reach the sample. Well, the click was present, but no frying sound at all. And an unpleasant error message on the screen.

The Cause? Unclear. But certainly an unusual problem, at least according to the service technician, who told us that it happened very few times to him to replace a lamp in a Nanodrop.

The Cost? Little less than 1000 euros. Quite expensive for such a little Xe lamp. But anyway, the psychological effects of having it up and running again in the lab are absolutely worth the money… 🙂

Pymol scripting is really powerful, but sometimes finding the right command that corresponds to that precise button in the GUI is tricky. Today I was struggling trying to make a figure with two-side lighting, no specular reflections, in a maximum quality rendering space.

However, I had some trouble finding these commands for using them in a script. After quite some search, I found their corresponding command-line instructions:

Display –> Two Sided Lighting becomes set two_sided_lighting, 1

Display –> Specular Reflections becomes set specular, 0

Display –> Quality –> Maximum Quality becomes util.perfomance(0)

And very important, util.perfomance(0) must precede set specular, 0 in the script, because util.perfomance resets some settings to default.

the complete example script, using one of my favourite structures, and resulting figures:

bg_color white

fetch 2xwb, async=0

create C3b, chain A or chain B
create FB, chain F
create FD, chain J
delete 2xwb

hide everything
show surface

set_view (\
     0.998220205,   -0.051217083,   -0.030589107,\
     0.043780737,    0.977242053,   -0.207561433,\
     0.040522572,    0.205853522,    0.977744460,\
     0.000182173,   -0.000013173, -514.753540039,\
    93.681587219,  -44.993942261,   -2.193564653,\
   405.829376221,  623.661865234,  -20.000000000 )

color aquamarine, C3b
color orange, FB and resi 1-234
color green, FB and resi 235-452
color blue, FB and resi 453-999
color violet, FD

ray
png image1.png

and this is the modified script, with the three extra lines at the beginning:

util.performance(0)
set specular, 0
set two_sided_lighting, 1
bg_color white

fetch 2xwb, async=0

create C3b, chain A or chain B
create FB, chain F
create FD, chain J
delete 2xwb

hide everything
show surface

set_view (\
     0.998220205,   -0.051217083,   -0.030589107,\
     0.043780737,    0.977242053,   -0.207561433,\
     0.040522572,    0.205853522,    0.977744460,\
     0.000182173,   -0.000013173, -514.753540039,\
    93.681587219,  -44.993942261,   -2.193564653,\
   405.829376221,  623.661865234,  -20.000000000 )

color aquamarine, C3b
color orange, FB and resi 1-234
color green, FB and resi 235-452
color blue, FB and resi 453-999
color violet, FD

ray
png image2.png

The resulting images are shown here:

This is image1 - default settings

This is image1 – default settings for quality, lighting and specular reflections

This is image2 - with custom modified quality, lighting and specular reflections

This is image2 – with custom modified quality, lighting and specular reflections

Heroes…

Posted: 04/01/2013 in Lab Life, Protein Crystallography
In memory of Guy Dodson, Louise Johnson,  and Roger Fourme at the CCP4 Study Weekend 2013

In memory of Guy Dodson, Louise Johnson, and Roger Fourme at the CCP4 Study Weekend 2013

Yesterday I had what I would call a funny conversation, with a PhD student 10 years younger than me (and damn, I’m not old!!!). The topic was about future, aging, working and retiring. And well, it made me think. It made me think about something that I do not consider possible at the moment. I don’t see how just because of age I would like to quit what I am doing. It’s not simply a job. It’s passion, it’s joy, it’s struggle. The burst of adrenaline the first time that new crystals go under the beam, when it’s still unknown if they will diffract or not, the emotion of looking for the first time at the electron density map of the data just phased, the beauty of those crystals under the microscope, the struggle of getting the protein expressed, the good feeling of suggesting the next move to the newcomers…

This job is my life, my pain, my happiness. This job is what I want for the future. And I will not be fed up of being a structural biologist, I am sure. They will have to stop me, and I will do my best to make their life hard.

I have the luck of doing a job that fills my life and makes me happy. I do not work because I have to, I work because I like what I do, I have fun doing it and I don’t want to stop doing that. There is plenty of people that just work waiting for their retirement. Let them go, and let me stay. If you know what I’m talking about, I’m sure that you will understand me.

Aside  —  Posted: 15/12/2012 in Lab Life

Image

it’s nice, has a shape, it’s birefringent, and very often is located in drop #1 of position F7 in corning 3550 plates. And no, it’s not a crystal, nor F7 is a magic condition. It’s a damn scratch on the plate and seems to be present in many, many plates. If you spot the F7 half moon, don’t try to reproduce it, it will not work!

plus a little 20kDa protein at 7 mg/ml, in HEPES/NaOH pH 7.8 + 50 mM NaCl.

These tiny crystals appeared in a few hours. I set up 5 screens, all clear, and ONLY THIS DROPLET with all those crystals inside.

First thought… it’s damn saltThese tiny xtals (3x2x10 microns) were indeed protein!. Again bad luck.

I did not have any protein left to try to reproduce them, so I just opened the droplet and harvested some. Inhouse could not see anything, they were really way too small.

But at SLS… these little beauties showed nice protein diffraction! And a dataset at 2.3-angstrom resolution came home this time 🙂

This post is the first of a series dedicated to scripting and automation in the everyday structural biology life. Last week, my friend Enrico asked me about how to write a little script in pymol to select waters mediating H-bonds at the interface between two protein chains. My initial thought went to the AROUND option of pymol selections, but we were looking for something quicker, something to be used to get an output of those interface molecules for many different PDB files, and do comparisons. So, here it comes the trick:

First create a pymol script (myselections.pml) that contains the following code. This script will the water molecules that are within a certain distance (3.5Ã…?) from the two chains independently and will save them as two separate pdb files, named file1.pdb and file2.pdb:

load [moleculename]
select interface1, [residues...]
select waters_at_interface1, interface1 around XX and resn HOH
save file1.pdb, waters_at_interface1
select interface2, [residues...]
select waters_at_interface2, interface2 around XX and resn HOH
save file2.pdb, waters_at_interface2

Then create a file called (I called it intersect) ontaining the following bash code:

#!/bin/bash
# definition of the files that will be compared
file1="file1.pdb"
file2="file2.pdb"
common="common.pdb"
# removal of previous comparison file from current dir
rm $common
while read line
do
  # adjusts the line in file1 to avoid different atom identifier
  grepme=$(awk -F 'HOH' '{print $2}')
  # searches for the line of $file1 in $file2 and exports the results to $common
  grep "$grepme" $file2 >> $common
done < "$file1"

If you now create and run a bash script like this:

#!/bin/bash
pymol -c myselections.pml
./intersect
rm file1.pdb file2.pdb

 

The output file common.pdb will contain those water molecules that contact (within the XX distance chosen above) both chains at the same time.

I am sure that there will be another 1000 ways of doing it, but with this combination of pymol/bash/awk, it’s flexible, efficient, and automatic. 🙂

 

I am a big fan of BioEdit, it’s a very efficient, multi-purpose software for dealing with all the in silico DNA work that I do on a regular basis. It has very convenient options, such as the quick CTRL+G translate hotkey and many others.

And I was very disappointed when, after buying my new laptop, BioEdit was randomly giving errors and crashing. The most annoying problem however was systematic, the marvelous CTRL+G option was not working anymore, giving a miserable windows error “0,13 is not a valid floating-point value”.

Well then, the BioEdit website contains a lot of suggestions on how to fix the various problems (check the bottom of the main page), including a guide on how to fix a similar problem, related to non-US usage of BioEdit on Windows 7 computers. However, the 0,85 problem seems to be different from my 0,13 , as the suggested fix did not work.

BUT 🙂

the old version works! So, if you are facing the same trouble, download the 7.0.8 version of BioEdit, and you’ll be a happy user again!