diff options
Diffstat (limited to 'Master/texmf-dist/tex/lualatex/pgfmolbio/pgfmolbio.chromatogram.tex')
-rw-r--r-- | Master/texmf-dist/tex/lualatex/pgfmolbio/pgfmolbio.chromatogram.tex | 233 |
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% } |