Take the 2-minute tour ×
Biology Stack Exchange is a question and answer site for biology researchers, academics, and students. It's 100% free, no registration required.

I'm a computer scientist who is starting to dabble with biology. My eventual goal is to model different kinds of cells with a computer program. As of right now, I'm just trying to take some smaller steps.

First, I downloaded a complete human genome from http://hgdownload.cse.ucsc.edu/downloads.html#human There is a FASTA file for each chromosome.

Then, I wrote a java program which can convert FASTA DNA sequences into the appropriate amino acid chain.

Next, I made my program look for the "start" code (ATG) and "stop" codes (TAA, TAG, TGA).

So, now I have sequences of amino acids which might theoretically end up folding into proteins. But, before I start diving into protein folding, I wanted to try to verify that the steps I took so far were done correctly. I looked up some important human genes in an online database and found their amino acid sequences. I then searched through my program's data for those sequences and confirmed that they were there. However, the gene was in a different base-pair location than the database said that it should be in.

This led me to some questions, which, so far I have been unable to answer and hopefully people here will be able to help shed some light.

  1. I know there are a lot of different publicly available genomes. Maybe the UCSC one that I downloaded is different from the one used by the gene database. How much does each genome vary from each other genome and in what ways do they vary?

  2. In attempting to answer that first question, I was going to download a bunch of genomes from the 1000genomes website and do some comparisons, but I wasn't sure which files to download. Each of the files begins with either ERR or SRR and I'm not sure what that means. This is the folder I'm currently looking in ftp://ftp-trace.ncbi.nih.gov/1000genomes/ftp/data/HG00239/sequence_read/

  3. Lets say I'm trying to model a white blood cell. How do I know which parts of the genome get turned into proteins for that type of cell?

Sorry if anything I said doesn't make sense. As I said, my expertise lies in programming, not biology/genetics.

share|improve this question
    
I think that you need to be more specific than "I downloaded a complete human genome". Was this an entire genome sequence, or a set of FASTA sequences corresponding to predicted proteins? –  Alan Boyd Jul 14 at 11:43
    
An entire genome sequence. There is a FASTA file for each chromosome. –  nether Jul 14 at 12:11
    
A comment on your third question: Which genes are expressed depends on the state of the cell, and this is especially complicated for immune cells. These can go through different state of activation which are all different. You can try to find data from gene expression experiments in such cells and use this data. Datasets are available in the "Gene expression omnibus". –  Chris Jul 14 at 12:15
    
You completely ignored Central Dogma of Life. You haven't considered the RNA. –  Devashish Das Jul 14 at 12:23
    
Devashish, I have a mapping from DNA codon to amino acid. I don't think I need to do anything with the RNA. For instance, whenever I see the TGC codon, I map that to cysteine –  nether Jul 14 at 13:12

2 Answers 2

up vote 7 down vote accepted

No, your approach will not work, you are taking a very simplistic view of an extremely complex system. Some of the problems you are ignoring are:

  • Genes (eukaryotic genes anyway) are spliced to produce mRNA, a process that removes introns and leaves only the exons. If you just translate the entire chromosome file you will get noise.

  • Splicing also changes the frame a gene is read in, you don't mention frames at all in your question but you can't work with sequences unless you deal with them.

  • Many genes (most even, in some species) are alternatively spliced. One gene can give rise to multiple protein sequences. Which one is produced at any one time can depend on a multitude of factors ranging from pure chance, through environmental conditions to the cell type where the gene is expressed.

  • Genes can be present on both strands of DNA and a gene on the + strand can overlap with a gene on the - strand. In some cases they can even overlap on the same strand (nested genes). You need to check both strands for coding sequences.

  • You're assuming that all coding sequences start with ATG (most do, not all) and you seem to be assuming that an ATG always starts a coding sequence. A given gene can have dozens or hundreds of ATG codons, how can you know which one is used as a START codon?

The process of identifying the parts of the genome that get translated into protein is not trivial. It is the subject of countless PhD theses, mine for example. There are many programs (gene predictors) that are designed specifically to detect genes in genomic sequences. Having spent many years working with them I can assure you that they're not something you can just whip up one afternoon. They tend to involve very complex models of coding vs. non-coding sequences and are way more sophisticated than simply looking for START and STOP codons. Trying to write one without knowing a lot more about biology than you seem to is just a waste of time.

Your specific questions are basically irrelevant because of the points mentioned above. Nevertheless, the answers are:

  1. They vary but not much. For well annotated genomes like the human one, the differences will be negligible. That is not why you have strange results though as I explained above.

  2. All public FTP sites tend to have a README file that explains what the files provided are. You should read the relevant README from ftp://ftp-trace.ncbi.nih.gov/1000genomes/ftp/

  3. Answering that question will get you a Nobel prize. There simply is no way of predicting what genes will be activated in a particular cell. We're not even close to that level of understanding of how a cell works but I can tell you that it will not depend on the sequence, you will never be able to predict whether a gene is active in a particular cell based on its DNA sequence. It will depend on various things including the gene's methylation state and is largely an emergent quality of the cell's complexity (think of various proteins interacting with one another, leading to the activation of a gene). The best you can do is get a list of genes that are known to be active from the literature.

In summary, if you want to do something as complex as modelling a cell I suggest you first take the time and study some basic biology so you can understand the system you are trying to model a bit better. The cell is not only an extremely complex system that we don't fully understand yet, it is also not wholly deterministic and contains a lot of stochasticity that you seem to be ignoring completely.

share|improve this answer
    
Thanks for the detailed post. I'm going to use this as a reference going forward and look into the topics you've mentioned. –  nether Jul 14 at 17:40
    
@nether you're welcome and sorry to piss on your parade and all. I really recommend you find a biologist to collaborate with. You are greatly underestimating the complexity of the task you want to attempt. First of all, it is simply impossible with the knowledge available today. Even if it were possible though, you are looking at several years work from a team of highly qualified experts. You may be a brilliant programmer but that is not enough here. Also, you are reinventing the wheel, there are already many programs that do what you have written (identify genes and translate sequences). –  terdon Jul 14 at 18:04
    
Because there's an xkcd for everything...xkcd.com/793 –  swbarnes2 Jul 15 at 1:41
    
@terdon I was expecting the piss-on-parade / what-your-doing-is-impossible type post, but I'm happy that yours also contained useful information in addition. People told me things were impossible when I was trying to make software for the financial sector. Now my software is used by banks all over the world. It's not like I sat down in a room and made it by myself -- many experts in the financial world helped make it possible. I plan to do the same thing here which is why I've been reaching out to experts in computational biology and already have some meetings set up :) Collaboration is key –  nether Jul 15 at 10:14
    
@nether ah, good, I'm glad to hear that. There is actually a lot of work being done in the subject. What is impossible (today) is to create a full working model of a cell. Impossible not because you're not good enough but because we simply don't understand the cell well enough. That could change in the future, what will never change is that the DNA sequence will never be enough for this. The sequence is only a subset of the information necessary to model a cell. By the way, you might want to look up BioPerl or BioPython if you're going to be working with this type of data. –  terdon Jul 15 at 10:19

Why bother predicting proteins badly from DNA sequence when you could have just as well downloaded the manually curated human proteome?

As to your questions:

  1. Are you asking about human genomes or genomes in general? The vast majority of the variance in human genomes is in non-coding sequence. As to genomes in general, they vary in pretty much every imaginable way.

  2. I think those files are quality filtered Illumina reads. SRA = Sequence Read Achieve. SRR = SRA RUN accession. ERA = EMBL SRA. ERR = ERA RUN accession.

  3. You should look into transcriptomics data. Predicting such stuff in silico is currently pretty much undoable.

share|improve this answer
    
I think the OP meant differences between different assemblies of the same genome. For example, differences in gene coordinates between UCSC and EnsEMBL. –  terdon Jul 14 at 17:29

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.