summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/lualatex/pgfmolbio/pgfmolbio.chromatogram.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/lualatex/pgfmolbio/pgfmolbio.chromatogram.tex')
-rw-r--r--Master/texmf-dist/tex/lualatex/pgfmolbio/pgfmolbio.chromatogram.tex233
1 files changed, 117 insertions, 116 deletions
diff --git a/Master/texmf-dist/tex/lualatex/pgfmolbio/pgfmolbio.chromatogram.tex b/Master/texmf-dist/tex/lualatex/pgfmolbio/pgfmolbio.chromatogram.tex
index 4aff5ef075c..a895f89603a 100644
--- a/Master/texmf-dist/tex/lualatex/pgfmolbio/pgfmolbio.chromatogram.tex
+++ b/Master/texmf-dist/tex/lualatex/pgfmolbio/pgfmolbio.chromatogram.tex
@@ -4,9 +4,9 @@
%%
%% The original source files were:
%%
-%% pgfmolbio.dtx (with options: `pmb-chr')
+%% pgfmolbio.dtx (with options: `pmb-chr-tex')
%%
-%% Copyright (C) 2011 by Wolfgang Skala
+%% Copyright (C) 2012 by Wolfgang Skala
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -16,9 +16,12 @@
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
-\ProvidesFile{pgfmolbio.chromatogram.tex}[2011/09/20 v0.1 SCF Chromatograms]
+\ProvidesFile{pgfmolbio.chromatogram.tex}[2012/10/01 v0.2 SCF chromatograms]
-\RequireLuaModule{pgfmolbio.chromatogram}
+
+\ifluatex
+ \RequireLuaModule{pgfmolbio.chromatogram}
+\fi
\definecolor{pmbTraceGreen}{RGB}{34,114,46}
\definecolor{pmbTraceBlue}{RGB}{48,37,199}
@@ -26,130 +29,101 @@
\definecolor{pmbTraceRed}{RGB}{191,27,27}
\definecolor{pmbTraceYellow}{RGB}{233,230,0}
-\def\@pmb@chr@keydef#1{%
- \pgfkeysdef{/pgfmolbio/chromatogram/#1}{%
- \expandafter\def\csname pmb@chr@#1\endcsname{##1}%
- }%
+\def\@pmb@chr@keydef#1#2{%
+ \pgfkeyssetvalue{/pgfmolbio/chromatogram/#1}{#2}%
}
-\def\@pmb@chr@stylekeydef#1{%
- \pgfkeysdef{/pgfmolbio/chromatogram/#1}{%
- \pgfkeys{/pgfmolbio/chromatogram/#1@style/.style={##1}}%
- }%
+\def\@pmb@chr@stylekeydef#1#2{%
+ \pgfkeys{/pgfmolbio/chromatogram/#1/.style={#2}}%
+}
+\def\@pmb@chr@getkey#1{%
+ \pgfkeysvalueof{/pgfmolbio/chromatogram/#1}%
}
-\def\@pmb@chr@getkey#1{\csname pmb@chr@#1\endcsname}
-\@pmb@chr@keydef{sample range}
+\@pmb@chr@keydef{sample range}{1-500 step 1}
-\@pmb@chr@keydef{x unit}
-\@pmb@chr@keydef{y unit}
-\@pmb@chr@keydef{samples per line}
-\@pmb@chr@keydef{baseline skip}
-\@pmb@chr@stylekeydef{canvas style}
-\@pmb@chr@keydef{canvas height}
+\@pmb@chr@keydef{x unit}{0.2mm}
+\@pmb@chr@keydef{y unit}{0.01mm}
+\@pmb@chr@keydef{samples per line}{500}
+\@pmb@chr@keydef{baseline skip}{3cm}
+\@pmb@chr@stylekeydef{canvas style}{draw=none, fill=none}
+\@pmb@chr@keydef{canvas height}{2cm}
-\@pmb@chr@stylekeydef{trace A style}
-\@pmb@chr@stylekeydef{trace C style}
-\@pmb@chr@stylekeydef{trace G style}
-\@pmb@chr@stylekeydef{trace T style}
-\pgfkeysdef{/pgfmolbio/chromatogram/trace style}{%
- \pgfmolbioset[chromatogram]{
- trace A style={#1},
- trace C style={#1},
- trace G style={#1},
- trace T style={#1}
+\@pmb@chr@stylekeydef{trace A style}{pmbTraceGreen}
+\@pmb@chr@stylekeydef{trace C style}{pmbTraceBlue}
+\@pmb@chr@stylekeydef{trace G style}{pmbTraceBlack}
+\@pmb@chr@stylekeydef{trace T style}{pmbTraceRed}
+\pgfmolbioset[chromatogram]{%
+ trace style/.code=\pgfkeysalso{
+ trace A style/.style={#1},
+ trace C style/.style={#1},
+ trace G style/.style={#1},
+ trace T style/.style={#1}
}%
}
-\@pmb@chr@keydef{traces drawn}
+\@pmb@chr@keydef{traces drawn}{}
-\@pmb@chr@stylekeydef{tick A style}
-\@pmb@chr@stylekeydef{tick C style}
-\@pmb@chr@stylekeydef{tick G style}
-\@pmb@chr@stylekeydef{tick T style}
-\pgfkeysdef{/pgfmolbio/chromatogram/tick style}{%
- \pgfmolbioset[chromatogram]{
- tick A style={#1},
- tick C style={#1},
- tick G style={#1},
- tick T style={#1}
+\@pmb@chr@stylekeydef{tick A style}{thin, pmbTraceGreen}
+\@pmb@chr@stylekeydef{tick C style}{thin, pmbTraceBlue}
+\@pmb@chr@stylekeydef{tick G style}{thin, pmbTraceBlack}
+\@pmb@chr@stylekeydef{tick T style}{thin, pmbTraceRed}
+\pgfmolbioset[chromatogram]{%
+ tick style/.code=\pgfkeysalso{
+ tick A style/.style={#1},
+ tick C style/.style={#1},
+ tick G style/.style={#1},
+ tick T style/.style={#1}
}%
}
-\@pmb@chr@keydef{tick length}
-\@pmb@chr@keydef{ticks drawn}
+\@pmb@chr@keydef{tick length}{1mm}
+\@pmb@chr@keydef{ticks drawn}{}
-\@pmb@chr@keydef{base label A text}
-\@pmb@chr@keydef{base label C text}
-\@pmb@chr@keydef{base label G text}
-\@pmb@chr@keydef{base label T text}
-\@pmb@chr@stylekeydef{base label A style}
-\@pmb@chr@stylekeydef{base label C style}
-\@pmb@chr@stylekeydef{base label G style}
-\@pmb@chr@stylekeydef{base label T style}
-\pgfkeysdef{/pgfmolbio/chromatogram/base label style}{%
- \pgfmolbioset[chromatogram]{
- base label A style={#1},
- base label C style={#1},
- base label G style={#1},
- base label T style={#1}
+\@pmb@chr@keydef{base label A text}{\strut A}
+\@pmb@chr@keydef{base label C text}{\strut C}
+\@pmb@chr@keydef{base label G text}{\strut G}
+\@pmb@chr@keydef{base label T text}{\strut T}
+\@pmb@chr@stylekeydef{base label A style}%
+ {below=4pt, font=\ttfamily\footnotesize, pmbTraceGreen}
+\@pmb@chr@stylekeydef{base label C style}%
+ {below=4pt, font=\ttfamily\footnotesize, pmbTraceBlue}
+\@pmb@chr@stylekeydef{base label G style}%
+ {below=4pt, font=\ttfamily\footnotesize, pmbTraceBlack}
+\@pmb@chr@stylekeydef{base label T style}%
+ {below=4pt, font=\ttfamily\footnotesize, pmbTraceRed}
+\pgfmolbioset[chromatogram]{%
+ base label style/.code=\pgfkeysalso{
+ base label A style/.style={#1},
+ base label C style/.style={#1},
+ base label G style/.style={#1},
+ base label T style/.style={#1}
}%
}
-\@pmb@chr@keydef{base labels drawn}
+\@pmb@chr@keydef{base labels drawn}{}
\newif\ifpmb@chr@showbasenumbers
-\pgfkeys{/pgfmolbio/chromatogram/show base numbers/%
- .is if=pmb@chr@showbasenumbers}
-\@pmb@chr@stylekeydef{base number style}
-\@pmb@chr@keydef{base number range}
+\pgfmolbioset[chromatogram]{%
+ show base numbers/.is if=pmb@chr@showbasenumbers,
+ show base numbers
+}
+\@pmb@chr@stylekeydef{base number style}%
+ {pmbTraceBlack, below=-3pt, font=\sffamily\tiny}
+\@pmb@chr@keydef{base number range}{auto-auto step 10}
-\@pmb@chr@keydef{probability distance}
-\@pmb@chr@keydef{probabilities drawn}
-\@pmb@chr@keydef{probability style function}
+\@pmb@chr@keydef{probability distance}{0.8cm}
+\@pmb@chr@keydef{probabilities drawn}{}
+\@pmb@chr@keydef{probability style function}{nil}
-\pgfkeysdef{/pgfmolbio/chromatogram/bases drawn}{%
- \pgfmolbioset[chromatogram]{
+\pgfmolbioset[chromatogram]{
+ bases drawn/.code=\pgfkeysalso{
traces drawn=#1,
ticks drawn=#1,
base labels drawn=#1,
probabilities drawn=#1
- }%
-}
-
-\pgfmolbioset[chromatogram]{%
- sample range=1 to 500 step 1,
- x unit=0.2mm,
- y unit=0.01mm,
- samples per line=500,
- baseline skip=3cm,
- canvas style={draw=none, fill=none},
- canvas height=2cm,
- trace A style={pmbTraceGreen},
- trace C style={pmbTraceBlue},
- trace G style={pmbTraceBlack},
- trace T style={pmbTraceRed},
- tick A style={thin, pmbTraceGreen},
- tick C style={thin, pmbTraceBlue},
- tick G style={thin, pmbTraceBlack},
- tick T style={thin, pmbTraceRed},
- tick length=1mm,
- base label A text=\strut A,
- base label C text=\strut C,
- base label G text=\strut G,
- base label T text=\strut T,
- base label A style=%
- {below=4pt, font=\ttfamily\footnotesize, pmbTraceGreen},
- base label C style=%
- {below=4pt, font=\ttfamily\footnotesize, pmbTraceBlue},
- base label G style=%
- {below=4pt, font=\ttfamily\footnotesize, pmbTraceBlack},
- base label T style=%
- {below=4pt, font=\ttfamily\footnotesize, pmbTraceRed},
- show base numbers,
- base number style={pmbTraceBlack, below=-3pt, font=\sffamily\tiny},
- base number range=auto to auto step 10,
- probability distance=0.8cm,
- probability style function=nil,
+ },
bases drawn=ACGT
}
+\ifluatex\else\expandafter\endinput\fi
+
\newif\ifpmb@chr@tikzpicture
\newcommand\pmbchromatogram[2][]{%
@@ -158,25 +132,52 @@
{\pmb@chr@tikzpicturetrue\begingroup}%
\pgfmolbioset[chromatogram]{#1}%
\directlua{
- pgfmolbio.chromatogram.readScfFile("#2")
- pgfmolbio.chromatogram.setParameters{
+ pmbChromatogram = pgfmolbio.chromatogram.Chromatogram:new()
+ pmbChromatogram:readScfFile("#2")
+ pmbChromatogram:setParameters{
sampleRange = "\@pmb@chr@getkey{sample range}",
- xUnit = dimen("\@pmb@chr@getkey{x unit}")[1],
- yUnit = dimen("\@pmb@chr@getkey{y unit}")[1],
- samplesPerLine = \@pmb@chr@getkey{samples per line},
- baselineSkip = dimen("\@pmb@chr@getkey{baseline skip}")[1],
- canvasHeight = dimen("\@pmb@chr@getkey{canvas height}")[1],
+ xUnit = "\@pmb@chr@getkey{x unit}",
+ yUnit = "\@pmb@chr@getkey{y unit}",
+ samplesPerLine = "\@pmb@chr@getkey{samples per line}",
+ baselineSkip = "\@pmb@chr@getkey{baseline skip}",
+ canvasHeight = "\@pmb@chr@getkey{canvas height}",
tracesDrawn = "\@pmb@chr@getkey{traces drawn}",
- tickLength = dimen("\@pmb@chr@getkey{tick length}")[1],
+ tickLength = "\@pmb@chr@getkey{tick length}",
ticksDrawn = "\@pmb@chr@getkey{ticks drawn}",
baseLabelsDrawn = "\@pmb@chr@getkey{base labels drawn}",
- showBaseNumbers = \ifpmb@chr@showbasenumbers true\else false\fi,
- baseNumberRange = "\@pmb@chr@getkey{base number range}",
- probDistance = dimen("\@pmb@chr@getkey{probability distance}")[1],
+ showBaseNumbers = "\ifpmb@chr@showbasenumbers true\else false\fi",
+ probDistance = "\@pmb@chr@getkey{probability distance}",
probabilitiesDrawn = "\@pmb@chr@getkey{probabilities drawn}",
probStyle = \@pmb@chr@getkey{probability style function}
}
- pgfmolbio.chromatogram.printTikzChromatogram()
+ pmbChromatogram:setParameters{
+ baseNumberRange = "\@pmb@chr@getkey{base number range}",
+ }
+ pgfmolbio.setCoordinateFormat(
+ "\pgfkeysvalueof{/pgfmolbio/coordinate unit}",
+ "\pgfkeysvalueof{/pgfmolbio/coordinate format string}"
+ )
+ \ifpmb@loadmodule@convert
+ local filename =
+ "\pgfkeysvalueof{/pgfmolbio/convert/output file name}"
+ if filename == "(auto)" then
+ filename = "pmbconverted" .. pgfmolbio.outputFileId
+ end
+ filename = filename ..
+ ".\pgfkeysvalueof{/pgfmolbio/convert/output file extension}"
+ outputFile, ioError = io.open(filename, "w")
+ if ioError then
+ tex.error(ioError)
+ end
+ tex.sprint = function (a) outputFile:write(a) end
+ tex.sprint("\string\\begin{tikzpicture}")
+ pmbChromatogram:printTikzChromatogram()
+ tex.sprint("\string\n\string\\end{tikzpicture}")
+ outputFile:close()
+ pgfmolbio.outputFileId = pgfmolbio.outputFileId + 1
+ \else
+ pmbChromatogram:printTikzChromatogram()
+ \fi
}%
\ifpmb@chr@tikzpicture\endgroup\else\end{tikzpicture}\fi%
}