5
$\begingroup$

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.

$\endgroup$
8
  • $\begingroup$ 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? $\endgroup$
    – Alan Boyd
    Jul 14, 2014 at 11:43
  • $\begingroup$ An entire genome sequence. There is a FASTA file for each chromosome. $\endgroup$
    – satnam
    Jul 14, 2014 at 12:11
  • 1
    $\begingroup$ You completely ignored Central Dogma of Life. You haven't considered the RNA. $\endgroup$ Jul 14, 2014 at 12:23
  • 3
    $\begingroup$ 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 $\endgroup$
    – satnam
    Jul 14, 2014 at 13:12
  • 1
    $\begingroup$ As a general note, please don't ask multiple questions on a single post. In future, please split each question into it's own post instead. I have answered all three here since in this particular case, your questions are basically irrelevant since the main problem is a huge underestimation of the complexity of the task you are attempting. Good luck though! $\endgroup$
    – terdon
    Jul 14, 2014 at 14:58

2 Answers 2

14
$\begingroup$

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 alone. 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.

$\endgroup$
8
  • 1
    $\begingroup$ Thanks for the detailed post. I'm going to use this as a reference going forward and look into the topics you've mentioned. $\endgroup$
    – satnam
    Jul 14, 2014 at 17:40
  • 2
    $\begingroup$ @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). $\endgroup$
    – terdon
    Jul 14, 2014 at 18:04
  • 1
    $\begingroup$ Because there's an xkcd for everything...xkcd.com/793 $\endgroup$
    – swbarnes2
    Jul 15, 2014 at 1:41
  • $\begingroup$ @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 $\endgroup$
    – satnam
    Jul 15, 2014 at 10:14
  • 1
    $\begingroup$ @nether that's exactly what I'm talking about. Note that i) they used M. genitalium, the simplest organism known to man, which is orders of magnitude simpler than a "white blood cell" (there's no such thing by the way, there are dozens of cell types called that) ii) they used a hell of a lot more information than the DNA sequence and iii) despite all this, the model is extremely limited. It can predict certain behaviors but cannot be considered a "true" representation of the living cell. My main point is that expecting to model a cell by using its DNA sequence is impossible. $\endgroup$
    – terdon
    Jul 15, 2014 at 11:01
2
$\begingroup$

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.

$\endgroup$
1
  • $\begingroup$ I think the OP meant differences between different assemblies of the same genome. For example, differences in gene coordinates between UCSC and EnsEMBL. $\endgroup$
    – terdon
    Jul 14, 2014 at 17:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .