Friday, May 29, 2009

What's going on at the lab?

My protein synthesis functions, got me thinking about developing an animated model of protein synthesis that actually does transcription and translation and so I have been trying to figure out a good way to do this. The figure shows a animated prototype for an operon that I have been working on. The model loosely mimics the behavior of the repressor protein and inducer of the lac operon as well as the RNA polymerase.

In the picture the repressor protein (red) is sitting on the operator and the RNA polymerase(purple) cannot attach to the promoter to begin transcription of the operon's coding region (teal). The inducer is the green ball. The can see how the system behaves by touching say the inducer which will then bind to the repressor protein, preventing it from blocking the RNA polymerase.

This view shows the repressor protein not on the operator allowing the RNA polymerase to begin transcription. As the polymerase moves down the coding region the transcript (yellow) grows.

When the RNA polymerase reaches the terminator part of the operon the polymerase detaches, the RNA detaches and the small ribosomal subunit (brown) attaches to the start of the start of the transcript.

Obviously there are some simplifications here. For instance in prokaryotes translation can begin while transcription is still on going and I don't bother with the details of how RNA polymerase works.

The goal is to let the students input a short DNA sequence, animate transcription and show the mRNA in local chat (or perhaps as hovering text above the mRNA) and optionally send it as an e-mail. Then as translation proceeds actually have the tRNA's bring in the amino acids and make a short polypeptide. In this scheme the mRNA is a single prim but carries the codons as data inside. But the development of the polypeptide via translation is explicitly animated in terms of what happens at the ribosome, each amino acid shown as a separate object.

In the foreground are some crude tRNA's (orange rectangles) some of which have amino acids represented by balls attached to them. This is going to be a fairly elaborate scripting effort with some neat tricks involved so stay tuned...

My sabbatical is officially over and have already given my sabbatical report. I will be teaching summer school-just two intro biology lecture sections. Also at the end of July I will be speaking on Science simulations in Second Life at SidLit and giving also giving several local talks about Second Life in general.

Thursday, May 14, 2009

Protein synthesis functions

The chromosome module mentioned previously is part of my JCCC evolution build on the agents of evolution. Mutations are any sort of heritable change in the DNA, that is changes in the DNA passed on to future generations of cells. Chromosomal mutations are large scale rearrangements, involving many nucleotide bases. But a discussion of mutations has to include point mutations-changes on the level of a single nucleotide base.

Discussing these means dealing with protein synthesis first. So the last couple of days I have been scripting core functions to do the basic steps in protein synthesis , namely transcription and translation. Max Chatnoir over at Genome Island has a nice little collaborative game related to protein synthesis, ( but since my focus is on evolution at JCCC, I've decided to build my module around a series of functions that start with a strand of DNA, transcribe that DNA to get a messenger RNA and then translate that DNA.

Doing this involves a series of string manipulations and here are some functions I've written specifically to manipulate DNA and RNA represented as a sequence of letters:

string stringclean(string toclean, string allowed);

This function takes a string toclean and strips out blanks and any characters that are not allowed after converting upper case letters to lower case. Permissible characters are in the string allowed. For instance DNA nucleotide bases are represented as a,t,g or c so the the string allowed is "atgc". Were the string toclean representing RNA then allowed would be "augc". Just to be safe the function trims any leading and trailing spaces. The reason for this function is to try to catch elementary mistakes and strip out extra characters from genetic information copied and pasted from GenBank or FASTA formatted data.

string compdna(string dna);

This function takes a DNA strand and outputs the complementary strand. This is useful because data bases often give a so called sense strand which is like the RNA only with "t" shown instead of "u". For illustrating transcription you need to start with the complement of the the sense strand as happens in the cell. Hence the need for a function to generate the correct DNA strand.

string transcription(string dna);

This function takes what ever DNA strand is given it and mechanically does transcription. It doesn't recognize any sort of promoter region such as a -35 or Pribnow box. If you don't know what those are..well don't worry.

string transcodon(string codon);

Takes an mRNA codon and uses the standard genetic code table to translate the codon into the corresponding amino acid using the standard genetic code, used by most eukaryotes. This function is needed for the translation function:

string translation(string mrna);

This function takes the mRNA string and using the function transcodon, translates the mRNA into the polypeptide that would be produced in the cell at the ribosome. The function does not recognize the Shine-Dalgarno sequence and mRNA's start for simplicity with the start codon, 'aug'. The function terminates the polypeptide when it recognizes a stop codon. Polypeptides are represented by the now standard one letter abbreviations commonly used in protein data bases. Thus it will allow the student to compare the effects of frame shift mutations caused by insertions or deletions to substitutions on the resulting polypeptide.

These functions work for small genes with on the order of 250 nucleotide bases. One frustrating thing is the limited ability of SL to write data to files and for now the easiest way fo the user to save the output, is to e-mail it to themselves.That will be built into the module as an option. Otherwise users would have to cut and paste from the chat window.

Users will have the option of using data they obtain from another source by configuring a note card with the raw data copied from say NCBI, or using a small gene data set preloaded onto a note card.

Three other core functions are being developed:

string makesubstitution(string dna) makes a random base substitution in an original DNA strand.

string makeinsertion(string dna) makes a random insertion while
string makedeletion(string dna) makes a random deletion.

But these will be easy to make. The activities are being designed around a pencil and paper exercise I use in my classes currently, only now the students will be able to use more realistic data and quickly investigate at a number of different mutations.

Monday, May 11, 2009

Sabbatical Presentation

Last Thursday I gave my Sabbatical report on my Second Life activities this semester. It is only about 20 minutes long so it is really difficult to say and show everything one might want to show. The video was just posted today so if you want to see my take on what to say about Second Life in less than 20 minutes have a look at:

Wednesday, May 6, 2009

JCCC Chromosome module

Chromosome Build at JCCC site. This is part of the evolution unit being installed at the JCCC site. It currently includes the human chimp ideograms courtesy of ENSI. You can see two of my real simple viewers, the one on the left with some narrative and the one on the right with the human chimp chromosome ideograms.

On the side directly behind me are some red and blue chromosome, that illustrate reciprical and non reciprical translocations. The four cylinders with the colored horizontal stripes illustrate basic chromosomal rearrangements. Because of their importance, I want to have a separate activity for duplications and the evolution of gene families if I can keep it simple.

On the right hand side of the picture a some of my human chromosomes that link into the Ensemble web site.

The chromosome build is at

This is open access but the rest of the JCCC sim is currently not.

Saturday, May 2, 2009

Mitosis in the Morning...

As part of my evolution build I wanted to have an activity related to chromosomal rearrangements. We know these are important in evolution, some of the clearest examples are in our own evolutionary history. So I developed a series of human chromosomes similar to those over at Genome Island.

These consist of representations of human chromosomes, textured with the standard banding patterns (ideograms) that geneticists use. When the user clicks on the chromosome, menu dialogue allows the user to look at the similarities between the human chromosome and the chromosomes of selected mammals: mouse, chimp, and the macaque. This is done using a data base portal called Ensembl. This displays regions of synteny, which in the bioinformatics context refers to regions of chromosome that have the same arrangement of genes in both species. Here is a quick example for human chromosome 1 showing the regions of synteny in chimp chromosomes to human chromosome 1.

It's probably hard to see what's going on here. But the big white structure in the center represents huna chromsome 1, and the chimp chromsomes with regions of synteny for human chromosome 1 are shown to the left and right. Human chromosome one has synteny with most of chimp chromosome 1 with just a little region of synteny with chimp chromosome 2A and chimp chromosome 10.

Speaking of chromosomes, Max Chatnoir was wishing for a build related to mitosis and meiosis so to help me think about this, I spent the last couple of days building mitosis at my carmine site. None of this is scripted and it still isn't clear what the best strategy for this is.

Here is a quick look at my mitosis builds. These are quite large and I will probably scale them down a bit. They are relatively simple but do take up a fair amount of real estate-not prims but literally really real estate.

This shows prophase, prometaphase, metaphase, anaphase and telophase. You can see me in the bottom of the picture. Each of the "cells" is 10m in diameter.

I don't normally build this big, but it seemed easier to do this big. The mitosis build is currently at:

Here is a close up of metaphase when the chromosomes (shown in red and blue) are lined up in the middle of the cell.

My thinking is rather than animate mitosis, having this build (maybe on a smaller scale) and then an activity center where students can play with chromsome models like they do in lab. I think it is possible to script the chromosomes to sense a proper arrangement. That would provide a nice collaborative activity.

Speaking of collaborative activities, I also tweaked my predator natural selection module and installed it on my college land site. The module is packaged appropriately with a velociraptor texture so hopefully student predators will get in to the spirit of things.

Here's the module installed at I am also building an activity center just above Predator which students will do first to study natural selection under less challenging conditions.