Monday, April 13, 2015

MGR CMS: a simple Django-based content management system for genomic data

MGR-CMS (Mint Genomics Resource) is a content management system for genomic and transcriptomic data. The code for MGR-CMS can be found Here. As implied by the name, it was originally built to house data for mint plants, but it can be easily adapted for data from other organisms. I made MGR because I couldn't figure out how to get Tripal to behave how I wanted it to. I later found out that was my fault, not Tripal's fault, so if you want a more or less feature complete genomics content management system, look there. If you want a simple system written in Python (Django), or you have the misfortune of having a Windows server (as I do), then MGR might be just the thing for you (but it still might be worth your while to shoot the Tripal people an e-mail, just to make sure it really can't handle your situation).

Monday, April 6, 2015

evaluating boolean gene-reaction associations and assigning expression levels to reactions in stoichiometric models

Problem: You've got a stoichometric model, and an RNAseq dataset, and you want to use the transcriptome data to determine which reactions in the model are likely to be active, and at what level.

Solution: Use pandas to read the model and the RNAseq data. Use a pyparsing grammar to parse the boolean gene-reaction association expressions.Write a function calculate a reaction expression level based on the parsed gene-reaction association expression, and the RNAseq data. Write a new model file with a column for gene expression.

Read on for details....

Saturday, April 4, 2015

Easter Memories: a poem

Easter has always been one of my favorite holidays. It's an opportunity to see my extended family. The weather is usually nice. The trees are becoming green, and the early-season flowers are blooming. I also like it because I think it is less touched by commercialism than other holidays. People still give each other Easter gifts, but it's not taken to the ridiculous extremes of Christmas. And the gifts are mostly chocolate, which is much more welcome than yet another pair of socks, or some game I'll play twice and set on the shelf for the next 100 years. There's no Easter equivalent of Black Friday. People get together on Easter to enjoy each other and to enjoy nature, and that's really how every holiday should be.

As a child, the Easter morning church service was probably my favorite service of the year. The sanctuary, the clothes, the congregation, and the music were always so bright and cheerful. Even as I've gotten older and more cynical about organized religion, and no longer attend an Easter morning church service, I still feel a strong sense of nostalgia about Easter. As organized religion is becoming less popular with each generation in the US, I think my sentiment is one that increasing numbers of young people can probably relate to.

Here's a poem I wrote to try to capture that sentiment.

Wednesday, April 1, 2015

Personality tests: are they baloney?

I've been thinking recently about personality tests (specifically the MBTI): the one I consistently test as is INFP, (wiki) (maybe I should quit science and become a social worker...). Reading the descriptions of that type, I have to admit that it sounds awfully familiar. When I read the description of the exact opposite type: ESTJ, it was pretty clear that I'm not anything like that. One letter switches from INFP tend to look fairly familiar to me also. So there certainly seems to be some validity to personality tests (this has also been shown in the scientific literature), they measure something, even if it's not always clear exactly what. However, I think people need to be very careful with interpretation and application of the results of personality tests, and not take them too seriously. You are precisely who you are, and not precisely who some silly test says you are!

parameter fitting and opitimisation with PySCeS: hack for allowing integration at specific time points

PySCes is a really awesome modeling environment for kinetic models of biochemical networks. Scripting it is a heck of a lot easier to pick up and learn than the COPASI python bindings.

Clustal Omega not good for nucleotide alignment

Clustal Omega claims that "the quality of alignments is superior to previous versions, as measured by "a range of popular benchmarks." But it always seems to do worse than ClustalW and Kalign, when I try to align nucleotides. I suspect I'm just using the wrong settings, but even after I play with the settings a bit it still gives the same results. So I'm kind of at a loss. I think it may be that it's optimized for alignments of huge numbers of long sequences, and ends up not performing as well on small scale alignments. (If you know what's going on here, please let me know in the comments.)

Annotating a de-Novo transcriptome assembly

Here's how I'm annotating a de-Novo transcriptome assembly:

This post is kind of halfway between a how-to and a lab notebook entry.

I'm on a Linux box with 12 cores (24 if you count hyper threading), 48 GB of RAM, and Xubuntu Desktop 13.10

I'm basically just using the Trinity pipeline. I think it's turning into a really nice set of tools both for assembly and for annotation (because Trinotate is so new and apparently under heavy active development, the information in this guide may not be current for very long). I'm also using Blast2GO, which has been around longer and is very widely used.

I'm trying to annotate 5 transcriptomes simultaneously, so as I'm going, I'm writing little shell scripts to apply each step to all of the transcriptomes at once (sadly, I had a hard-drive crash and lost those scripts... oh well). At some point I might consolidate them into a more fully automated pipeline, but I'm not going to worry about that for now.