13 de abril de 2012

Código genético en formato LaTeX

Seguro que si lees este blog, habrás visto alguna vez en un libro de texto la tabla de codones de RNA que codifican para los diferentes aminoácidos de alguna de las siguientes formas:


Pero seguramente pocos de vosotros os habéis atrevido a reproducir dicha tabla en código LaTeX, es un ejercicio recomendable que permite entrenarse con casi todas las particularidades de las tablas en LaTeX:

 \documentclass[12pt,spanish]{book}  
   
 \usepackage[utf8]{inputenc}  
 \usepackage{multirow}  
 \usepackage{rotating}  
   
 \begin{document}  
             
      \begin{table}[H]  
           \begin{center}  
           \begin{tabular}[t]{cccccccccccc}  
             
                & & \multicolumn{8}{c}{\textbf{\uppercase{Segunda base}}} \\  
                  
                & & \multicolumn{2}{c}{\textbf{U}} & \multicolumn{2}{c}{\textbf{C}} & \multicolumn{2}{c}{\textbf{A}} & \multicolumn{2}{c}{\textbf{G}} & \\ \cline{3-10}  
             
                \multirow{16}{*}{\rotatebox{-90}{\mbox{\textbf{\uppercase{Primera base}}}}} & \multirow{4}{*}{\textbf{U}} & \multicolumn{1}{|c}{UUU} & \multirow{2}{*}{Phe} & \multicolumn{1}{|c}{UCU} & \multirow{4}{*}{Ser} & \multicolumn{1}{|c}{UAU} & \multirow{2}{*}{Tyr} & \multicolumn{1}{|c}{UGU} & \multirow{2}{*}{Cys} & \multicolumn{1}{|c}{\textbf{U}} & \multirow{16}{*}{\rotatebox{90}{\mbox{\textbf{\uppercase{Tercera base}}}}}\\  
                & & \multicolumn{1}{|c}{UUC} & & \multicolumn{1}{|c}{UCC} & & \multicolumn{1}{|c}{UAC} & & \multicolumn{1}{|c}{UGC} & & \multicolumn{1}{|c}{\textbf{C}} \\  
                & & \multicolumn{1}{|c}{UUA} & \multirow{2}{*}{Leu} & \multicolumn{1}{|c}{UCA} & & \multicolumn{1}{|c}{UAA} & \multirow{2}{*}{FIN} & \multicolumn{1}{|c}{UGA} & FIN & \multicolumn{1}{|c}{\textbf{A}} \\  
                & & \multicolumn{1}{|c}{UUG} & & \multicolumn{1}{|c}{UGG} & & \multicolumn{1}{|c}{UAG} & & \multicolumn{1}{|c}{UGG} & Trp & \multicolumn{1}{|c}{\textbf{G}} \\ \cline{3-10}  
             
                & \multirow{4}{*}{\textbf{C}} & \multicolumn{1}{|c}{CUU} & \multirow{4}{*}{Leu} & \multicolumn{1}{|c}{CCU} & \multirow{4}{*}{Pro} & \multicolumn{1}{|c}{CAU} & \multirow{2}{*}{His} & \multicolumn{1}{|c}{CGU} & \multirow{4}{*}{Arg} & \multicolumn{1}{|c}{\textbf{U}} \\  
                & & \multicolumn{1}{|c}{CUC} & & \multicolumn{1}{|c}{CCC} & & \multicolumn{1}{|c}{CAC} & & \multicolumn{1}{|c}{CGC} & & \multicolumn{1}{|c}{\textbf{C}} \\  
                & & \multicolumn{1}{|c}{CUA} & & \multicolumn{1}{|c}{CCA} & & \multicolumn{1}{|c}{CAA} & \multirow{2}{*}{Gln} & \multicolumn{1}{|c}{CGA} & & \multicolumn{1}{|c}{\textbf{A}} \\  
                & & \multicolumn{1}{|c}{CUG} & & \multicolumn{1}{|c}{CGG} & & \multicolumn{1}{|c}{CAG} & & \multicolumn{1}{|c}{CGG} & & \multicolumn{1}{|c}{\textbf{G}} \\ \cline{3-10}  
             
                & \multirow{4}{*}{\textbf{A}} & \multicolumn{1}{|c}{AUU} & \multirow{3}{*}{Ile} & \multicolumn{1}{|c}{ACU} & \multirow{4}{*}{Thr} & \multicolumn{1}{|c}{AAU} & \multirow{2}{*}{Asn} & \multicolumn{1}{|c}{AGU} & \multirow{2}{*}{Ser} & \multicolumn{1}{|c}{\textbf{U}} \\  
                & & \multicolumn{1}{|c}{AUC} & & \multicolumn{1}{|c}{ACC} & & \multicolumn{1}{|c}{AAC} & & \multicolumn{1}{|c}{AGC} & & \multicolumn{1}{|c}{\textbf{C}} \\  
                & & \multicolumn{1}{|c}{AUA} & & \multicolumn{1}{|c}{ACA} & & \multicolumn{1}{|c}{AAA} & \multirow{2}{*}{Lys} & \multicolumn{1}{|c}{AGA} & \multirow{2}{*}{Arg} & \multicolumn{1}{|c}{\textbf{A}} \\  
                & & \multicolumn{1}{|c}{AUG} & Met & \multicolumn{1}{|c}{AGG} & & \multicolumn{1}{|c}{AAG} & & \multicolumn{1}{|c}{AGG} & & \multicolumn{1}{|c}{\textbf{G}} \\ \cline{3-10}  
             
                & \multirow{4}{*}{\textbf{G}} & \multicolumn{1}{|c}{GUU} & \multirow{4}{*}{Val} & \multicolumn{1}{|c}{GCU} & \multirow{4}{*}{Ala} & \multicolumn{1}{|c}{GAU} & \multirow{2}{*}{Asp} & \multicolumn{1}{|c}{GGU} & \multirow{4}{*}{Gly} & \multicolumn{1}{|c}{\textbf{U}} \\  
                & & \multicolumn{1}{|c}{GUC} & & \multicolumn{1}{|c}{GCC} & & \multicolumn{1}{|c}{GAC} & & \multicolumn{1}{|c}{GGC} & & \multicolumn{1}{|c}{\textbf{C}} \\  
                & & \multicolumn{1}{|c}{GUA} & & \multicolumn{1}{|c}{GCA} & & \multicolumn{1}{|c}{GAA} & \multirow{2}{*}{Glu} & \multicolumn{1}{|c}{GGA} & & \multicolumn{1}{|c}{\textbf{A}} \\  
                & & \multicolumn{1}{|c}{GUG} & & \multicolumn{1}{|c}{GGG} & & \multicolumn{1}{|c}{GAG} & & \multicolumn{1}{|c}{GGG} & & \multicolumn{1}{|c}{\textbf{G}} \\ \cline{3-10}  
             
           \end{tabular}  
           \end{center}  
           \caption{Código genético representado por tripletes de bases y los aminoácidos que codifican.}  
           \label{TablaCodigoGenetico}  
      \end{table}  
   
 \end{document}  

Lo que sería una sencilla tabla en Word, en LaTeX parece un complejo problema de ingeniería, la tabla compilada quedaría finalmente así:
Reto a Joaquín a hacer más sencillo el código de la tabla ;)

3 comentarios:

  1. Con LaTeX::Table se pueden generar tablas, desde luego. O incluso con PerlTeX se puede meter código Perl dentro LaTeX, con lo que se puede generar código LaTeX de forma programática, y reduciendo algo el código.

    El problema son los titulares como 'Arg', 'Ser' o 'Gly', que no están en posiciones obvias, así que quizás no se pueda reducir mucho más.

    Creo que los titulares "PRIMERA BASE" y "SEGUNDA BASE" están intercambiados.

    ResponderEliminar
  2. Corregido!!! No sabía que también había módulo de Latex en Perl, veo que todo está ya inventado... Gracias por la aportación

    ResponderEliminar
  3. Se puede reducir, sí, menos líneas de código, pero a cambio habría que hacer un código latex algo bastante retorcidillo. Pero poder se puede.

    Lo que sí sería bueno es cambiar el rotatebox que contiene "primera base", sería mucho más legible usando un ángulo de 90 en vez de -90


    pvaldes

    ResponderEliminar