如何创建测序区域图

如何创建测序区域图

我该如何创建这个乳胶? 我对 Latex 还比较陌生,没有创建任何图表的经验。

只要有空间,数字和文本本身是任意的。我还希望阴影“条形图”具有适当的缩放比例,例如绿色部分的起点(点 313)应为条形图左侧总宽度的 313/1139。请注意,这些数字应该能够被任何一组数字替换。同样的想法也适用于带箭头的行。总宽度将是文本宽度。

在此处输入图片描述

答案1

欢迎来到 TeX.SX!

你可以使用 Tik绘制图表。我强烈建议阅读这个包的文档了解如何使用它。例如,你可以这样开始:

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

结果如下:

在此处输入图片描述


但是,您说结果应该与文本宽度完全相同。因此,我对上述代码做了一些调整,以便结果始终与文本宽度一致。我不得不稍微增加箭头的空间,因为文本不适合。

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

结果:

在此处输入图片描述

相关内容