
¿Cómo podría acercarme para crear esto?en látex? Soy relativamente nuevo en Latex y no he tenido experiencia en la creación de ningún diagrama.
Los números y los textos en sí son arbitrarios siempre que haya espacio para ellos. También estoy buscando que el 'gráfico de franjas' sombreado tenga la escala adecuada, por ejemplo, el inicio de la sección verde (punto 313) debe ser 313/1139 del ancho total de la barra desde la izquierda. Tenga en cuenta que estos números deberían poder reemplazarse por cualquier conjunto de números. La misma idea se aplica a las filas con flechas. El ancho total sería el ancho del texto.
Respuesta1
¡Bienvenido a TeX.SX!
Podrías usar Tikzpara dibujar tu diagrama. Recomiendo mucho leer eldocumentación de este paquetepara entender cómo usarlo. Por ejemplo, podrías empezar así:
\documentclass[border=1mm, tikz]{standalone}
\newcounter{rowstart}
\newcounter{rowend}
\newcounter{sequencestart}
\newcounter{sequenceend}
\newcounter{matchrevstart}
\newcounter{matchrevend}
\newcounter{matchfwdstart}
\newcounter{matchfwdend}
\newcommand{\drawsequence}{%
\begin{tikzpicture}[x=.25mm, y=5cm,
row/.append style={black},
sequence/.append style={row, fill=green},
]
\coordinate (rstart) at (\therowstart,0);
\coordinate (sstart) at (\thesequencestart,0);
\coordinate (send) at (\thesequenceend,0);
\coordinate (rend) at (\therowend,0);
\draw[row] ([yshift=5mm]rstart) rectangle coordinate[pos=.5] (xrleft) ([yshift=-5mm]sstart);
\draw[sequence] ([yshift=5mm]sstart) rectangle coordinate[pos=.5] (xsequence) ([yshift=-5mm]send);
\draw[row] ([yshift=5mm]send) rectangle coordinate[pos=.5] (xrright) ([yshift=-5mm]rend);
\node at ([yshift=7.5mm]rstart) {\therowstart};
\node at ([yshift=7.5mm]sstart) {\thesequencestart};
\node at ([yshift=7.5mm]send) {\thesequenceend};
\node at ([yshift=7.5mm]rend) {\therowend};
\node at (xrleft) {5' UTR};
\node at (xrright) {3' UTR};
\node at (xsequence) {Protein Coding Sequence};
\draw[dashed] ([yshift=-5mm]\thematchrevstart,0) -- ++(0,-.8);
\draw[dashed] ([yshift=-5mm]\thematchfwdend,0) -- ++(0,-.8);
\draw[->] (\thematchrevstart,-.25) node[above right] {\thematchrevstart} -- node[above, pos=.5] {\footnotesize Region of exact match, Reverse strand sequencing} (\thematchrevend,-.25) node[above left] {\thematchrevend};
\draw[<-] (\thematchfwdstart,-.5) node[above right] {\thematchfwdstart} -- node[above, pos=.5] {\footnotesize Region of exact match, Forward strand sequencing} (\thematchfwdend,-.5) node[above left] {\thematchfwdend};
\draw[<->] (\thematchrevstart,-.75) -- node[above, pos=.5] {\footnotesize Extent of cloned cDNA, excluding the polyA tail} (\thematchfwdend,-.75);
\end{tikzpicture}%
}
\begin{document}
\setcounter{rowstart}{1}
\setcounter{rowend}{1139}
\setcounter{sequencestart}{313}
\setcounter{sequenceend}{765}
\setcounter{matchrevstart}{213}
\setcounter{matchrevend}{1001}
\setcounter{matchfwdstart}{429}
\setcounter{matchfwdend}{1039}
\drawsequence
\end{document}
Dando como resultado lo siguiente:
Sin embargo, dijiste, el resultado debería ser exactamente tan ancho como el texto. Entonces, hice algunos ajustes al código anterior, para que el resultado siempre se ajuste al ancho del texto. Tuve que aumentar un poco el espacio de las flechas, porque el texto no cabía.
\documentclass{article}
\usepackage{tikz}
\newcounter{rowstart}
\newcounter{rowend}
\newcounter{sequencestart}
\newcounter{sequenceend}
\newcounter{matchrevstart}
\newcounter{matchrevend}
\newcounter{matchfwdstart}
\newcounter{matchfwdend}
\newcommand{\drawsequence}{%
\noindent\begin{tikzpicture}[
row/.append style={black},
sequence/.append style={row, fill=green},
]
\coordinate (rstart) at ({\therowstart/\therowend*\textwidth},0);
\coordinate (sstart) at ({\thesequencestart/\therowend*\textwidth},0);
\coordinate (send) at ({\thesequenceend/\therowend*\textwidth},0);
\coordinate (rend) at ({\therowend/\therowend*\textwidth},0);
\coordinate (mrstart) at ({\thematchrevstart/\therowend*\textwidth},0);
\coordinate (mfstart) at ({\thematchfwdstart/\therowend*\textwidth},0);
\coordinate (mrend) at ({\thematchrevend/\therowend*\textwidth},0);
\coordinate (mfend) at ({\thematchfwdend/\therowend*\textwidth},0);
\draw[row] ([yshift=2.5mm]rstart) rectangle coordinate[pos=.5] (xrleft) ([yshift=-2.5mm]sstart);
\draw[sequence] ([yshift=2.5mm]sstart) rectangle coordinate[pos=.5] (xsequence) ([yshift=-2.5mm]send);
\draw[row] ([yshift=2.5mm]send) rectangle coordinate[pos=.5] (xrright) ([yshift=-2.5mm]rend);
\node[anchor=west] at ([yshift=5mm]rstart) {\therowstart};
\node at ([yshift=5mm]sstart) {\thesequencestart};
\node at ([yshift=5mm]send) {\thesequenceend};
\node[anchor=east] at ([yshift=5mm]rend) {\therowend};
\node at (xrleft) {5' UTR};
\node at (xrright) {3' UTR};
\node at (xsequence) {Protein Coding Sequence};
\draw[dashed] ([yshift=-2.5mm]mrstart) -- ([yshift=-36mm]mrstart);
\draw[dashed] ([yshift=-2.5mm]mfend) -- ([yshift=-36mm]mfend);
\draw[->] ([yshift=-15mm]mrstart) node[above right] {\thematchrevstart} -- node[above, pos=.5, text width=50mm, align=center] {\footnotesize Region of exact match, Reverse strand sequencing} ([yshift=-15mm]mrend) node[above left] {\thematchrevend};
\draw[<-] ([yshift=-25mm]mfstart) node[above right] {\thematchfwdstart} -- node[above, pos=.5, text width=50mm, align=center] {\footnotesize Region of exact match, Forward strand sequencing} ([yshift=-25mm]mfend) node[above left] {\thematchfwdend};
\draw[<->] ([yshift=-35mm]mrstart) -- node[above, pos=.5, text width=50mm, align=center] {\footnotesize Extent of cloned cDNA, excluding the polyA tail} ([yshift=-35mm]mfend);
\end{tikzpicture}%
}
\begin{document}
\setcounter{rowstart}{1}
\setcounter{rowend}{1139}
\setcounter{sequencestart}{313}
\setcounter{sequenceend}{765}
\setcounter{matchrevstart}{213}
\setcounter{matchrevend}{1001}
\setcounter{matchfwdstart}{429}
\setcounter{matchfwdend}{1039}
\drawsequence
\end{document}
Resultado: