
Wie kann ich vorgehen, um dies zu erreichen?in Latex? Ich bin relativ neu bei Latex und habe keine Erfahrung mit der Erstellung von Diagrammen.
Die Zahlen und Texte selbst sind beliebig, solange Platz dafür ist. Ich suche auch nach einem schattierten „Streifendiagramm“, das eine angemessene Skalierung hat, d. h. der Beginn des grünen Abschnitts (Punkt 313) sollte 313/1139 der Gesamtbreite des Balkens von links sein. Beachten Sie, dass diese Zahlen durch beliebige Zahlensätze ersetzt werden können sollten. Dasselbe gilt für die mit Pfeilen versehenen Zeilen. Die Gesamtbreite wäre dann die Textbreite.
Antwort1
Willkommen bei TeX.SX!
Sie könnten Tik verwendenZum Ihr Diagramm zu zeichnen. Ich empfehle Ihnen dringend, dieDokumentation dieses Paketsum zu verstehen, wie man es benutzt. Sie könnten beispielsweise so beginnen:
\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}
Das Ergebnis ist:
Sie sagten jedoch, das Ergebnis sollte genau so breit wie der Text sein. Daher habe ich am obigen Code einige Anpassungen vorgenommen, sodass das Ergebnis immer auf die Textbreite skaliert wird. Ich musste den Abstand der Pfeile etwas vergrößern, da der Text nicht hineinpasste.
\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}
Ergebnis: