Difference between revisions of "Bklein7 Week 4"

From LMU BioDB 2015
Jump to: navigation, search
(Added further to the methods under the tagging subheading)
(Added stop codon methods to the tagging section)
Line 15: Line 15:
 
**After identifying the minus 35 box, I broke the nucleotide sequence up into two lines as detailed above. Because we know that the minus 10 box exists 17 nucleotides after the minus 35 box and is 6 nucleotides long, this meant that the minus 10 box presumably would always consist of characters 18-23 in line 2 of the code. I verified this for the sequence present in ''infA-E.coli-K12.txt'' by checking that the sequence 17 nucleotides after the tagged minus 35 box did indeed match the minus 10 box sequence.
 
**After identifying the minus 35 box, I broke the nucleotide sequence up into two lines as detailed above. Because we know that the minus 10 box exists 17 nucleotides after the minus 35 box and is 6 nucleotides long, this meant that the minus 10 box presumably would always consist of characters 18-23 in line 2 of the code. I verified this for the sequence present in ''infA-E.coli-K12.txt'' by checking that the sequence 17 nucleotides after the tagged minus 35 box did indeed match the minus 10 box sequence.
 
**To automate the tagging of the minus 10 box, I added a series of two separate sed commands to the pipe that would subjectively find this sequence based on its location in line 2.
 
**To automate the tagging of the minus 10 box, I added a series of two separate sed commands to the pipe that would subjectively find this sequence based on its location in line 2.
**#I wrote the first sed command to add the tag <code><minus10box></code> after the 17th character of the second line, taking advantage of the sed -r repetition shortcut.
+
**#I wrote the first sed command to add the tag <code><minus10box></code> after the 17th character of the second line, taking advantage of the <code>sed -r</code> repetition shortcut.
 
**#I wrote the second sed command to add the tag <code></minus10box></code> 6 characters after the first minus 10 box tag.
 
**#I wrote the second sed command to add the tag <code></minus10box></code> 6 characters after the first minus 10 box tag.
 
**#With the addition of these two commands, my command sequence was as follows:
 
**#With the addition of these two commands, my command sequence was as follows:
Line 51: Line 51:
 
   sed -r "6s/aaaaggt.*gcctttt.{4}/&<\/terminator>/g"  
 
   sed -r "6s/aaaaggt.*gcctttt.{4}/&<\/terminator>/g"  
 
*'''stop codon'''
 
*'''stop codon'''
**Having isolated the region of the sequence between the start codon and the terminator region in line 5, I set out to identify the stop codon within this line.  
+
**Having isolated the region of the sequence between the start codon and the terminator region in line 5, I set out to identify the stop codon within this line. This presented two main challenges. First, it was necessary to search for all three possible stop codons at once in order to identify the first occurrence of a stop codon within the line. Second, it was also necessary to account for reading frames when finding the stop codon.
 +
**To address the above problems, I found coding solutions.
 +
**#To force sed to search for the stop codon in the same reading frame as the start codon, I added a sed command to add a space every three characters in the 5th line.
 +
**#Next, I read [[https://xmlpipedb.cs.lmu.edu/biodb/fall2015/index.php/More_Text_Processing_Features here]] that the <code>sed -r</code> ''multiple choice'' function could be evoked using a vertical bar between different search options. Combining this with the ability to search by line and to replace only the first occurrence of the search term, I wrote a sed command to replace the first instance of any of the three stop codons in the 5th line with the stop codon tags and added it to the pipe.
 +
**#Finally, I added a command to the sequence to delete spaces present in the 5th line that were no longer necessary.
 +
**#Piping these commands yielded the following sequence:
 +
  sed "s/tt[gt]ac[at]/<minus35box>&<\/minux35box>\n/1" infA-E.coli-K12.txt | sed -r "2s/^.   
 +
  {17}/&<minus10box>/g" | sed "s/<minus10box>....../&<\/minus10box>/g" | sed -r
 +
  "s/<\/minus10box>.{5}/&<tss>/g;s/<tss>./&<\/tss>\n/g" | sed "3s/gagg/<rbs>&<\/rbs>\n/1"
 +
  sed "4s/atg/<start_codon>&<\/start_codon>\n/1" | sed "5s/aaaaggt/\n<terminator>&/g" |
 +
  sed -r "6s/aaaaggt.*gcctttt.{4}/&<\/terminator>/g" | sed"5s/.../& /g" | sed -r "5s/taa|tag|tga/
 +
  <stop_codon>&<\/stop_codon>/g" | sed "5s/ //g"
  
 +
*'''Combining Lines'''
 +
**To conclude
 
# What is the ''exact'' mRNA sequence that is transcribed from this gene?
 
# What is the ''exact'' mRNA sequence that is transcribed from this gene?
 
# What is the amino acid sequence that is translated from this mRNA?
 
# What is the amino acid sequence that is translated from this mRNA?

Revision as of 23:11, 28 September 2015

Transcription and Translation "Taken to the Next Level"

This assignment centers on text manipulation of the nucleotide sequence present in the file infA-E.coli-K12.txt. Therefore, I began this assignment by accessing the directory ~dondi/xmlpipedb/data and copying this file to my personal directory using the command cp infA-E.coli-K12.txt bklein7. From there, I evoked cd to return to the directory bklein7 and begin the assignment.

Using Code to Tag the Nucleotide Sequence (Part #1)

  • Minus 35 Box
    • I began by identifying the minus 35 box. Using the tips from the assignment, I used the command grep "tt[gt]ac[at]" infA-E.coli-K12.txt to identify sequences matches for the minus 35 box. There were two matches.
    • To identify which match was the the minus 35 box, I performed the command grep "[ct]at[at]at" infA-E.coli-K12.txt to identify possible minus 10 box matches. Because we know the minus 10 box match must occur 17 nucleotides after the minus 35 box, only one pair of matches for the minus 35 & 10 boxes was possible. Although this process does require some subjective analysis, we discussed in class that this was permissible in this case to initiate the tagging process.
    • Having identified the minus 35 box as the first of the two grep matches, I used a sed command to tag this sequence.
      1. The sed command was in the form s///1 to manipulate the first match to the sequence tt[gt]ac[at].
      2. The "\" symbol was used to escape the forward slash in the tag.
      3. A new line was started after the tag to make it simpler to perform subsequent operations on the sequence.
      4. The command is as follows:
 sed "s/tt[gt]ac[at]/<minus35box>&<\/minux35box>\n/1" infA-E.coli-K12.txt
  • Minus 10 Box
    • After identifying the minus 35 box, I broke the nucleotide sequence up into two lines as detailed above. Because we know that the minus 10 box exists 17 nucleotides after the minus 35 box and is 6 nucleotides long, this meant that the minus 10 box presumably would always consist of characters 18-23 in line 2 of the code. I verified this for the sequence present in infA-E.coli-K12.txt by checking that the sequence 17 nucleotides after the tagged minus 35 box did indeed match the minus 10 box sequence.
    • To automate the tagging of the minus 10 box, I added a series of two separate sed commands to the pipe that would subjectively find this sequence based on its location in line 2.
      1. I wrote the first sed command to add the tag <minus10box> after the 17th character of the second line, taking advantage of the sed -r repetition shortcut.
      2. I wrote the second sed command to add the tag </minus10box> 6 characters after the first minus 10 box tag.
      3. With the addition of these two commands, my command sequence was as follows:
 sed "s/tt[gt]ac[at]/<minus35box>&<\/minux35box>\n/1" infA-E.coli-K12.txt | sed -r "2s/^.    
 {17}/&<minus10box>/g" | sed "s/<minus10box>....../&<\/minus10box>/g"
  • tss
    • Because the transcription start site is located 12 nucleotides from the beginning of the 6 nucleotide long minus 10 box, I reasoned that it would be simplest to calculate its location as 6 characters after the </minus10box> tag. This means that there are 5 characters between that tag before the <tss> tag should be inserted. Subsequently, the </tss> end tag should be placed one character after the tss start tag.
      1. To accomplish this, I strung together two sed commands using a semicolon to both insert the start and end tags at the right locations.
      2. I piped this command to the growing sequence:
 sed "s/tt[gt]ac[at]/<minus35box>&<\/minux35box>\n/1" infA-E.coli-K12.txt | sed -r "2s/^.    
 {17}/&<minus10box>/g" | sed "s/<minus10box>....../&<\/minus10box>/g" | sed -r 
 "s/<\/minus10box>.{5}/&<tss>/g;s/<tss>./&<\/tss>\n/g"
  • rbs
    • The consensus sequence for the ribosome binding site is gagg. Although a quick grep search shows there is only one instance of this sequence in infA-E.coli-K12.txt, I chose to write code that would label only the first instance of gagg after the tss (as there could be many instances of this sequence in a long gene). To accomplish this, I wrote a sed command to insert the rbs labels before and after the first occurrence of gagg in the third line (this line begins after the tss). In addition, I decided to start a new line after the rbs. I piped this command to the sequence:
 sed "s/tt[gt]ac[at]/<minus35box>&<\/minux35box>\n/1" infA-E.coli-K12.txt | sed -r "2s/^.    
 {17}/&<minus10box>/g" | sed "s/<minus10box>....../&<\/minus10box>/g" | sed -r 
 "s/<\/minus10box>.{5}/&<tss>/g;s/<tss>./&<\/tss>\n/g" | sed "3s/gagg/<rbs>&<\/rbs>\n/1" 
  • start codon
    • The method I used for labelling the start codon was nearly identical to that used to label the rbs above. The only difference was that the sed command I wrote was specified to work on the 4th line (beginning after the rbs) instead of the third line. With the addition of this command, the new command sequence labelled the first instance of the sequence atg after the rbs as the start codon. The updated version of the code was as follows:
 sed "s/tt[gt]ac[at]/<minus35box>&<\/minux35box>\n/1" infA-E.coli-K12.txt | sed -r "2s/^.    
 {17}/&<minus10box>/g" | sed "s/<minus10box>....../&<\/minus10box>/g" | sed -r 
 "s/<\/minus10box>.{5}/&<tss>/g;s/<tss>./&<\/tss>\n/g" | sed "3s/gagg/<rbs>&<\/rbs>\n/1"
 sed "4s/atg/<start_codon>&<\/start_codon>\n/1"
  • terminator
    • I chose to tag the terminator region prior to tagging the stop codon. This is because I found it most sensible to separate the region of the sequence between the start codon and terminator into its own line prior to writing code to find and tag the stop codon.
    • The terminator region in this sequence begins with the sequence aaaaggt. Additionally, after going through the hairpin base pairing exercise for this sequence in class, I knew the terminator hairpin ended with the sequence gcctttt. However, there are 4 more nucleotides after this before the actual end of the terminator region.
    • Thus, I set out to tag the terminator knowing its end points.
      1. First, I wrote a command to identify the terminator start sequence and insert a line break as well as the <terminator> tag prior to it. The line break would function by partitioning off the region of the sequence between the start codon and the terminator.
      2. Next, I wrote a command using the wildcard function to identify the entire terminator hairpin sequence, account for the remaining 4 nucleotides in the terminator, and place the </terminator> tag at its end. It wasn't necessary to introduce a new line break after this tag.
      3. The updated code is as follows:
 sed "s/tt[gt]ac[at]/<minus35box>&<\/minux35box>\n/1" infA-E.coli-K12.txt | sed -r "2s/^.    
 {17}/&<minus10box>/g" | sed "s/<minus10box>....../&<\/minus10box>/g" | sed -r 
 "s/<\/minus10box>.{5}/&<tss>/g;s/<tss>./&<\/tss>\n/g" | sed "3s/gagg/<rbs>&<\/rbs>\n/1"
 sed "4s/atg/<start_codon>&<\/start_codon>\n/1" | sed "5s/aaaaggt/\n<terminator>&/g" | 
 sed -r "6s/aaaaggt.*gcctttt.{4}/&<\/terminator>/g" 
  • stop codon
    • Having isolated the region of the sequence between the start codon and the terminator region in line 5, I set out to identify the stop codon within this line. This presented two main challenges. First, it was necessary to search for all three possible stop codons at once in order to identify the first occurrence of a stop codon within the line. Second, it was also necessary to account for reading frames when finding the stop codon.
    • To address the above problems, I found coding solutions.
      1. To force sed to search for the stop codon in the same reading frame as the start codon, I added a sed command to add a space every three characters in the 5th line.
      2. Next, I read [here] that the sed -r multiple choice function could be evoked using a vertical bar between different search options. Combining this with the ability to search by line and to replace only the first occurrence of the search term, I wrote a sed command to replace the first instance of any of the three stop codons in the 5th line with the stop codon tags and added it to the pipe.
      3. Finally, I added a command to the sequence to delete spaces present in the 5th line that were no longer necessary.
      4. Piping these commands yielded the following sequence:
 sed "s/tt[gt]ac[at]/<minus35box>&<\/minux35box>\n/1" infA-E.coli-K12.txt | sed -r "2s/^.    
 {17}/&<minus10box>/g" | sed "s/<minus10box>....../&<\/minus10box>/g" | sed -r 
 "s/<\/minus10box>.{5}/&<tss>/g;s/<tss>./&<\/tss>\n/g" | sed "3s/gagg/<rbs>&<\/rbs>\n/1"
 sed "4s/atg/<start_codon>&<\/start_codon>\n/1" | sed "5s/aaaaggt/\n<terminator>&/g" | 
 sed -r "6s/aaaaggt.*gcctttt.{4}/&<\/terminator>/g" | sed"5s/.../& /g" | sed -r "5s/taa|tag|tga/
 <stop_codon>&<\/stop_codon>/g" | sed "5s/ //g"
  • Combining Lines
    • To conclude
  1. What is the exact mRNA sequence that is transcribed from this gene?
  2. What is the amino acid sequence that is translated from this mRNA?

Preliminary Code

 sed "s/tt[gt]ac[at]/<minus35box>&<\/minux35box>\n/1" infA-E.coli-K12.txt | sed -r "2s/^.    
 {17}/&<minus10box>/g" | sed "s/<minus10box>....../&<\/minus10box>/g" | sed -r 
 "s/<\/minus10box>.{5}/&<tss>/g;s/<tss>./&<\/tss/g" | sed "3s/gagg/<rbs>&<\/rbs>\n/1" 
 | sed "4s/atg/<start_codon>&<\/start_codon>\n/1" | sed "5s/aaaaggt/\n<terminator>&/g" | sed -
 r "6s/aaaaggt.*gcctttt.{4}/&<\/terminator>/g" | sed "4s/.../& /g" | sed -r 
 "4s/taa|tag|tga/<stop_codon>&<\/stop_codon>/g" | sed "4s/ //g" | sed ':a;N;$!ba;s/\n//g'
  • String together redundant sed commands with ; or find a way to make them more compact
  • Verify when the terminator sequence starts
  • Is there a way to count backwards in a line with sed? or so replace only the last instance that matches? previous experiments
    • sed "s/x.*$/y/g" - does not work, wild card overtakes the last instance
    • sed "s/x/y/1$" - does not work
    • answer: use rev commands!

Links

Assignments Pages

Individual Journal Entries

Shared Journal Entries