Como criar um diagrama de região de sequenciamento

Como criar um diagrama de região de sequenciamento

Como posso abordar para criar issoem látex? Sou relativamente novo no Latex e não tive experiência com a criação de diagramas.

Os números e os próprios textos são arbitrários, desde que haja espaço para eles. Também estou procurando que o 'stripchart' sombreado tenha uma escala adequada, por exemplo, o início da seção verde (ponto 313) deve ser 313/1139 da largura total da barra a partir da esquerda. Observe que esses números devem poder ser substituídos por qualquer conjunto de números. A mesma ideia se aplica às linhas com setas. A largura total seria a largura do texto.

insira a descrição da imagem aqui

Responder1

Bem-vindo ao TeX.SX!

Você poderia usar o TikZpara desenhar seu diagrama. Recomendo fortemente a leitura dodocumentação deste pacotepara entender como usá-lo. Por exemplo, você poderia começar assim:

\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}

Resultando no seguinte:

insira a descrição da imagem aqui


No entanto, você disse, o resultado deve ser exatamente tão amplo quanto o texto. Então, fiz alguns ajustes no código acima, para que o resultado sempre seja dimensionado para a largura do texto. Tive que aumentar um pouco o espaço das setas, pois o texto não cabia.

\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:

insira a descrição da imagem aqui

informação relacionada