You are on page 1of 5

CH 152.

1: Biochemistry, Laboratory
Bioinformatics Group
Project Proposal

Development of a Computer Program for Translating RNA Transcribed from DNA to Protein using
Octave 3.2.4

I. Introduction
The central dogma describes the process of synthesizing proteins using DNA as starting point:
DNA undergoes transcription to synthesize RNA which is then utilized by the process of translation in
producing a polypeptide specific to a particular genetic code. By action of various enzymes, DNAs are
transcribed and proteins are formed at a very rapid rate. Because DNA sequences provide us with the
information on what proteins they can produce, it is indeed a necessary tool for us to at least predict the
kind of protein associated with a particular gene. However, humans cannot manually work at that fast
rate of transcribing and translating especially when DNA sequences contain thousands of nucleotides. As
such, it would be of great help if computers can do the tedious work of translating genetic codes to
proteins.

In this proposal, Octave 3.2.4 will be utilized. Octave is an open-source interactive software
system that is widely used by engineers and scientists, in both industry and academe for performing
numerical computations, and for developing and testing mathematical algorithms. Octave will be used
because of the simplicity of its syntax, which is a major concern because of the short time frame allotted
for this project. However, the trade-off for this simple syntax is that nucleotides and amino acids should
be represented first as integers and not as character strings.

II. Methodology
1. Initialize numerical values for the nucleotides. Type in nucleotide in the prompt and press enter.
2. Type in the template DNA strand in the form dna = [A C ... T G]. Press enter.
3. Run the protein.m script by typing in protein. Press enter.
4. The prompt will then show the mRNA and the tRNA for the template DNA entered. Also, the
polypeptide aasequence will be shown.

III. Source Code


%Source code written by KJCBondoc
%initializer for nucleotides case A, mrna = dna;
(nucleotide.m) dna(x) = U; mrna
A = 1; case C,
C = 2; dna(x) = G; %mRNA to tRNA
T = 3; case T, x = 1;
G = 4; dna(x) = A; SIZE_mrna = size(mrna);
U = 5; case G, while x ~= SIZE_mrna(2) + 1
dna(x) = C; switch mrna(x)
%protein.m otherwise, case A,
%DNA to mRNA via transription disp('Please check your mrna(x) = U;
x = 1; DNA sequence'); case C,
SIZE_dna = size(dna); end mrna(x) = G;
while x ~= SIZE_dna(2) + 1 x = x + 1; case G,
switch dna(x) end mrna(x) = C;
case U, trna(x) = C; ifelse;
mrna(x) = A; case U,
otherwise, trna(x) = A; end
disp('Please check your otherwise, case C,
DNA sequence'); disp('Please check your x = x + 1;
end DNA sequence'); switch mrna(x)
x = x + 1; end case U,
end x = x + 1; mrna(x) = Serine;
trna = mrna; end x = x + 1;
trna mrna = trna; ifelse;
mrna;
translation case C,
%mRNA to AA: standard genetic mrna(x) = Serine;
%initializer for AAs code x = x + 1;
(aminoacids.m) x = 1; ifelse;
Alanine = 1; SIZE_mrna = size(mrna);
Valine = 2; case A,
Phenylalanine = 3; aminoacids mrna(x) = Serine;
Tryptophan = 4; sourcetrans x = x + 1;
Leucine = 5; ifelse;
Isoleucine = 6; %sourcetrans.m
Methionine = 7; switch mrna(x) otherwise
Proline = 8; case U, mrna(x) = Serine;
Serine = 9; x = x + 1; x = x + 1;
Threonine = 10; switch mrna(x) ifelse;
Tyrosine = 11; case U,
Cysteine = 12; x = x + 1; end
Asparagine = 13; switch mrna(x) case A,
Glutamine = 14; case U, x = x + 1;
Histidine = 15; mrna(x) = switch mrna(x)
Glycine = 16; Phenylalanine; case U,
Aspartate = 17; x = x + 1; mrna(x) = Tyrosine;
Glutamate = 18; ifelse; x = x + 1;
Lysine = 19; ifelse;
Arginine = 20; case C,
STOP = 0; mrna(x) = case C,
Phenylalanine; mrna(x) = Tyrosine;
%translation.m x = x + 1; x = x + 1;
%tRNA to mRNA ifelse; ifelse;
x = 1;
SIZE_trna = size(trna); case A, case A,
while x ~= SIZE_trna(2) + 1 mrna(x) = Leucine; mrna(x) = STOP;
switch trna(x) x = x + 1; x = x + 1;
case A, ifelse; ifelse;
trna(x) = U;
case C, otherwise, otherwise
trna(x) = G; mrna(x) = Leucine; mrna(x) = STOP;
case G, x = x + 1; x = x + 1;
ifelse; ifelse; x = x + 1;
ifelse;
end otherwise,
otherwise, mrna(x) = Leucine; otherwise
x = x + 1; x = x + 1; mrna(x) =
switch mrna(x) ifelse; Glutamine;
case U, x = x + 1;
mrna(x) = Cysteine; end ifelse;
x = x + 1; case C,
ifelse; x = x + 1; end
switch mrna(x) otherwise,
case C, case U, x = x + 1;
mrna(x) = Cysteine; mrna(x) = Proline; switch mrna(x)
x = x + 1; x = x + 1; case U,
ifelse; ifelse; mrna(x) = Arginine;
x = x + 1;
case A, case C, ifelse;
mrna(x) = STOP; mrna(x) = Proline;
x = x + 1; x = x + 1; case C,
ifelse; ifelse; mrna(x) = Arginine;
x = x + 1;
otherwise case A, ifelse;
mrna(x) = mrna(x) = Proline;
Tryptophan; x = x + 1; case A,
x = x + 1; ifelse; mrna(x) = Arginine;
ifelse; x = x + 1;
otherwise, ifelse;
end mrna(x) = Proline;
end x = x + 1; otherwise
case C, ifelse; mrna(x) = Arginine;
x = x + 1; x = x + 1;
switch mrna(x) end ifelse;
case U, case A,
x = x + 1; x = x + 1; end
switch mrna(x) switch mrna(x) end
case U, case U, case A,
mrna(x) = Leucine; mrna(x) = Histidine; x = x + 1;
x = x + 1; x = x + 1; switch mrna(x)
ifelse; ifelse; case U,
x = x + 1;
case C, case C, switch mrna(x)
mrna(x) = Leucine; mrna(x) = Histidine; case U,
x = x + 1; x = x + 1; mrna(x) =
ifelse; ifelse; Isoleucine;
x = x + 1;
case A, case A, ifelse;
mrna(x) = Leucine; mrna(x) =
x = x + 1; Glutamine; case C,
mrna(x) = switch mrna(x) end
Isoleucine; case U, otherwise
x = x + 1; mrna(x) = x = x + 1;
ifelse; Asparagine; switch mrna(x)
x = x + 1; case U,
case A, ifelse; x = x + 1;
mrna(x) = switch mrna(x)
Isoleucine; case C, case U,
x = x + 1; mrna(x) = mrna(x) = Valine;
ifelse; Asparagine; x = x + 1;
x = x + 1; ifelse;
otherwise, ifelse;
mrna(x) = case C,
Methionine; case A, mrna(x) = Valine;
x = x + 1; mrna(x) = Lysine; x = x + 1;
ifelse; x = x + 1; ifelse;
ifelse;
end case A,
case C, otherwise mrna(x) = Valine;
x = x + 1; mrna(x) = Lysine; x = x + 1;
switch mrna(x) x = x + 1; ifelse;
case U, ifelse;
mrna(x) = otherwise,
Threonine; end mrna(x) = Valine;
x = x + 1; otherwise, x = x + 1;
ifelse; x = x + 1; ifelse;
switch mrna(x)
case C, case U, end
mrna(x) = mrna(x) = Serine; case C,
Threonine; x = x + 1; x = x + 1;
x = x + 1; ifelse; switch mrna(x)
ifelse; case U,
case C, mrna(x) = Alanine;
case A, mrna(x) = Serine; x = x + 1;
mrna(x) = x = x + 1; ifelse;
Threonine; ifelse;
x = x + 1; case C,
ifelse; case A, mrna(x) = Alanine;
mrna(x) = Arginine; x = x + 1;
otherwise x = x + 1; ifelse;
mrna(x) = ifelse;
Threonine; case A,
x = x + 1; otherwise mrna(x) = Alanine;
ifelse; mrna(x) = Arginine; x = x + 1;
x = x + 1; ifelse;
end ifelse;
case A, otherwise
x = x + 1; end mrna(x) = Alanine;
x = x + 1; x = x + 1;
ifelse; ifelse; case A,
mrna(x) = Glycine
end otherwise x = x + 1;
case A, mrna(x) = ifelse;
x = x + 1; Glutamate
switch mrna(x) x = x + 1; otherwise
case U, ifelse; mrna(x) = Glycine
mrna(x) = x = x + 1;
Aspartate end ifelse;
x = x + 1; otherwise
ifelse; x = x + 1; end
switch mrna(x) end
case C, case U, end
imrna(x) = mrna(x) = Glycine
Aspartate x = x + 1; %ifelse.m
x = x + 1; ifelse; if x<=SIZE_mrna(2)
ifelse; sourcetrans;
case C, else
case A, mrna(x) = Glycine aasequence = mrna;
mrna(x) = x = x + 1; aasequence
Glutamate ifelse; end

IV. Current Status


A. The program described by the source code above:
1. Can translate DNA (if the number of nucleotides is divisible by 3) to RNA, and RNA to polypeptide.
2. Can give the corresponding tRNA for the mRNA.

B. The following issues should be solved:


1. The program cannot process a DNA if the number of nucleotides is not divisible by 3.
2. Octave works on numerical values. Hence, it outputs DNA, RNA and Polypeptide sequences as
numbers.
3. The ifelse.m script fails to run when the number of nucleotides in DNA is not divisible by 3.
4. For the polypeptide vector aasequence, all data except for those located at index divisible by 3 should
be removed/hidden because they do not take part of the real amino acid sequence.

C. Possible program extension:


1. Export the polypeptide to an external program that can show the polypeptide’s secondary/tertiary
structure.

You might also like