== The Genetic Code, by computer ==
 
== The Genetic Code, by computer ==
 +
First, login to the LMU CS server using ssh. Type in the following in a command prompt (Windows) or terminal (Mac) window:
 +
ssh <username@my.cs.lmu.edu>
 +
Enter your password. Note: You will not visibly see the cursor move when typing in your password so just keep typing.
 +
Then change directories to dondi's using the following commands to find the practice files and other miscellaneous files:
 +
cd ~dondi/xmlpipedb/data
 +
Here, you can use the command <code>ls</code> in order to see the list of files in the directory. Then we can start manipulating some files.
 +
 +
 
=== Complement of DNA ===
 
=== Complement of DNA ===
 
To find the complementary strand when given a standard 5' to 3' DNA strand, match each of the four base pairs A,T,C, and G with T, A, G, and C, respectively. Done in the computer, we use the ''sed'' command for replacing the bases with the ones they correspond to.
 
To find the complementary strand when given a standard 5' to 3' DNA strand, match each of the four base pairs A,T,C, and G with T, A, G, and C, respectively. Done in the computer, we use the ''sed'' command for replacing the bases with the ones they correspond to.
To find the complement of the DNA strand, the following command is used:
+
To find the complement of the DNA strand in the file ''prokaryote.txt'', the following command is used:
 
  Command: sed "y/actg/tgac/" prokaryote.txt
 
  Command: sed "y/actg/tgac/" prokaryote.txt
 
  Yields:  agatgatataaagttatccatgctaccggtttcttctgttataacttgaactttgcaacggattatggtacaaggcgcatattgggtcggcggtcaaggcgaccgccgtaaaattg
 
  Yields:  agatgatataaagttatccatgctaccggtttcttctgttataacttgaactttgcaacggattatggtacaaggcgcatattgggtcggcggtcaaggcgaccgccgtaaaattg
 
For the +1 reading frame, the above commands would suffice and when we combine them into a pipeline of commands, we get the following:
 
For the +1 reading frame, the above commands would suffice and when we combine them into a pipeline of commands, we get the following:
 
  +1:    cat ''sequence_file'' | sed "s/t/u/g" | sed "s/.../& /g" | sed -f genetic-code.sed | sed "y/acug/    /" | sed "s/ //g"
 
  +1:    cat ''sequence_file'' | sed "s/t/u/g" | sed "s/.../& /g" | sed -f genetic-code.sed | sed "y/acug/    /" | sed "s/ //g"
Yields: STIFQ-VRWPKKTILNLKRCLIPCSAYNPAASSAGGIL
      
However, for the +2 and +3 reading frames, we have to shift reading the codons by 1 and 2 letters, respectively. The same commands from above are still used, but we add another ''sed'' command so that we shift by a certain number of letters. For +2, we add the command:
 
However, for the +2 and +3 reading frames, we have to shift reading the codons by 1 and 2 letters, respectively. The same commands from above are still used, but we add another ''sed'' command so that we shift by a certain number of letters. For +2, we add the command:
 
  +2:    cat ''sequence_file'' | sed "s/t/u/g" | sed "s/^.//g" | sed "s/.../& /g" | sed -f genetic-code.sed |
 
  +2:    cat ''sequence_file'' | sed "s/t/u/g" | sed "s/^.//g" | sed "s/.../& /g" | sed -f genetic-code.sed |
 
         sed "y/acug/    /" | sed "s/ //g"
 
         sed "y/acug/    /" | sed "s/ //g"
Yields: LLYFNRYDGQRRQY-T-NVA-YHVPRITQPPVPLAAF-
      
For +3, similar to +2, we use the command:
 
For +3, similar to +2, we use the command:
 
  +3:    cat ''sequence_file'' | sed "s/t/u/g" | sed "s/^..//g" | sed "s/.../& /g" | sed -f genetic-code.sed |  
 
  +3:    cat ''sequence_file'' | sed "s/t/u/g" | sed "s/^..//g" | sed "s/.../& /g" | sed -f genetic-code.sed |  
 
         sed "y/acug/    /" | sed "s/ //g"
 
         sed "y/acug/    /" | sed "s/ //g"
Yields: YYISIGTMAKEDNIELETLPNTMFRV-PSRQFRWRHFN
      
For the -1, -2, and -3 reading frames, 2 additional commands are needed: the commands ''rev'', to reverse the strand, and ''sed "y/acug/ugac/"'', to find the complementary mRNA strand. By doing this, we do not have to deviate much from our previous commands shown above. Instead, we are only adding 2 additional steps. The resulting reading frames are as follows:
 
For the -1, -2, and -3 reading frames, 2 additional commands are needed: the commands ''rev'', to reverse the strand, and ''sed "y/acug/ugac/"'', to find the complementary mRNA strand. By doing this, we do not have to deviate much from our previous commands shown above. Instead, we are only adding 2 additional steps. The resulting reading frames are as follows:
 
  -1:    rev ''sequence_file'' | sed "s/t/u/g" | sed "y/acug/ugac/" | sed "s/.../& /g" | sed -f genetic-code.sed |
 
  -1:    rev ''sequence_file'' | sed "s/t/u/g" | sed "y/acug/ugac/" | sed "s/.../& /g" | sed -f genetic-code.sed |
 
         sed "y/acug/    /" | sed "s/ //g"
 
         sed "y/acug/    /" | sed "s/ //g"
Yields: VKMPPAELAAGLYAEHGIRQRFKFNIVFFGHRTY-NIV
      
  -2:    rev ''sequence_file'' | sed "s/t/u/g" | sed "y/acug/ugac/" | sed "s/^.//g" | sed "s/.../& /g" | sed -f genetic-code.sed |  
 
  -2:    rev ''sequence_file'' | sed "s/t/u/g" | sed "y/acug/ugac/" | sed "s/^.//g" | sed "s/.../& /g" | sed -f genetic-code.sed |  
 
         sed "y/acug/    /" | sed "s/ //g"
 
         sed "y/acug/    /" | sed "s/ //g"
Yields: LKCRQRNWRLGYTRNMVLGNVSSSILSSLAIVPIEI--
      
  -3:    rev ''sequence_file'' | sed "s/t/u/g" | sed "y/acug/ugac/" | sed "s/^..//g" | sed "s/.../& /g" | sed -f genetic-code.sed |  
 
  -3:    rev ''sequence_file'' | sed "s/t/u/g" | sed "y/acug/ugac/" | sed "s/^..//g" | sed "s/.../& /g" | sed -f genetic-code.sed |  
 
         sed "y/acug/    /" | sed "s/ //g"
 
         sed "y/acug/    /" | sed "s/ //g"
Yields: -NAASGTGGWVIRGTWY-ATFQVQYCLLWPSYLLKYSR
            
In tallying the number of occurrences of <code>ATG</code> in ''hs_ref_GRCh37_chr19.fa'':
 
In tallying the number of occurrences of <code>ATG</code> in ''hs_ref_GRCh37_chr19.fa'':
Exception encountered, of type "Error"
[d9c2ca56] /biodb/fall2015/index.php?diff=1597&oldid=1588&title=Troque_Week_3 Error from line 434 of /apps/xmlpipedb/biodb/fall2015/includes/diff/DairikiDiff.php: Call to undefined function each()
Backtrace:
#0 /apps/xmlpipedb/biodb/fall2015/includes/diff/DairikiDiff.php(544): DiffEngine->diag()
#1 /apps/xmlpipedb/biodb/fall2015/includes/diff/DairikiDiff.php(344): DiffEngine->compareSeq()
#2 /apps/xmlpipedb/biodb/fall2015/includes/diff/DairikiDiff.php(227): DiffEngine->diffLocal()
#3 /apps/xmlpipedb/biodb/fall2015/includes/diff/DairikiDiff.php(721): DiffEngine->diff()
#4 /apps/xmlpipedb/biodb/fall2015/includes/diff/DairikiDiff.php(859): Diff->__construct()
#5 /apps/xmlpipedb/biodb/fall2015/includes/diff/DairikiDiff.php(980): MappedDiff->__construct()
#6 /apps/xmlpipedb/biodb/fall2015/includes/diff/TableDiffFormatter.php(194): WordLevelDiff->__construct()
#7 /apps/xmlpipedb/biodb/fall2015/includes/diff/DiffFormatter.php(140): TableDiffFormatter->changed()
#8 /apps/xmlpipedb/biodb/fall2015/includes/diff/DiffFormatter.php(82): DiffFormatter->block()
#9 /apps/xmlpipedb/biodb/fall2015/includes/diff/DifferenceEngine.php(888): DiffFormatter->format()
#10 /apps/xmlpipedb/biodb/fall2015/includes/diff/DifferenceEngine.php(802): DifferenceEngine->generateTextDiffBody()
#11 /apps/xmlpipedb/biodb/fall2015/includes/diff/DifferenceEngine.php(733): DifferenceEngine->generateContentDiffBody()
#12 /apps/xmlpipedb/biodb/fall2015/includes/diff/DifferenceEngine.php(662): DifferenceEngine->getDiffBody()
#13 /apps/xmlpipedb/biodb/fall2015/includes/diff/DifferenceEngine.php(632): DifferenceEngine->getDiff()
#14 /apps/xmlpipedb/biodb/fall2015/includes/diff/DifferenceEngine.php(453): DifferenceEngine->showDiff()
#15 /apps/xmlpipedb/biodb/fall2015/includes/page/Article.php(795): DifferenceEngine->showDiffPage()
#16 /apps/xmlpipedb/biodb/fall2015/includes/page/Article.php(506): Article->showDiffPage()
#17 /apps/xmlpipedb/biodb/fall2015/includes/actions/ViewAction.php(44): Article->view()
#18 /apps/xmlpipedb/biodb/fall2015/includes/MediaWiki.php(395): ViewAction->show()
#19 /apps/xmlpipedb/biodb/fall2015/includes/MediaWiki.php(273): MediaWiki->performAction()
#20 /apps/xmlpipedb/biodb/fall2015/includes/MediaWiki.php(566): MediaWiki->performRequest()
#21 /apps/xmlpipedb/biodb/fall2015/includes/MediaWiki.php(414): MediaWiki->main()
#22 /apps/xmlpipedb/biodb/fall2015/index.php(44): MediaWiki->run()
#23 {main}