├── .gitignore ├── Handout ├── Menlo-Regular.ttf ├── TOPP_tutorial.pdf ├── accents.sty ├── amsplain.bst ├── de-macro ├── defs-private.sty ├── defsnohtml-private.sty ├── fonts │ ├── Ubuntu-B.ttf │ ├── Ubuntu-BI.ttf │ ├── Ubuntu-C.ttf │ ├── Ubuntu-L.ttf │ ├── Ubuntu-LI.ttf │ ├── Ubuntu-M.ttf │ ├── Ubuntu-MI.ttf │ ├── Ubuntu-R.ttf │ ├── Ubuntu-RI.ttf │ ├── UbuntuMono-B.ttf │ ├── UbuntuMono-BI.ttf │ ├── UbuntuMono-R.ttf │ └── UbuntuMono-RI.ttf ├── gettingstarted.tex ├── graphics │ ├── Complete_No_ConsensusID.png │ ├── Complete_No_ConsensusID.xbb │ ├── Complete_Workflow.png │ ├── Complete_Workflow.xbb │ ├── ID_FDR.png │ ├── ID_FDR.xbb │ ├── ID_Mapping.png │ ├── ID_Mapping.xbb │ ├── assets │ │ ├── OpenMS_5cm_300ppi_transparent.png │ │ ├── OpenMS_5cm_300ppi_transparent.xbb │ │ ├── check30.png │ │ ├── check30.xbb │ │ ├── deNBI_Logo_rgb.png │ │ ├── deNBI_Logo_rgb.xbb │ │ ├── elixir_germany_white_background.png │ │ ├── elixir_germany_white_background.xbb │ │ ├── question23.png │ │ └── question23.xbb │ ├── introduction │ │ ├── 3dview.png │ │ ├── 3dview.xbb │ │ ├── TOPPView.png │ │ ├── TOPPView.xbb │ │ ├── ms2_introduction.png │ │ ├── ms2_introduction.xbb │ │ ├── profilecentroided.png │ │ ├── profilecentroided.xbb │ │ ├── proteowizard.png │ │ └── proteowizard.xbb │ ├── isobaric │ │ ├── Dataset_MSstatsTMT.png │ │ ├── Dataset_MSstatsTMT.xbb │ │ ├── isobaric_experimental_design.jpg │ │ ├── isobaric_img_output_knime.png │ │ ├── isobaric_img_output_knime.xbb │ │ ├── isobaric_inference_wf.png │ │ ├── isobaric_inference_wf.xbb │ │ ├── isobaric_msstatstmt_wf.png │ │ └── isobaric_msstatstmt_wf.xbb │ ├── knime_setup │ │ ├── Minimal_FileInfo.pdf │ │ ├── Minimal_FileInfo.svg │ │ ├── Minimal_FileInfoLoop.pdf │ │ ├── Minimal_FileInfoLoop.svg │ │ ├── Minimal_RawFileConverter_Loop-.xbb │ │ ├── Minimal_RawFileConverter_Loop.pdf │ │ ├── Minimal_RawFileConverter_Loop.svg │ │ ├── knime_configure_dialog.png │ │ ├── knime_configure_dialog.xbb │ │ ├── knime_workbench_marked.png │ │ ├── knime_workbench_marked.xbb │ │ └── knime_workbench_marked.xcf │ ├── labelfree │ │ ├── PepConsensusId.png │ │ ├── PepConsensusId.xbb │ │ ├── PepIdFDR.png │ │ ├── PepIdFDR.xbb │ │ ├── PepQuantId.png │ │ ├── PepQuantId.xbb │ │ ├── PepQuantIdNoAlign.png │ │ ├── PepQuantIdNoAlign.xbb │ │ ├── align.png │ │ ├── align.xbb │ │ ├── basic_peptide_ident.pdf │ │ ├── consensus_id.pdf │ │ ├── data_analysis.png │ │ ├── data_analysis.xbb │ │ ├── fdr_peptide_identification.pdf │ │ ├── featureXML.png │ │ ├── featureXML.xbb │ │ ├── iPRG │ │ │ ├── iPRG_lfq.png │ │ │ └── iPRG_lfq.xbb │ │ ├── idXML.png │ │ ├── idXML.xbb │ │ ├── lfq.pdf │ │ ├── lfq_no_align.pdf │ │ ├── link.png │ │ ├── link.xbb │ │ └── msstats │ │ │ ├── MSstats.png │ │ │ ├── MSstats.xbb │ │ │ ├── c2_c1-.xbb │ │ │ ├── c2_c1.pdf │ │ │ ├── c3_c2-.xbb │ │ │ └── c3_c2.pdf │ ├── metabo │ │ ├── ToppView_1.png │ │ ├── ToppView_1.xbb │ │ ├── ToppView_2.png │ │ ├── ToppView_2.xbb │ │ ├── ToppView_3.png │ │ ├── ToppView_3.xbb │ │ ├── ToppView_4.png │ │ ├── ToppView_4.xbb │ │ ├── ToppView_5.png │ │ ├── ToppView_5.xbb │ │ ├── align.png │ │ ├── align.xbb │ │ ├── denovoid.png │ │ ├── denovoid.xbb │ │ ├── glutathioneMetlin.png │ │ ├── glutathioneMetlin.xbb │ │ ├── glutathioneTV.png │ │ ├── glutathioneTV.xbb │ │ ├── link.png │ │ ├── link.xbb │ │ ├── mad.png │ │ ├── mad.xbb │ │ ├── metabo_part1.png │ │ ├── metabo_part1.xbb │ │ ├── metabo_part1_with_labels.png │ │ ├── metabo_part1_with_labels.xbb │ │ ├── metabo_part2.png │ │ ├── metabo_part2.xbb │ │ ├── metabo_part3.png │ │ ├── metabo_part3.xbb │ │ ├── metabo_workflow.pdf │ │ ├── minimal_FFM_wf.png │ │ ├── minimal_FFM_wf.xbb │ │ ├── reporting.png │ │ ├── reporting.xbb │ │ ├── speclib.png │ │ ├── speclib.xbb │ │ ├── structures_filter_results.png │ │ ├── structures_filter_results.xbb │ │ ├── structures_filter_workflow.png │ │ └── structures_filter_workflow.xbb │ ├── openswath │ │ ├── OpenSWATHWF.png │ │ ├── OpenSWATHWF.svg │ │ └── OpenSWATHWF.xbb │ ├── openswathmetabo │ │ ├── assay_library_generation.png │ │ ├── decoy_generation.png │ │ ├── loop_feautre.png │ │ ├── loop_feautre.xbb │ │ ├── oswm_example_wf.png │ │ ├── pipeline_overview.png │ │ └── pipeline_overview.xbb │ ├── protein_inference │ │ ├── inference_metanode.png │ │ ├── inference_metanode.xbb │ │ ├── proteinFDR.png │ │ ├── proteinFDR.xbb │ │ ├── realROC.png │ │ └── realROC.xbb │ └── qc │ │ ├── qc_basic.png │ │ ├── qc_basic.xbb │ │ ├── qc_extra.png │ │ ├── qc_extra.xbb │ │ ├── qc_set.png │ │ └── qc_set.xbb ├── handout.bib ├── handout.tex ├── isobaric.tex ├── labelfree.tex ├── mdframed.4ht ├── menukeys.4ht ├── metabolomics.tex ├── my.cfg ├── myNotes.cls ├── mybuild.mk4 ├── openswath.tex ├── openswathmetabo.tex ├── pgfsys-dvisvgm4ht.def ├── phreporturl.bst ├── protein_inference.tex ├── pyopenms.tex ├── qualitycontrol.tex ├── srcltx.sty ├── test.css ├── troubleshooting.tex └── utphys.bst ├── LICENSE ├── README.md └── Workflows ├── DIAMetAlyzer.knwf ├── DIAMetAlyzer_2.0.knwf ├── Identification_quantification_with_inference_isobaric_epifany_MSstatsTMT.knwf ├── MSstatsTMT.knwf ├── MSstats_statPostProcessing_iPRG2015.knwf ├── Metabolite_Adduct_Grouping.knwf ├── Metabolite_DeNovoID.knwf ├── Metabolite_ID.knwf ├── Metabolite_SpectralID.knwf ├── OpenSwath.knwf ├── Phosphoproteomics_ID.knwf ├── ProteomicsLFQ_tool_and_MSstats_postprocessing.knwf ├── Proteomics_LFQ.knwf ├── QC Metanodes.knwf ├── QC_with_OpenMS.knwf ├── QC_with_OpenMS_noggplot.knwf ├── README.MD ├── basic_peptide_identification.knwf ├── basic_peptide_identification_with_inference.knwf ├── basic_peptide_identification_with_inference_and_spectral_counting.knwf ├── consensus_peptide_identification.knwf ├── executeBatch.sh ├── execute_Batch_Win.bat ├── fdr_peptide_identification.knwf ├── labelfree_with_protein_quantification.knwf ├── lfq_and_peptide_identification.knwf ├── openmsLFQ_iPRG2015.knwf └── pyOpenMS ├── ProteinDigestor.py └── ProteinDigestor_argparse.py /.gitignore: -------------------------------------------------------------------------------- 1 | ## Core latex/pdflatex auxiliary files: 2 | *.aux 3 | *.lof 4 | *.log 5 | *.lot 6 | *.fls 7 | *.out 8 | *.toc 9 | 10 | ## Intermediate documents: 11 | *.dvi 12 | *-converted-to.* 13 | # these rules might exclude image files for figures etc. 14 | # *.ps 15 | # *.eps 16 | #*.pdf 17 | 18 | ## Bibliography auxiliary files (bibtex/biblatex/biber): 19 | *.bbl 20 | *.bcf 21 | *.blg 22 | *-blx.aux 23 | *-blx.bib 24 | *.brf 25 | *.run.xml 26 | 27 | ## Build tool auxiliary files: 28 | *.fdb_latexmk 29 | *.synctex 30 | *.synctex.gz 31 | *.synctex.gz(busy) 32 | *.pdfsync 33 | 34 | ## Auxiliary and intermediate files from other packages: 35 | 36 | # algorithms 37 | *.alg 38 | *.loa 39 | 40 | # achemso 41 | acs-*.bib 42 | 43 | # amsthm 44 | *.thm 45 | 46 | # beamer 47 | *.nav 48 | *.snm 49 | *.vrb 50 | 51 | #(e)ledmac/(e)ledpar 52 | *.end 53 | *.[1-9] 54 | *.[1-9][0-9] 55 | *.[1-9][0-9][0-9] 56 | *.[1-9]R 57 | *.[1-9][0-9]R 58 | *.[1-9][0-9][0-9]R 59 | *.eledsec[1-9] 60 | *.eledsec[1-9]R 61 | *.eledsec[1-9][0-9] 62 | *.eledsec[1-9][0-9]R 63 | *.eledsec[1-9][0-9][0-9] 64 | *.eledsec[1-9][0-9][0-9]R 65 | 66 | # glossaries 67 | *.acn 68 | *.acr 69 | *.glg 70 | *.glo 71 | *.gls 72 | 73 | # gnuplottex 74 | *-gnuplottex-* 75 | 76 | # hyperref 77 | *.brf 78 | 79 | # knitr 80 | *-concordance.tex 81 | *.tikz 82 | *-tikzDictionary 83 | 84 | # listings 85 | *.lol 86 | 87 | # makeidx 88 | *.idx 89 | *.ilg 90 | *.ind 91 | *.ist 92 | 93 | # minitoc 94 | *.maf 95 | *.mtc 96 | *.mtc0 97 | 98 | # minted 99 | _minted* 100 | *.pyg 101 | 102 | # morewrites 103 | *.mw 104 | 105 | # nomencl 106 | *.nlo 107 | 108 | # sagetex 109 | *.sagetex.sage 110 | *.sagetex.py 111 | *.sagetex.scmd 112 | 113 | # sympy 114 | *.sout 115 | *.sympy 116 | sympy-plots-for-*.tex/ 117 | 118 | # todonotes 119 | *.tdo 120 | 121 | # xindy 122 | *.xdy 123 | 124 | # WinEdt 125 | *.bak 126 | *.sav 127 | 128 | # mac garbage 129 | .DS_Store 130 | 131 | -------------------------------------------------------------------------------- /Handout/Menlo-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/Menlo-Regular.ttf -------------------------------------------------------------------------------- /Handout/TOPP_tutorial.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/TOPP_tutorial.pdf -------------------------------------------------------------------------------- /Handout/accents.sty: -------------------------------------------------------------------------------- 1 | % +--------------------------------------------------+ 2 | % | Typeset accents.tex to get the documentation. | 3 | % +--------------------------------------------------+ 4 | % 5 | % This file is copyrighted (c) 1998, 1999, 2000 by Javier Bezos. 6 | % All Rights Reserved. 7 | % 8 | % This program can be redistributed and/or modified under the terms 9 | % of the LaTeX Project Public License Distributed from CTAN 10 | % archives in directory macros/latex/base/lppl.txt; either 11 | % % version 1 of the License, or any later version. 12 | % 13 | % Release 14 | % ~~~~~~~ 15 | \ProvidesPackage{accents}[2000/08/06 v1.2 Math Accent Tools] 16 | 17 | \let\cc@palette\mathpalette 18 | 19 | \DeclareOption{nonscript} 20 | {\renewcommand\cc@palette[2]{#1\textstyle{#2}}} 21 | 22 | \DeclareOption{single} 23 | {\renewcommand\cc@accent[1]{\mathaccent#1}} 24 | 25 | \newdimen\cc@skew 26 | \newdimen\cc@wd 27 | 28 | \newcount\cc@code 29 | \newcount\cc@group 30 | \newcount\cc@skewchar 31 | 32 | \newif\ifcc@more 33 | 34 | % Code for real accents 35 | % ~~~~~~~~~~~~~~~~~~~~~ 36 | 37 | \def\cc@accent#1#2{% 38 | \begingroup 39 | \cc@code=#1\relax 40 | \let\math@bgroup\@empty 41 | \def\math@egroup##1{\cc@setchar##1}% 42 | \cc@palette\cc@@accent{#2}% 43 | \cc@nuc 44 | \endgroup} 45 | 46 | \def\cc@iaccent#1#2{% 47 | \cc@fetch{#2}% 48 | \mathaccent#1{% 49 | \ifcc@more#2\else 50 | \cc@phant{#2}% 51 | \gdef\cc@nuc{#2}% 52 | \fi 53 | \kern\cc@skew}% 54 | \kern-\cc@skew}% 55 | 56 | \def\cc@@accent#1#2{% 57 | \let\cc@style=#1% 58 | \cc@fetch{#2}% 59 | \mathaccent\cc@code{% 60 | \ifcc@more#2\else 61 | \cc@phant{#2}% 62 | \gdef\cc@nuc{#2}% 63 | \fi 64 | \kern\cc@skew}% 65 | \kern-\cc@skew 66 | \kern\cc@wd}% 67 | 68 | % The accents are redefined: 69 | 70 | \begingroup 71 | 72 | \def\mathaccentV#1{\string"\noexpand\accentclass@}% 73 | \let\protect\@empty 74 | \let\mathaccent\@empty 75 | 76 | \def\cc@set#1{% 77 | \xdef#1{\noexpand\protect\noexpand\cc@accent{#1}}} 78 | 79 | \cc@set\grave %{\protect\cc@accent{"7012\relax}} 80 | \cc@set\acute %{\protect\cc@accent{"7013\relax}} 81 | \cc@set\check %{\protect\cc@accent{"7014\relax}} 82 | \cc@set\breve %{\protect\cc@accent{"7015\relax}} 83 | \cc@set\bar %{\protect\cc@accent{"7016\relax}} 84 | \cc@set\hat %{\protect\cc@accent{"705E\relax}} 85 | \cc@set\dot %{\protect\cc@accent{"705F\relax}} 86 | \cc@set\tilde %{\protect\cc@accent{"707E\relax}} 87 | \cc@set\ddot %{\protect\cc@accent{"707F\relax}} 88 | \cc@set\vec %{\protect\cc@accent{"017E\relax}} 89 | \gdef\ring{\protect\cc@accent{"7017\relax}} 90 | 91 | \@ifundefined{mathring}{}{\cc@set\mathring} 92 | 93 | \endgroup 94 | 95 | % Faked accents 96 | % ~~~~~~~~~~~~~ 97 | 98 | \newcommand\accentset[2]{% 99 | \begingroup 100 | \def\cc@a{#1}% 101 | \let\math@bgroup\@empty 102 | \def\math@egroup##1{\cc@setchar##1}% 103 | \cc@palette\cc@accentset{#2}% 104 | \cc@nuc 105 | \endgroup} 106 | 107 | \def\cc@accentset#1#2{% 108 | \let\cc@style#1% 109 | \cc@fetch{#2}% 110 | \sbox\z@{$\m@th\cc@style\mathgroup\cc@group 111 | \ifcc@more#2\else\cc@phant{#2}% 112 | \gdef\cc@nuc{#2}\fi$}% 113 | \cc@align{% 114 | \hidewidth\kern\cc@skew 115 | $\m@th\scriptscriptstyle\mathgroup\cc@group\cc@a$% 116 | \hidewidth\cr{\box\z@}}% 117 | \kern\cc@wd}% 118 | 119 | \def\cc@iaccentset#1#2{% 120 | \cc@fetch{#2}% 121 | \sbox\z@{$\m@th\cc@style\ifcc@more#2\else\cc@phant{#2}% 122 | \gdef\cc@nuc{#2}\fi$}% 123 | \cc@align{% 124 | \hidewidth\kern\cc@skew 125 | $\m@th\scriptscriptstyle#1$\hidewidth\cr 126 | {\box\z@}}}% 127 | 128 | \def\cc@align#1{% 129 | \vbox{% 130 | \baselineskip\z@skip 131 | \lineskip.25ex 132 | \ialign{##\crcr#1\crcr}}} 133 | 134 | % Shared by real and faked accents 135 | % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | 137 | \def\cc@phant#1{% 138 | \v@true\h@true 139 | \finph@nt}% with \box0 from \cc@fetch 140 | 141 | \def\cc@setchar{% 142 | \cc@skewchar\ifnum\mathgroup=\m@ne 143 | \skewchar\textfont\@ne 144 | \else\ifnum\skewchar\textfont\mathgroup=\m@ne 145 | \skewchar\textfont\@ne 146 | \else\skewchar\textfont\mathgroup\fi\fi 147 | \advance\cc@skewchar"7100 } 148 | 149 | \def\cc@fetch#1{% 150 | \cc@group=\the\mathgroup 151 | \let\cc@accent\@gobble 152 | \let\accentset\@gobble 153 | \sbox\z@{$\m@th\mathgroup\cc@group\cc@setchar 154 | \cc@style#1{}\mathchar\cc@skewchar$}% 155 | \sbox\@ne{$\m@th\mathgroup\cc@group\cc@setchar 156 | \cc@style#1\mathchar\cc@skewchar$}% 157 | \cc@morefalse 158 | \def\cc@accent##1{\global\cc@moretrue}% 159 | \def\accentset##1{\global\cc@moretrue}% 160 | \global\cc@skew2\wd\@ne 161 | \global\advance\cc@skew-2\wd\z@ 162 | \sbox\z@{$\m@th\mathgroup\cc@group\cc@style#1$}% 163 | \global\cc@wd-\wd\z@ 164 | \let\cc@accent\cc@iaccent 165 | \let\accentset\cc@iaccentset} 166 | 167 | % Two useful faked accents 168 | % ~~~~~~~~~~~~~~~~~~~~~~~~ 169 | 170 | \def\dddot{\accentset{{\cc@style.\mkern-1.7mu\textstyle.\mkern-1.7mu.}}} 171 | \def\ddddot{\accentset{{\cc@style.\mkern-2.1mu.\mkern-2.1mu.\mkern-2.1mu.}}} 172 | 173 | % Underaccents 174 | % ~~~~~~~~~~~~ 175 | 176 | \newcommand\underaccent[2]{% 177 | \begingroup 178 | \def\cc@a{#2}% Stores the nucleous... 179 | \cc@palette\cc@underaccent{#1}% ...and the accent is passed 180 | #2% 181 | \endgroup}% 182 | 183 | \def\cc@underaccent#1#2{% 184 | \let\cc@style#1% 185 | \expandafter\in@\expandafter\cc@accent\expandafter{#2}% 186 | \ifin@ 187 | \expandafter\cc@uaccent#2\@@% 188 | \else 189 | \cc@uaccentset{#2}% 190 | \fi} 191 | 192 | \def\cc@uaccent#1#2#3\@@{% #1 and #2 gobbles \protect\cc@accent 193 | \cc@under{% 194 | \vbox to.2ex{% 195 | \hbox{% 196 | $\m@th 197 | \cc@style 198 | \mathgroup\cc@group 199 | \cc@shift 200 | \mathchar#3$}% 201 | \vss}}} 202 | 203 | \def\cc@uaccentset#1{% 204 | \cc@under{% 205 | \hbox{% 206 | $\m@th 207 | \cc@style 208 | \mathgroup\cc@group 209 | \cc@shift 210 | \scriptscriptstyle#1$}}} 211 | 212 | \def\cc@under#1{% 213 | \cc@group\the\mathgroup 214 | \sbox\z@{$\m@th\cc@style\mathgroup\cc@group\cc@a$}% 215 | \sbox\tw@{$\scriptspace\z@\m@th\cc@style\mathgroup\cc@group\cc@a_{}$}% 216 | \rlap{% 217 | \oalign{% 218 | \vrule \@depth\dp\z@ \@width\z@ 219 | \kern\wd\tw@ 220 | \crcr 221 | \hidewidth#1\hidewidth}}} 222 | 223 | \def\cc@shift{% 224 | \dimen@=-.000008ex 225 | \multiply\dimen@\ifnum\mathgroup=\m@ne 226 | \fontdimen\@ne\textfont\@ne 227 | \else 228 | \fontdimen\@ne\textfont\cc@group\fi 229 | \kern\dimen@} 230 | 231 | % And \undertilde 232 | % ~~~~~~~~~~~~~~~ 233 | 234 | \newcommand\undertilde{\cc@palette\cc@undertilde} 235 | 236 | \def\cc@undertilde#1#2{% 237 | \cc@group\the\mathgroup 238 | \sbox\z@{$\m@th\mathgroup\cc@group#1#2$}% 239 | \oalign{% 240 | $\m@th\mathgroup\cc@group#1#2$% 241 | \crcr 242 | \hidewidth 243 | \vbox to.5ex{% 244 | \hbox{% 245 | $\hss 246 | #1% 247 | \mathgroup\cc@group 248 | \widetilde{\hbox to\wd\z@{\hss}}% 249 | \hss$}% 250 | \vss}% 251 | \hidewidth}} 252 | 253 | % The following command is used by \DeclareMathAccent 254 | % and it's the only part requiring modification 255 | 256 | \def\set@mathaccent#1#2#3#4{% 257 | \xdef#2{\noexpand\protect\noexpand\cc@accent 258 | {"\mathchar@type#3\hexnumber@#1#4\relax}}} 259 | 260 | \ProcessOptions 261 | 262 | \endinput -------------------------------------------------------------------------------- /Handout/defs-private.sty: -------------------------------------------------------------------------------- 1 | % defs-private.sty 2 | \renewcommand{\WindowsKnimeInstallerName}{Windows / KNIME-4.4.1-Installer-64bit.exe} 3 | \renewcommand{\WindowsOpenMSInstallerName}{Windows / OpenMS-2.7.0-Win64.exe} 4 | \renewcommand{\WindowsOpenMSPrereqInstallerName}{Windows / OpenMS-2.7-prerequisites-installer.exe} 5 | \renewcommand{\WindowsPrerequisitesLink}{https://abibuilder.informatik.uni-tuebingen.de/archive/openms/OpenMSInstaller/PrerequisitesInstaller/OpenMS-2.7-prerequisites-installer.exe} 6 | \renewcommand{\WindowsDefaultPWizFolder}{C: / ProgramFiles / OpenMS-2.7.0 / share / OpenMS / THIRDPARTY / pwiz-bin} 7 | \renewcommand{\ExampleDataFolder}{C: / Example_Data} 8 | \renewcommand{\MacKnimeInstallerName}{Mac / knime_4.4.1.app.macosx.cocoa.x86_64.dmg} 9 | \renewcommand{\MacOpenMSInstallerName}{Mac / OpenMS-2.7.0-macOS.dmg} 10 | \renewcommand{\KnimeUpdateSite}{http://update.knime.com/analytics-platform/4.4} 11 | \renewcommand{\KnimeTrustedSite}{http://update.knime.com/community-contributions/trusted/4.4} 12 | \renewcommand{\KnimeTrunkSite}{https://abibuilder.informatik.uni-tuebingen.de/archive/openms/knime-plugin/updateSite/nightly/} 13 | \renewcommand{\KnimeUSBUpdateSite}{file:/KNIMEUpdateSite/2.7.0/} 14 | -------------------------------------------------------------------------------- /Handout/defsnohtml-private.sty: -------------------------------------------------------------------------------- 1 | % defsnohtml-private.sty 2 | \newcommand{\WindowsKnimeInstallerName}{Windows / KNIME-4.4.1-Installer-64bit.exe} 3 | \newcommand{\WindowsOpenMSInstallerName}{Windows / OpenMS-2.7.0-Win64.exe} 4 | \newcommand{\WindowsOpenMSPrereqInstallerName}{Windows / OpenMS-2.7-prerequisites-installer.exe} 5 | \newcommand{\WindowsPrerequisitesLink}{https://abibuilder.informatik.uni-tuebingen.de/archive/openms/OpenMSInstaller/PrerequisitesInstaller/OpenMS-2.7-prerequisites-installer.exe} 6 | \newcommand{\WindowsDefaultPWizFolder}{C: / Program Files / OpenMS-2.7.0 / share / OpenMS / THIRDPARTY / pwiz-bin} 7 | \newcommand{\ExampleDataFolder}{C: / Example\_Data} 8 | \newcommand{\MacKnimeInstallerName}{Mac / knime\_4.4.1.app.macosx.cocoa.x86\_64.dmg} 9 | \newcommand{\MacOpenMSInstallerName}{Mac / OpenMS-2.7.0-macOS.dmg} 10 | \newcommand{\KnimeUpdateSite}{http://update.knime.com/analytics-platform/4.4} 11 | \newcommand{\KnimeTrustedSite}{http://update.knime.com/community-contributions/trusted/4.4} 12 | \newcommand{\KnimeTrunkSite}{https://abibuilder.informatik.uni-tuebingen.de/archive/openms/knime-plugin/updateSite/nightly/} 13 | \newcommand{\KnimeUSBUpdateSite}{file:/KNIMEUpdateSite/2.7.0/} 14 | -------------------------------------------------------------------------------- /Handout/fonts/Ubuntu-B.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/fonts/Ubuntu-B.ttf -------------------------------------------------------------------------------- /Handout/fonts/Ubuntu-BI.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/fonts/Ubuntu-BI.ttf -------------------------------------------------------------------------------- /Handout/fonts/Ubuntu-C.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/fonts/Ubuntu-C.ttf -------------------------------------------------------------------------------- /Handout/fonts/Ubuntu-L.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/fonts/Ubuntu-L.ttf -------------------------------------------------------------------------------- /Handout/fonts/Ubuntu-LI.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/fonts/Ubuntu-LI.ttf -------------------------------------------------------------------------------- /Handout/fonts/Ubuntu-M.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/fonts/Ubuntu-M.ttf -------------------------------------------------------------------------------- /Handout/fonts/Ubuntu-MI.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/fonts/Ubuntu-MI.ttf -------------------------------------------------------------------------------- /Handout/fonts/Ubuntu-R.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/fonts/Ubuntu-R.ttf -------------------------------------------------------------------------------- /Handout/fonts/Ubuntu-RI.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/fonts/Ubuntu-RI.ttf -------------------------------------------------------------------------------- /Handout/fonts/UbuntuMono-B.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/fonts/UbuntuMono-B.ttf -------------------------------------------------------------------------------- /Handout/fonts/UbuntuMono-BI.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/fonts/UbuntuMono-BI.ttf -------------------------------------------------------------------------------- /Handout/fonts/UbuntuMono-R.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/fonts/UbuntuMono-R.ttf -------------------------------------------------------------------------------- /Handout/fonts/UbuntuMono-RI.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/fonts/UbuntuMono-RI.ttf -------------------------------------------------------------------------------- /Handout/graphics/Complete_No_ConsensusID.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/Complete_No_ConsensusID.png -------------------------------------------------------------------------------- /Handout/graphics/Complete_No_ConsensusID.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/Complete_No_ConsensusID.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 2136 2000 4 | %%HiResBoundingBox: 0.000000 0.000000 2135.733033 1999.750031 5 | %%CreationDate: Fri Apr 30 14:27:03 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/Complete_Workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/Complete_Workflow.png -------------------------------------------------------------------------------- /Handout/graphics/Complete_Workflow.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/Complete_Workflow.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 4000 5529 4 | %%HiResBoundingBox: 0.000000 0.000000 3999.500062 5529.308836 5 | %%CreationDate: Fri Apr 30 14:27:09 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/ID_FDR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/ID_FDR.png -------------------------------------------------------------------------------- /Handout/graphics/ID_FDR.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/ID_FDR.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 3993 2000 4 | %%HiResBoundingBox: 0.000000 0.000000 3992.500937 1999.750031 5 | %%CreationDate: Fri Apr 30 14:27:10 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/ID_Mapping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/ID_Mapping.png -------------------------------------------------------------------------------- /Handout/graphics/ID_Mapping.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/ID_Mapping.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 3620 2000 4 | %%HiResBoundingBox: 0.000000 0.000000 3619.547557 1999.750031 5 | %%CreationDate: Fri Apr 30 14:27:10 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/assets/OpenMS_5cm_300ppi_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/assets/OpenMS_5cm_300ppi_transparent.png -------------------------------------------------------------------------------- /Handout/graphics/assets/OpenMS_5cm_300ppi_transparent.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/assets/OpenMS_5cm_300ppi_transparent.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 142 103 4 | %%HiResBoundingBox: 0.000000 0.000000 141.732283 102.992126 5 | %%CreationDate: Fri Apr 30 14:27:10 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/assets/check30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/assets/check30.png -------------------------------------------------------------------------------- /Handout/graphics/assets/check30.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/assets/check30.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 173 117 4 | %%HiResBoundingBox: 0.000000 0.000000 172.798974 116.774307 5 | %%CreationDate: Fri Apr 30 14:27:10 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/assets/deNBI_Logo_rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/assets/deNBI_Logo_rgb.png -------------------------------------------------------------------------------- /Handout/graphics/assets/deNBI_Logo_rgb.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/assets/deNBI_Logo_rgb.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 2010 529 4 | %%HiResBoundingBox: 0.000000 0.000000 2010.000000 529.000000 5 | %%CreationDate: Fri Apr 30 14:27:11 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/assets/elixir_germany_white_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/assets/elixir_germany_white_background.png -------------------------------------------------------------------------------- /Handout/graphics/assets/elixir_germany_white_background.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/assets/elixir_germany_white_background.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 330 222 4 | %%HiResBoundingBox: 0.000000 0.000000 329.958755 221.972253 5 | %%CreationDate: Fri Apr 30 14:27:10 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/assets/question23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/assets/question23.png -------------------------------------------------------------------------------- /Handout/graphics/assets/question23.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/assets/question23.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 173 117 4 | %%HiResBoundingBox: 0.000000 0.000000 172.798974 116.774307 5 | %%CreationDate: Fri Apr 30 14:27:11 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/introduction/3dview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/introduction/3dview.png -------------------------------------------------------------------------------- /Handout/graphics/introduction/3dview.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/introduction/3dview.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 742 658 4 | %%HiResBoundingBox: 0.000000 0.000000 742.000000 658.000000 5 | %%CreationDate: Fri Apr 30 14:27:04 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/introduction/TOPPView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/introduction/TOPPView.png -------------------------------------------------------------------------------- /Handout/graphics/introduction/TOPPView.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/introduction/TOPPView.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 1449 869 4 | %%HiResBoundingBox: 0.000000 0.000000 1449.202284 868.621245 5 | %%CreationDate: Fri Apr 30 14:27:04 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/introduction/ms2_introduction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/introduction/ms2_introduction.png -------------------------------------------------------------------------------- /Handout/graphics/introduction/ms2_introduction.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/introduction/ms2_introduction.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 1230 517 4 | %%HiResBoundingBox: 0.000000 0.000000 1229.522459 517.201034 5 | %%CreationDate: Fri Apr 30 14:27:04 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/introduction/profilecentroided.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/introduction/profilecentroided.png -------------------------------------------------------------------------------- /Handout/graphics/introduction/profilecentroided.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/introduction/profilecentroided.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 1018 574 4 | %%HiResBoundingBox: 0.000000 0.000000 1017.872766 573.928259 5 | %%CreationDate: Fri Apr 30 14:27:03 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/introduction/proteowizard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/introduction/proteowizard.png -------------------------------------------------------------------------------- /Handout/graphics/introduction/proteowizard.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/introduction/proteowizard.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 547 434 4 | %%HiResBoundingBox: 0.000000 0.000000 546.826328 434.310623 5 | %%CreationDate: Fri Apr 30 14:27:04 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/isobaric/Dataset_MSstatsTMT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/isobaric/Dataset_MSstatsTMT.png -------------------------------------------------------------------------------- /Handout/graphics/isobaric/Dataset_MSstatsTMT.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/isobaric/Dataset_MSstatsTMT.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 996 821 4 | %%HiResBoundingBox: 0.000000 0.000000 996.000000 821.000000 5 | %%CreationDate: Fri Apr 30 14:27:03 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/isobaric/isobaric_experimental_design.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/isobaric/isobaric_experimental_design.jpg -------------------------------------------------------------------------------- /Handout/graphics/isobaric/isobaric_img_output_knime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/isobaric/isobaric_img_output_knime.png -------------------------------------------------------------------------------- /Handout/graphics/isobaric/isobaric_img_output_knime.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/isobaric/isobaric_img_output_knime.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 816 780 4 | %%HiResBoundingBox: 0.000000 0.000000 816.000000 780.000000 5 | %%CreationDate: Fri Apr 30 14:27:02 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/isobaric/isobaric_inference_wf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/isobaric/isobaric_inference_wf.png -------------------------------------------------------------------------------- /Handout/graphics/isobaric/isobaric_inference_wf.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/isobaric/isobaric_inference_wf.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 1081 481 4 | %%HiResBoundingBox: 0.000000 0.000000 1080.722161 480.720961 5 | %%CreationDate: Fri Apr 30 14:27:02 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/isobaric/isobaric_msstatstmt_wf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/isobaric/isobaric_msstatstmt_wf.png -------------------------------------------------------------------------------- /Handout/graphics/isobaric/isobaric_msstatstmt_wf.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/isobaric/isobaric_msstatstmt_wf.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 466 301 4 | %%HiResBoundingBox: 0.000000 0.000000 465.840932 300.720601 5 | %%CreationDate: Fri Apr 30 14:27:02 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/knime_setup/Minimal_FileInfo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/knime_setup/Minimal_FileInfo.pdf -------------------------------------------------------------------------------- /Handout/graphics/knime_setup/Minimal_FileInfoLoop.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/knime_setup/Minimal_FileInfoLoop.pdf -------------------------------------------------------------------------------- /Handout/graphics/knime_setup/Minimal_RawFileConverter_Loop-.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/knime_setup/Minimal_RawFileConverter_Loop-.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 482 152 4 | %%HiResBoundingBox: 0.000000 0.000000 481.920964 152.160304 5 | %%CreationDate: Fri Apr 30 14:27:09 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/knime_setup/Minimal_RawFileConverter_Loop.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/knime_setup/Minimal_RawFileConverter_Loop.pdf -------------------------------------------------------------------------------- /Handout/graphics/knime_setup/knime_configure_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/knime_setup/knime_configure_dialog.png -------------------------------------------------------------------------------- /Handout/graphics/knime_setup/knime_configure_dialog.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/knime_setup/knime_configure_dialog.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 548 633 4 | %%HiResBoundingBox: 0.000000 0.000000 547.931509 632.920885 5 | %%CreationDate: Fri Apr 30 14:27:09 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/knime_setup/knime_workbench_marked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/knime_setup/knime_workbench_marked.png -------------------------------------------------------------------------------- /Handout/graphics/knime_setup/knime_workbench_marked.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/knime_setup/knime_workbench_marked.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 1913 1163 4 | %%HiResBoundingBox: 0.000000 0.000000 1912.760905 1162.854643 5 | %%CreationDate: Fri Apr 30 14:27:10 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/knime_setup/knime_workbench_marked.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/knime_setup/knime_workbench_marked.xcf -------------------------------------------------------------------------------- /Handout/graphics/labelfree/PepConsensusId.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/PepConsensusId.png -------------------------------------------------------------------------------- /Handout/graphics/labelfree/PepConsensusId.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/labelfree/PepConsensusId.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 2184 1431 4 | %%HiResBoundingBox: 0.000000 0.000000 2184.484369 1430.642861 5 | %%CreationDate: Fri Apr 30 14:27:06 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/labelfree/PepIdFDR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/PepIdFDR.png -------------------------------------------------------------------------------- /Handout/graphics/labelfree/PepIdFDR.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/labelfree/PepIdFDR.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 828 230 4 | %%HiResBoundingBox: 0.000000 0.000000 828.115591 229.532039 5 | %%CreationDate: Fri Apr 30 14:27:06 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/labelfree/PepQuantId.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/PepQuantId.png -------------------------------------------------------------------------------- /Handout/graphics/labelfree/PepQuantId.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/labelfree/PepQuantId.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 1089 298 4 | %%HiResBoundingBox: 0.000000 0.000000 1089.440315 297.870389 5 | %%CreationDate: Fri Apr 30 14:27:05 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/labelfree/PepQuantIdNoAlign.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/PepQuantIdNoAlign.png -------------------------------------------------------------------------------- /Handout/graphics/labelfree/PepQuantIdNoAlign.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/labelfree/PepQuantIdNoAlign.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 943 282 4 | %%HiResBoundingBox: 0.000000 0.000000 943.131182 282.114021 5 | %%CreationDate: Fri Apr 30 14:27:05 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/labelfree/align.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/align.png -------------------------------------------------------------------------------- /Handout/graphics/labelfree/align.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/labelfree/align.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 590 234 4 | %%HiResBoundingBox: 0.000000 0.000000 590.161180 233.760468 5 | %%CreationDate: Fri Apr 30 14:27:05 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/labelfree/basic_peptide_ident.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/basic_peptide_ident.pdf -------------------------------------------------------------------------------- /Handout/graphics/labelfree/consensus_id.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/consensus_id.pdf -------------------------------------------------------------------------------- /Handout/graphics/labelfree/data_analysis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/data_analysis.png -------------------------------------------------------------------------------- /Handout/graphics/labelfree/data_analysis.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/labelfree/data_analysis.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 1440 558 4 | %%HiResBoundingBox: 0.000000 0.000000 1440.000000 558.000000 5 | %%CreationDate: Fri Apr 30 14:27:05 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/labelfree/fdr_peptide_identification.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/fdr_peptide_identification.pdf -------------------------------------------------------------------------------- /Handout/graphics/labelfree/featureXML.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/featureXML.png -------------------------------------------------------------------------------- /Handout/graphics/labelfree/featureXML.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/labelfree/featureXML.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 1439 833 4 | %%HiResBoundingBox: 0.000000 0.000000 1438.700819 833.366324 5 | %%CreationDate: Fri Apr 30 14:27:05 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/labelfree/iPRG/iPRG_lfq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/iPRG/iPRG_lfq.png -------------------------------------------------------------------------------- /Handout/graphics/labelfree/iPRG/iPRG_lfq.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/labelfree/iPRG/iPRG_lfq.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 870 295 4 | %%HiResBoundingBox: 0.000000 0.000000 870.481741 295.440591 5 | %%CreationDate: Fri Apr 30 14:27:05 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/labelfree/idXML.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/idXML.png -------------------------------------------------------------------------------- /Handout/graphics/labelfree/idXML.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/labelfree/idXML.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 1062 270 4 | %%HiResBoundingBox: 0.000000 0.000000 1062.148258 270.037693 5 | %%CreationDate: Fri Apr 30 14:27:06 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/labelfree/lfq.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/lfq.pdf -------------------------------------------------------------------------------- /Handout/graphics/labelfree/lfq_no_align.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/lfq_no_align.pdf -------------------------------------------------------------------------------- /Handout/graphics/labelfree/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/link.png -------------------------------------------------------------------------------- /Handout/graphics/labelfree/link.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/labelfree/link.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 254 210 4 | %%HiResBoundingBox: 0.000000 0.000000 254.160508 210.000420 5 | %%CreationDate: Fri Apr 30 14:27:05 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/labelfree/msstats/MSstats.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/msstats/MSstats.png -------------------------------------------------------------------------------- /Handout/graphics/labelfree/msstats/MSstats.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/labelfree/msstats/MSstats.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 1754 694 4 | %%HiResBoundingBox: 0.000000 0.000000 1753.780777 693.913261 5 | %%CreationDate: Fri Apr 30 14:27:04 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/labelfree/msstats/c2_c1-.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/labelfree/msstats/c2_c1-.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 865 865 4 | %%HiResBoundingBox: 0.000000 0.000000 864.961730 864.961730 5 | %%CreationDate: Fri Apr 30 14:27:04 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/labelfree/msstats/c2_c1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/msstats/c2_c1.pdf -------------------------------------------------------------------------------- /Handout/graphics/labelfree/msstats/c3_c2-.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/labelfree/msstats/c3_c2-.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 865 865 4 | %%HiResBoundingBox: 0.000000 0.000000 864.961730 864.961730 5 | %%CreationDate: Fri Apr 30 14:27:04 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/labelfree/msstats/c3_c2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/labelfree/msstats/c3_c2.pdf -------------------------------------------------------------------------------- /Handout/graphics/metabo/ToppView_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/ToppView_1.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/ToppView_1.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/ToppView_1.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 3060 1804 4 | %%HiResBoundingBox: 0.000000 0.000000 3060.000000 1804.000000 5 | %%CreationDate: Fri Apr 30 14:27:08 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/ToppView_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/ToppView_2.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/ToppView_2.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/ToppView_2.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 3060 1804 4 | %%HiResBoundingBox: 0.000000 0.000000 3060.000000 1804.000000 5 | %%CreationDate: Fri Apr 30 14:27:09 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/ToppView_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/ToppView_3.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/ToppView_3.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/ToppView_3.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 3060 1804 4 | %%HiResBoundingBox: 0.000000 0.000000 3060.000000 1804.000000 5 | %%CreationDate: Fri Apr 30 14:27:08 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/ToppView_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/ToppView_4.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/ToppView_4.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/ToppView_4.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 3060 1804 4 | %%HiResBoundingBox: 0.000000 0.000000 3060.000000 1804.000000 5 | %%CreationDate: Fri Apr 30 14:27:08 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/ToppView_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/ToppView_5.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/ToppView_5.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/ToppView_5.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 3060 1804 4 | %%HiResBoundingBox: 0.000000 0.000000 3060.000000 1804.000000 5 | %%CreationDate: Fri Apr 30 14:27:08 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/align.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/align.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/align.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/align.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 590 234 4 | %%HiResBoundingBox: 0.000000 0.000000 590.161180 233.760468 5 | %%CreationDate: Fri Apr 30 14:27:07 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/denovoid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/denovoid.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/denovoid.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/denovoid.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 531 303 4 | %%HiResBoundingBox: 0.000000 0.000000 531.121062 303.120606 5 | %%CreationDate: Fri Apr 30 14:27:08 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/glutathioneMetlin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/glutathioneMetlin.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/glutathioneMetlin.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/glutathioneMetlin.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 684 449 4 | %%HiResBoundingBox: 0.000000 0.000000 684.035152 449.023075 5 | %%CreationDate: Fri Apr 30 14:27:09 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/glutathioneTV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/glutathioneTV.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/glutathioneTV.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/glutathioneTV.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 652 318 4 | %%HiResBoundingBox: 0.000000 0.000000 652.033507 318.016343 5 | %%CreationDate: Fri Apr 30 14:27:07 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/link.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/link.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/link.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 254 210 4 | %%HiResBoundingBox: 0.000000 0.000000 254.160508 210.000420 5 | %%CreationDate: Fri Apr 30 14:27:07 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/mad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/mad.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/mad.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/mad.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 1141 577 4 | %%HiResBoundingBox: 0.000000 0.000000 1140.909252 576.830516 5 | %%CreationDate: Fri Apr 30 14:27:07 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/metabo_part1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/metabo_part1.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/metabo_part1.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/metabo_part1.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 875 93 4 | %%HiResBoundingBox: 0.000000 0.000000 875.044968 93.004779 5 | %%CreationDate: Fri Apr 30 14:27:07 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/metabo_part1_with_labels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/metabo_part1_with_labels.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/metabo_part1_with_labels.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/metabo_part1_with_labels.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 1053 211 4 | %%HiResBoundingBox: 0.000000 0.000000 1053.000000 211.000000 5 | %%CreationDate: Fri Apr 30 14:27:06 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/metabo_part2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/metabo_part2.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/metabo_part2.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/metabo_part2.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 1087 737 4 | %%HiResBoundingBox: 0.000000 0.000000 1087.000000 737.000000 5 | %%CreationDate: Fri Apr 30 14:27:07 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/metabo_part3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/metabo_part3.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/metabo_part3.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/metabo_part3.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 1301 735 4 | %%HiResBoundingBox: 0.000000 0.000000 1301.000000 735.000000 5 | %%CreationDate: Fri Apr 30 14:27:07 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/metabo_workflow.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/metabo_workflow.pdf -------------------------------------------------------------------------------- /Handout/graphics/metabo/minimal_FFM_wf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/minimal_FFM_wf.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/minimal_FFM_wf.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/minimal_FFM_wf.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 734 208 4 | %%HiResBoundingBox: 0.000000 0.000000 734.037721 208.010689 5 | %%CreationDate: Fri Apr 30 14:27:06 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/reporting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/reporting.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/reporting.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/reporting.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 807 395 4 | %%HiResBoundingBox: 0.000000 0.000000 807.000000 395.000000 5 | %%CreationDate: Fri Apr 30 14:27:06 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/speclib.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/speclib.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/speclib.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/speclib.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 546 138 4 | %%HiResBoundingBox: 0.000000 0.000000 545.881092 138.000276 5 | %%CreationDate: Fri Apr 30 14:27:08 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/structures_filter_results.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/structures_filter_results.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/structures_filter_results.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/structures_filter_results.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 690 594 4 | %%HiResBoundingBox: 0.000000 0.000000 690.035460 594.030527 5 | %%CreationDate: Fri Apr 30 14:27:08 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/metabo/structures_filter_workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/metabo/structures_filter_workflow.png -------------------------------------------------------------------------------- /Handout/graphics/metabo/structures_filter_workflow.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/metabo/structures_filter_workflow.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 461 147 4 | %%HiResBoundingBox: 0.000000 0.000000 461.023691 147.007555 5 | %%CreationDate: Fri Apr 30 14:27:09 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/openswath/OpenSWATHWF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/openswath/OpenSWATHWF.png -------------------------------------------------------------------------------- /Handout/graphics/openswath/OpenSWATHWF.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/openswath/OpenSWATHWF.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 318 245 4 | %%HiResBoundingBox: 0.000000 0.000000 318.060636 244.800490 5 | %%CreationDate: Fri Apr 30 14:27:10 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/openswathmetabo/assay_library_generation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/openswathmetabo/assay_library_generation.png -------------------------------------------------------------------------------- /Handout/graphics/openswathmetabo/decoy_generation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/openswathmetabo/decoy_generation.png -------------------------------------------------------------------------------- /Handout/graphics/openswathmetabo/loop_feautre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/openswathmetabo/loop_feautre.png -------------------------------------------------------------------------------- /Handout/graphics/openswathmetabo/loop_feautre.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/openswathmetabo/loop_feautre.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 1600 565 4 | %%HiResBoundingBox: 0.000000 0.000000 1600.000000 565.000000 5 | %%CreationDate: Fri Apr 30 14:27:11 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/openswathmetabo/oswm_example_wf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/openswathmetabo/oswm_example_wf.png -------------------------------------------------------------------------------- /Handout/graphics/openswathmetabo/pipeline_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/openswathmetabo/pipeline_overview.png -------------------------------------------------------------------------------- /Handout/graphics/openswathmetabo/pipeline_overview.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/openswathmetabo/pipeline_overview.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 604 301 4 | %%HiResBoundingBox: 0.000000 0.000000 604.441209 301.080602 5 | %%CreationDate: Fri Apr 30 14:27:12 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/protein_inference/inference_metanode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/protein_inference/inference_metanode.png -------------------------------------------------------------------------------- /Handout/graphics/protein_inference/inference_metanode.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/protein_inference/inference_metanode.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 531 257 4 | %%HiResBoundingBox: 0.000000 0.000000 531.027289 257.013208 5 | %%CreationDate: Fri Apr 30 14:27:03 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/protein_inference/proteinFDR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/protein_inference/proteinFDR.png -------------------------------------------------------------------------------- /Handout/graphics/protein_inference/proteinFDR.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/protein_inference/proteinFDR.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 654 654 4 | %%HiResBoundingBox: 0.000000 0.000000 654.000000 654.000000 5 | %%CreationDate: Fri Apr 30 14:27:03 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/protein_inference/realROC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/protein_inference/realROC.png -------------------------------------------------------------------------------- /Handout/graphics/protein_inference/realROC.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/protein_inference/realROC.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 726 558 4 | %%HiResBoundingBox: 0.000000 0.000000 726.000000 558.000000 5 | %%CreationDate: Fri Apr 30 14:27:03 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/qc/qc_basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/qc/qc_basic.png -------------------------------------------------------------------------------- /Handout/graphics/qc/qc_basic.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/qc/qc_basic.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 790 363 4 | %%HiResBoundingBox: 0.000000 0.000000 790.468507 363.231480 5 | %%CreationDate: Fri Apr 30 14:27:11 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/qc/qc_extra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/qc/qc_extra.png -------------------------------------------------------------------------------- /Handout/graphics/qc/qc_extra.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/qc/qc_extra.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 509 461 4 | %%HiResBoundingBox: 0.000000 0.000000 508.844100 460.839939 5 | %%CreationDate: Fri Apr 30 14:27:11 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/graphics/qc/qc_set.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Handout/graphics/qc/qc_set.png -------------------------------------------------------------------------------- /Handout/graphics/qc/qc_set.xbb: -------------------------------------------------------------------------------- 1 | %%Title: ./graphics/qc/qc_set.png 2 | %%Creator: extractbb 20210318 3 | %%BoundingBox: 0 0 414 267 4 | %%HiResBoundingBox: 0.000000 0.000000 414.435918 267.223159 5 | %%CreationDate: Fri Apr 30 14:27:11 2021 6 | 7 | -------------------------------------------------------------------------------- /Handout/handout.tex: -------------------------------------------------------------------------------- 1 | % !TeX document-id = {db57674a-e7c5-4596-bf14-fbd061264f8c} 2 | % !TEX TS-program = xelatexmk 3 | 4 | \documentclass[12pt]{myNotes} 5 | 6 | % Only needed for tex4ht (html) 7 | \ifdefined\HCode %This driver to tex4ht only. For tikz 8 | \def\pgfsysdriver{pgfsys-dvisvgm4ht.def} 9 | %\def\pgfsysdriver{pgfsys-tex4ht-updated.def} 10 | % for some private definitions like filenames, folders, urls 11 | \usepackage{defs-private} 12 | \fi 13 | 14 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 15 | \usepackage[english]{babel} 16 | \hyphenation{TOPPView} 17 | \hyphenation{KNIME} 18 | \hyphenation{OpenMS} 19 | \hyphenation{MSConvert} 20 | \hyphenation{MSConvertGUI} 21 | \hyphenation{msconvert} 22 | 23 | % to comment lager blocks 24 | \usepackage{comment} 25 | \usepackage{defsnohtml-private} 26 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 27 | % We use UBUNTU font for a more professional look. 28 | % UBUNTU fonts can be downloaded from: http://font.ubuntu.com. 29 | % but are also included in this repository at ./fonts. 30 | % 31 | \usepackage{fontspec} 32 | 33 | % If (for some reason), this command does not work, manually install the fonts system-wide and use 34 | % \setmainfont {Ubuntu} 35 | \setmainfont[ 36 | Ligatures=TeX, 37 | Path=./fonts/, 38 | Extension=.ttf, 39 | UprightFont=*-R, 40 | BoldFont=*-B, 41 | BoldItalicFont=*-BI, 42 | FontFace={l}{n}{*-L}, 43 | FontFace={l}{it}{*-LI}, 44 | FontFace={m}{n}{*-M}, 45 | FontFace={m}{it}{*-MI}, 46 | FontFace={k}{n}{*-B}, 47 | FontFace={k}{it}{*-BI} 48 | ] {Ubuntu} 49 | 50 | % If (for some reason), this command does not work, manually install the fonts system-wide and use 51 | % \setmainfont {UbuntuMono} 52 | \setmonofont[ 53 | Ligatures=TeX, 54 | Path=./fonts/, 55 | Extension=.ttf, 56 | UprightFont=*-R, 57 | BoldFont=*-B, 58 | BoldItalicFont=*-BI 59 | ] {UbuntuMono} 60 | 61 | % math fonts 62 | %\usepackage[math-style=TeX]{unicode-math} 63 | %\setmathfont{Cambria Math} 64 | 65 | 66 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 67 | \usepackage{amsmath,amssymb,amscd,bm,dsfont,wasysym} 68 | \usepackage{graphicx} 69 | \graphicspath{{./graphics/}} 70 | \usepackage[xetex, 71 | unicode, 72 | colorlinks=false, 73 | urlcolor=black, % \href{...}{...} external (URL) 74 | filecolor=black, % \href{...} local file 75 | linkcolor=black, % \ref{...} and \pageref{...} 76 | citecolor=black, 77 | pdftitle={OpenMS Tutorial Handouts}, 78 | pdfauthor={Johannes Veit}, 79 | pdfsubject={}, 80 | pdfkeywords={}, 81 | pagebackref, 82 | pdfpagemode=UseNone, 83 | bookmarksopen=true]{hyperref} 84 | 85 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 86 | 87 | \newfontfamily{\menlo}{Menlo-Regular.ttf} 88 | 89 | % We try to use minted now 90 | % \usepackage{listings} 91 | % \usepackage{color} 92 | % \usepackage{textcomp} 93 | % \definecolor{listinggray}{gray}{0.9} 94 | % \definecolor{lbcolor}{rgb}{0.9,0.9,0.9} 95 | % \lstset{ 96 | % backgroundcolor=\color{lbcolor}, 97 | % tabsize=4, 98 | % rulecolor=, 99 | % language=python, 100 | % basicstyle=\menlo\scriptsize, 101 | % upquote=true, 102 | % aboveskip={1.5\baselineskip}, 103 | % columns=fixed, 104 | % showstringspaces=false, 105 | % extendedchars=true, 106 | % breaklines=true, 107 | % prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}}, 108 | % frame=single, 109 | % showtabs=false, 110 | % showspaces=false, 111 | % showstringspaces=false, 112 | % identifierstyle=\menlo, 113 | % keywordstyle=\color[rgb]{0,0,1}, 114 | % commentstyle=\color[rgb]{0.133,0.545,0.133}, 115 | % stringstyle=\color[rgb]{0.627,0.126,0.941}, 116 | % } 117 | \usepackage{xcolor} 118 | \definecolor{lbcolor}{rgb}{0.9, 0.9, 0.98} 119 | 120 | \usepackage[newfloat]{minted} 121 | \newenvironment{code}{\captionsetup{type=listing}}{} 122 | \SetupFloatingEnvironment{listing}{name=Source Code} 123 | 124 | \usemintedstyle{tango} 125 | \setminted{bgcolor=lbcolor, breaklines=true, baselinestretch=0.8, showspaces=false, fontsize=\footnotesize} 126 | 127 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 128 | % only use those two in combination 129 | \usepackage[textsize=scriptsize]{todonotes} 130 | %\usepackage[firstpage]{draftwatermark} 131 | %\SetWatermarkScale{4} 132 | 133 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 134 | % better key and menu tips 135 | \usepackage{menukeys} 136 | \renewmenumacro{\directory}[/]{pathswithfolder} 137 | 138 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 139 | % easy referencing 140 | \usepackage[noabbrev,capitalise]{cleveref} 141 | 142 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 143 | % subfigures 144 | \usepackage[font=footnotesize, 145 | format=plain, 146 | labelfont={bf,sf,footnotesize}, 147 | textfont=footnotesize]{subcaption} 148 | 149 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 150 | % Nicer tables 151 | \usepackage{booktabs} 152 | 153 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 154 | % boxes with notes 155 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 156 | \usepackage{tikz} 157 | \usetikzlibrary[shadows] 158 | \usepackage[framemethod=TikZ]{mdframed} 159 | \usetikzlibrary{calc} 160 | 161 | %% Add an unused type option to the mdframed environment, that we can use to put in the div class 162 | %% when converting to html (see my.cfg and mdframed.4ht) 163 | \makeatletter 164 | \mdf@dolist{\mdf@do@stringoption}{% 165 | {type=={}}% 166 | } 167 | 168 | \global\mdfdefinestyle{note}{topline=false,bottomline=false,rightline=false,leftmargin=1cm,type=note} 169 | \newcommand{\note}[1]{ \begin{mdframed}[linewidth=1,style=note] \textbf{Note:}~#1 \end{mdframed} } 170 | 171 | \global\mdfdefinestyle{question}{ leftmargin=0pt, 172 | rightmargin=20pt, 173 | innertopmargin=30pt, 174 | innerbottommargin=10pt, 175 | innerleftmargin=45pt, 176 | middlelinewidth=0pt, 177 | linecolor=black, 178 | topline=false, 179 | bottomline=false, 180 | rightline=false, 181 | font=\normalfont\normalsize, 182 | frametitlefont=\normalfont\normalsize\bfseries, 183 | frametitleaboveskip=1em, 184 | type=question 185 | } 186 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 187 | \ifdefined\HCode 188 | \newmdenv[ 189 | style=question, 190 | frametitle=Question, 191 | linewidth=1 192 | ]{question} 193 | \else 194 | \newmdenv[ 195 | style=question, 196 | singleextra={ 197 | \node[inner sep=0pt,anchor=north west,xshift=10pt,yshift=-30pt] at (P-|O) {\includegraphics[width=1.3cm]{assets/question23}}; 198 | \node[inner sep=0pt,anchor=north west,yshift=-.8\baselineskip,font=\bfseries,xshift=10pt] at (P-|O) {Question}; 199 | }, 200 | firstextra={ 201 | \node[inner sep=0pt,anchor=north west,xshift=10pt,yshift=-30pt] at (P-|O) {\includegraphics[width=1.3cm]{assets/question23}}; 202 | \node[inner sep=0pt,anchor=north west,yshift=-.8\baselineskip,font=\bfseries,xshift=10pt] at (P-|O) {Question}; 203 | } 204 | ]{question} 205 | \fi 206 | 207 | \global\mdfdefinestyle{task}{ leftmargin=0pt, 208 | rightmargin=20pt, 209 | innertopmargin=30pt, 210 | innerbottommargin=10pt, 211 | innerleftmargin=45pt, 212 | middlelinewidth=0pt, 213 | linecolor=black, 214 | topline=false, 215 | bottomline=false, 216 | rightline=false, 217 | font=\normalfont\normalsize, 218 | frametitlefont=\normalfont\normalsize\bfseries, 219 | frametitleaboveskip=1em, 220 | type=task 221 | } 222 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 223 | \ifdefined\HCode 224 | \newmdenv[ 225 | style=task, 226 | frametitle=Task, 227 | linewidth=1 228 | ]{task} 229 | \else 230 | \newmdenv[ 231 | style=task, 232 | singleextra={ 233 | \node[inner sep=0pt,anchor=north west,xshift=10pt,yshift=-30pt] at (P-|O) {\includegraphics[width=1.3cm]{assets/check30}}; 234 | \node[inner sep=0pt,anchor=north west,yshift=-.8\baselineskip,font=\bfseries,xshift=10pt] at (P-|O) {Task}; 235 | }, 236 | firstextra={ 237 | \node[inner sep=0pt,anchor=north west,xshift=10pt,yshift=-30pt] at (P-|O) {\includegraphics[width=1.3cm]{assets/check30}}; 238 | \node[inner sep=0pt,anchor=north west,yshift=-.8\baselineskip,font=\bfseries,xshift=10pt] at (P-|O) {Task}; 239 | } 240 | ]{task} 241 | \fi 242 | 243 | \newcommand\figstrut[2]{ 244 | % #1: Height of object 245 | % #2: Height of highest object 246 | \dimen0=#1% 247 | \advance\dimen0 by -#2% 248 | \divide\dimen0 by -2% 249 | \dimen1=#1% 250 | \advance\dimen1 by \dimen0% 251 | \vrule height \dimen1 depth \dimen0 width 0pt\relax% 252 | } 253 | 254 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 255 | \newcommand*\justify{% 256 | \fontdimen2\font=0.4em% interword space 257 | \fontdimen3\font=0.2em% interword stretch 258 | \fontdimen4\font=0.1em% interword shrink 259 | \fontdimen7\font=0.1em% extra space 260 | \hyphenchar\font=`\-% allowing hyphenation 261 | } 262 | 263 | \newcommand{\KNIMENODE}[1]{\texttt{#1}} 264 | \newcommand{\OPENMSTOOL}[1]{\texttt{#1}} 265 | 266 | \newcommand*{\species}[1]{\textit{#1}} 267 | 268 | \usepackage{etoolbox} % simplified if / else checks in latex 269 | 270 | % define that this tutorial is based on a prerelease of OpenMS (will output some additional notes) 271 | \newtoggle{isprerelease} 272 | \togglefalse{isprerelease} 273 | 274 | 275 | \usepackage[lmargin=25mm,rmargin=25mm,bmargin=25mm,tmargin=25mm]{geometry} 276 | 277 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 278 | %highlight text 279 | \usepackage{xcolor} 280 | \usepackage{soul} 281 | \definecolor{lightgray}{RGB}{190,190,190} 282 | \sethlcolor{lightgray} 283 | 284 | \usepackage{tabularx} 285 | \begin{document} 286 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 287 | 288 | \firstpages 289 | 290 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 291 | 292 | \setcounter{equation}{0} 293 | \section{General remarks} 294 | \label{General remarks} 295 | 296 | \begin{itemize} 297 | \item This handout will guide you through an introductory tutorial for the OpenMS/TOPP software package~\cite{OpenMS}. 298 | \item OpenMS~\cite{Sturm2008,rost2016openms} is a versatile open-source library for mass spectrometry data analysis. Based on this 299 | library, we offer a collection of command-line tools ready to be used by end users. These so-called TOPP tools (short for ''The OpenMS Proteomics Pipeline'')~\cite{Kohlbacher2007} can be understood as small building blocks of arbitrarily complex data analysis workflows. 300 | \item In order to facilitate workflow construction, OpenMS was integrated into \newline 301 | KNIME~\cite{KNIME}, the Konstanz 302 | Information Miner, an open-source integration platform providing a powerful and flexible workflow system 303 | combined with \newline advanced data analytics, visualization, and report capabilities. Raw MS data as well as the 304 | results of data processing using TOPP can be visualized using TOPPView~\cite{Sturm2009}. 305 | \item This tutorial was designed for use in a hands-on tutorial session but can also be worked through at home using the online 306 | resources. You will become familiar with some of the basic functionalities of OpenMS/TOPP, TOPPView, as well as KNIME 307 | and learn how to use a selection of TOPP tools used in the tutorial workflows. 308 | \item All sample data referenced in this tutorial can be found in the \newline 309 | \directory{\ExampleDataFolder} folder, on the USB stick that came with this tutorial, or released online on our GitHub repository 310 | \hyperlink{https://github.com/OpenMS/Tutorials/releases}{OpenMS/Tutorials}. 311 | \end{itemize} 312 | 313 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 314 | %\newpage 315 | \include{gettingstarted} 316 | 317 | \include{labelfree} 318 | 319 | \include{protein_inference} 320 | 321 | \include{isobaric} 322 | 323 | \include{metabolomics} 324 | 325 | \include{openswath} 326 | 327 | \include{openswathmetabo} 328 | 329 | \include{pyopenms} 330 | 331 | \include{qualitycontrol} 332 | 333 | \include{troubleshooting} 334 | 335 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 336 | %\newpage 337 | 338 | \bibliographystyle{phreporturl} 339 | \bibliography{handout} 340 | 341 | \end{document} 342 | -------------------------------------------------------------------------------- /Handout/isobaric.tex: -------------------------------------------------------------------------------- 1 | 2 | %!TEX root = handout.tex 3 | 4 | \newpage 5 | \section{Isobaric analysis} 6 | In the last chapters, we identified and quantified peptides in a label-free experiment. In this section, we would like to introduce a possible workflow for the analysis of isobaric data. 7 | 8 | \subsection{Isobaric analysis workflow} 9 | Let's have a look at the workflow (see Fig \ref{fig:isobaric_wf}) 10 | 11 | \begin{figure}[htbp] 12 | \centering 13 | \includegraphics[width=0.95\textwidth]{isobaric/isobaric_inference_wf.png} 14 | \caption{Workflow for the analysis of isobaric data} 15 | \label{fig:isobaric_wf} 16 | \end{figure} 17 | 18 | \noindent The full analysis workflow can be found here: \\ 19 | \directory{Workflows/ \\ Identification\_quantification\_isobaric\_inference\_epifany\_MSstatsTMT}. \\ 20 | 21 | \noindent The workflow has four input nodes. The first for the experimental design to allow for MSstatsTMT compatible export (\KNIMENODE{MSstatsConverter}). The second for the .mzML files with the centroided spectra from the isobaric labeling experiment and the third one for the .fasta database used for identification. The last one allows to specify an output path for the plots generated by the \KNIMENODE{R View}, which runs MSstatsTMT (I). The quantification (A) is performed using the \KNIMENODE{IsobaricAnalzyer}. The tool is able to extract and normalize quantitative information from TMT and iTRAQ data. The values can be assessed from centroided MS2 or MS3 spectra (if available). Isotope correction is performed based on the specified correction matrix (as provided by the manufacturer). The identification (C) is applied as known from the previous chapters by using database search and a target-decoy database. 22 | 23 | \noindent To reduce the complexity of the data for later inference the q-value estimation and FDR filtering is performed on PSM level for each file individually (B). Afterwards the identification (PSM) and quantiative information is combined using the \KNIMENODE{IDMapper}. After the processing of all available files, the intermediate results are aggregated (\KNIMENODE{FileMerger} - D). All PSM results are used for score estimation and protein inference (\KNIMENODE{Epifany}) (E). For detailed information about protein inference please see Chaper \ref{topic:protein_inference}. Then, decoys are removed and the inference results are filtered via a protein group FDR. Peptide level results can be exported via \KNIMENODE{MzTabExporter} (F), protein level results can be obtained via the \KNIMENODE{ProteinQuantifier} (G) or the results can exported (\KNIMENODE{MSstatsConverter} - H) and further processed with the following R pipeline to allow for downstream processing using MSstatsTMT. \\ 24 | 25 | \noindent Please import the workflow from \directory{Workflows > \\ Identification\_quantification\_isobaric\_inference\_epifany\_MSstatsTMT} into KNIME via the menu entry \menu{File > Import KNIME workflow > Select file} and double-click the imported workflow in order to open it. Before you can execute the workflow, you have to correct the locations of the files in the \KNIMENODE{Input Files} nodes (don't forget the one for the FASTA database inside the ``ID'' meta node). Try and run your workflow by executing all nodes at once. 26 | 27 | \subsection{Excursion MSstatsTMT} 28 | The R package MSstatsTMT can be used for protein significance analysis in shotgun mass spectrometry-based proteomic experiments with tandem mass tag (TMT) labeling. MSstatsTMT provides functionality for two types of analysis \& their visualization: Protein summarization based on peptide quantification and Model-based group comparison to detect significant changes in abundance. It depends on accurate feature detection, identification and quantification which can be performed e.g. by an OpenMS workflow. \\ 29 | 30 | \noindent In general MSstatsTMT can be used for data processing \& visualization, as well as statistical modeling. Please see ~\cite{Huang2020} and \url{http://msstats.org/msstatstmt/} for further information. \\ 31 | 32 | \noindent There is also a very helpful online lecture and tutorial for MSstatsTMT from the May Institute Workshop 2020. Please see \url{https://youtu.be/3CDnrQxGLbA} 33 | 34 | \subsection{Dataset \& Experimental Design} 35 | We are using the MSV000084264 ground truth dataset, which consits of TMT10plex controlled mixes of different concentrated UPS1 peptides spiked into SILAC HeLa peptides measured in a dilution series \url{https://www.omicsdi.org/dataset/massive/MSV000084264}. Figure \ref{fig:isobaric_experimental_design} shows the experimental design. In this experiment 5 different TMT10plex mixtures -- different labeling strategies -- were analysed. These were measured in triplicates represented by the 15 MS runs (3 runs each). The example data, database and experimental design to run the workflow can be found here \url{https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Tutorials/Data/isobaric_MSV000084264/}. 36 | 37 | \begin{figure}[htbp] 38 | \centering 39 | \includegraphics[width=0.95\textwidth]{isobaric/isobaric_experimental_design.jpg} 40 | \caption{Experimental Design} 41 | \label{fig:isobaric_experimental_design} 42 | \end{figure} 43 | 44 | \noindent The experimental design in table format allows for MSstatsTMT compatible export. The design is represented by two tables. The first one \ref{t:isobaric_experimental_design_table_0} represents the overall structure of the experiment in terms of samples, fractions, labels and fraction groups. The second one \ref{t:isobaric_experimental_design_table_1} adds to the first by specifying specific conditions, biological replicates as well as mixtures and label for each channel. For additional information about the experimental design please see Table \ref{t:Experimental_design_exp} in Chapter \ref{topic:experimental_design}. 45 | 46 | \begin{table}[ht] 47 | \caption{Experimental Design 1} 48 | \label{t:isobaric_experimental_design_table_0} 49 | \centering 50 | \tiny 51 | \begin{tabular*}{0.90\textwidth}{lllll} 52 | Spectra\_Filepath & Fraction & Label & Fraction\_Group & Sample \\ 53 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_01.mzML & 1 & 1 & 1 & 1 \\ 54 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_01.mzML & 1 & 2 & 1 & 2 \\ 55 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_01.mzML & 1 & 3 & 1 & 3 \\ 56 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_01.mzML & 1 & 4 & 1 & 4 \\ 57 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_01.mzML & 1 & 5 & 1 & 5 \\ 58 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_01.mzML & 1 & 6 & 1 & 6 \\ 59 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_01.mzML & 1 & 7 & 1 & 7 \\ 60 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_01.mzML & 1 & 8 & 1 & 8 \\ 61 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_01.mzML & 1 & 9 & 1 & 9 \\ 62 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_01.mzML & 1 & 10 & 1 & 10 \\ 63 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_02.mzML & 1 & 1 & 2 & 11 \\ 64 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_02.mzML & 1 & 2 & 2 & 12 \\ 65 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_02.mzML & 1 & 3 & 2 & 13 \\ 66 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_02.mzML & 1 & 4 & 2 & 14 \\ 67 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_02.mzML & 1 & 5 & 2 & 15 \\ 68 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_02.mzML & 1 & 6 & 2 & 16 \\ 69 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_02.mzML & 1 & 7 & 2 & 17 \\ 70 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_02.mzML & 1 & 8 & 2 & 18 \\ 71 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_02.mzML & 1 & 9 & 2 & 19 \\ 72 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_02.mzML & 1 & 10 & 2 & 20 \\ 73 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_03.mzML & 1 & 1 & 3 & 21 \\ 74 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_03.mzML & 1 & 2 & 3 & 22 \\ 75 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_03.mzML & 1 & 3 & 3 & 23 \\ 76 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_03.mzML & 1 & 4 & 3 & 24 \\ 77 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_03.mzML & 1 & 5 & 3 & 25 \\ 78 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_03.mzML & 1 & 6 & 3 & 26 \\ 79 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_03.mzML & 1 & 7 & 3 & 27 \\ 80 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_03.mzML & 1 & 8 & 3 & 28 \\ 81 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_03.mzML & 1 & 9 & 3 & 29 \\ 82 | 161117\_SILAC\_HeLa\_UPS1\_TMT10\_SPS\_MS3\_Mixture1\_03.mzML & 1 & 10 & 3 & 30 83 | \end{tabular*} 84 | \end{table} 85 | 86 | \begin{table}[ht] 87 | \caption{Experimental Design 2} 88 | \label{t:isobaric_experimental_design_table_1} 89 | \centering 90 | \tiny 91 | \begin{tabular*}{0.90\textwidth}{lllll} 92 | Sample & MSstats\_Condition & MSstats\_BioReplicate & MSstats\_Mixture & LabelName \\ 93 | 1 & Norm & Norm & 1 & 126 \\ 94 | 2 & 0.667 & 0.667 & 1 & 127N \\ 95 | 3 & 0.125 & 0.125 & 1 & 127C \\ 96 | 4 & 0.5 & 0.5 & 1 & 128N \\ 97 | 5 & 1 & 1 & 1 & 128C \\ 98 | 6 & 0.125 & 0.125 & 1 & 129N \\ 99 | 7 & 0.5 & 0.5 & 1 & 129C \\ 100 | 8 & 1 & 1 & 1 & 130N \\ 101 | 9 & 0.667 & 0.667 & 1 & 130C \\ 102 | 10 & Norm & Norm & 1 & 131 \\ 103 | 11 & Norm & Norm & 1 & 126 \\ 104 | 12 & 0.667 & 0.667 & 1 & 127N \\ 105 | 13 & 0.125 & 0.125 & 1 & 127C \\ 106 | 14 & 0.5 & 0.5 & 1 & 128N \\ 107 | 15 & 1 & 1 & 1 & 128C \\ 108 | 16 & 0.125 & 0.125 & 1 & 129N \\ 109 | 17 & 0.5 & 0.5 & 1 & 129C \\ 110 | 18 & 1 & 1 & 1 & 130N \\ 111 | 19 & 0.667 & 0.667 & 1 & 130C \\ 112 | 20 & Norm & Norm & 1 & 131 \\ 113 | 21 & Norm & Norm & 1 & 126 \\ 114 | 22 & 0.667 & 0.667 & 1 & 127N \\ 115 | 23 & 0.125 & 0.125 & 1 & 127C \\ 116 | 24 & 0.5 & 0.5 & 1 & 128N \\ 117 | 25 & 1 & 1 & 1 & 128C \\ 118 | 26 & 0.125 & 0.125 & 1 & 129N \\ 119 | 27 & 0.5 & 0.5 & 1 & 129C \\ 120 | 28 & 1 & 1 & 1 & 130N \\ 121 | 29 & 0.667 & 0.667 & 1 & 130C \\ 122 | 30 & Norm & Norm & 1 & 131 123 | \end{tabular*} 124 | \end{table} 125 | 126 | \noindent After running the worklfow the \KNIMENODE{MSstatsConverter} will convert the OpenMS output in addition with the experimental design to a file (.csv) which can be processed by using MSstatsTMT. 127 | 128 | \subsubsection{MSstatsTMT analysis} 129 | Here, we depict the analysis by MSstatsTMT using a segment of the isobaric analysis workflow (Fig. \ref{fig:isobaric_msstatstmtwf} ). The segment is available as \directory{Workflows/ MSstatsTMT.knwf}. \\ 130 | 131 | \begin{figure}[htbp] 132 | \caption{MSstatsTMT workflow segment} 133 | \centering 134 | \includegraphics[width=0.80\textwidth]{isobaric/isobaric_msstatstmt_wf.png} 135 | \label{fig:isobaric_msstatstmtwf} 136 | \end{figure} 137 | 138 | \noindent There are two input nodes, the first one takes the result (.csv) from the \KNIMENODE{MSstatsConverter} and the second a path to the directory where the plots generated by MSstatsTMT should be saved. The \KNIMENODE{R source} node loads the required packages, such as dplyr for data wrangling, MSstatsTMT for analysis and MSstats for plotting. The inputs are further processed in the \KNIMENODE{R View} node. 139 | 140 | \noindent Here, the data of the \KNIMENODE{Input File} is loaded into R using the flow variable ["URI-0"]: 141 | \begin{code} 142 | \begin{minted}{R} 143 | file <- substr(knime.flow.in[["URI-0"]], 6, nchar(knime.flow.in[["URI-0"]])) 144 | MSstatsConverter_OpenMS_out <- read.csv(file) 145 | data <- MSstatsConverter_OpenMS_out 146 | \end{minted} 147 | \end{code} 148 | 149 | \noindent The OpenMStoMSstatsTMTFormat function preprocesses the OpenMS report and converts it into the required input format for MSstatsTMT, by filtering based on unique peptides and measurments in each MS run. 150 | 151 | \begin{code} 152 | \begin{minted}{R} 153 | processed.data <- OpenMStoMSstatsTMTFormat(data) 154 | \end{minted} 155 | \end{code} 156 | 157 | \noindent Afterwards different normalization steps are performed (global, protein, runs) as well as data imputation by using the msstats method. In addition peptide level data is summarized to protein level data. 158 | 159 | \begin{code} 160 | \begin{minted}{R} 161 | quant.data <- proteinSummarization(processed.data, 162 | method="msstats", 163 | global_norm=TRUE, 164 | reference_norm=TRUE, 165 | MBimpute = TRUE, 166 | maxQuantileforCensored = NULL, 167 | remove_norm_channel = TRUE, 168 | remove_empty_channel = TRUE) 169 | \end{minted} 170 | \end{code} 171 | 172 | \noindent There a lot of different possibilities to configure this method please have a look at the MSstatsTMT package for additional detailed information \url{http://bioconductor.org/packages/release/bioc/html/MSstatsTMT.html} 173 | 174 | \noindent The next step is the comparions of the different conditions, here either a pairwise comparision can be performed or a confusion matrix can be created. The goal is to detect and compare the UPS peptides spiked in at different concentrations. 175 | 176 | \begin{code} 177 | \begin{minted}{R} 178 | # prepare contrast matrix 179 | unique(quant.data$Condition) 180 | 181 | comparison<-matrix(c(-1,0,0,1, 182 | 0,-1,0,1, 183 | 0,0,-1,1, 184 | 0,1,-1,0, 185 | 1,-1,0,0), nrow=5, byrow = T) 186 | 187 | # Set the names of each row 188 | row.names(comparison)<- contrasts <- c("1-0125", 189 | "1-05", 190 | "1-0667", 191 | "05-0667", 192 | "0125-05") 193 | # Set the column names 194 | colnames(comparison)<- c("0.125", "0.5", "0.667", "1") 195 | 196 | \end{minted} 197 | \end{code} 198 | 199 | \noindent The constructed confusion matrix is used in the groupComparisonTMT function to test for significant changes in protein abundance across conditions based on a family of linear mixed-effects models in TMT experiments. 200 | 201 | \begin{code} 202 | \begin{minted}{R} 203 | data.res <- groupComparisonTMT(data = quant.data, 204 | contrast.matrix = comparison, 205 | moderated = TRUE, # do moderated t test 206 | adj.method = "BH") # multiple comparison adjustment 207 | data.res <- data.res %>% filter(!is.na(Protein)) 208 | \end{minted} 209 | \end{code} 210 | 211 | \noindent In the next step the comparison can be plotted using the groupComparisonPlots function by MSstats 212 | 213 | \begin{code} 214 | \begin{minted}{R} 215 | library(MSstats) 216 | groupComparisonPlots(data=data.res.mod, type="VolcanoPlot", address=F, which.Comparison = "0125-05", sig = 0.05) 217 | \end{minted} 218 | \end{code} 219 | 220 | \noindent Here, we have a example output of the \KNIMENODE{R View}, which depicts the significant regulated UPS proteins in the comparison of 125 to 05 (Fig. \ref{fig:isobaric_volcanoplot}). 221 | 222 | \begin{figure}[htbp] 223 | \centering 224 | \includegraphics[width=0.80\textwidth]{isobaric/isobaric_img_output_knime.png} 225 | \caption{Volcanoplot of the group comparison regarding 0125 to 05.} 226 | \label{fig:isobaric_volcanoplot} 227 | \end{figure} 228 | 229 | \noindent All plots are saved to the in the beginning specified output directory in addition. 230 | 231 | \subsection{Note} 232 | The isobaric analysis does not always has to be performed on protein level, for example for phosphoproteomics studies one is usually interested on the peptide level - in addition inference on peptides with post-translational modification is not straight forward. Here, we present and additonal workflow on peptide level, which can potentially be adapted and used for such cases. 233 | Please see \directory{Workflows/Identification\_quantification\_isobaric\_MSstatsTMT}. 234 | 235 | 236 | % Additional material for the plubell dataset - which could be used as additional material. 237 | 238 | %The workflow is performed peptide level (B, D, F, H), were the posterior error probability (PEP) estimation and FDR filtering is performed on PSM level for each file individually (B). Afterwards the identification (PSM) and quantiative information is combined using the \KNIMENODE{IDMapper}. After the processing of all available files, the intermediate results are aggregated (D) and can be exported via \KNIMENODE{MzTabExporter} (F) or further processed to obtain a MSstatsTMT compatible version. Here, the R package MSstatsTMT can be used for further processing. \\ 239 | 240 | %\subsubsection{Dataset} 241 | %We will illustrate the experimental design and the analysis on a subset of the Plubell 2017 dataset (~\cite{Plubell2017}; PRIDE: \url{https://www.ebi.ac.uk/pride/archive/projects/PXD005953}), which is a multiplexed TMT labeling experiment to determine age and high fat diets specific proteome changes in mouse epididymal adipose tissue. It is fairly complex multiplexing 3 TMT experiments with 10 channels each (9 fractions each). 242 | % 243 | %\begin{figure}[htbp] 244 | % \centering 245 | % \includegraphics[width=0.95\textwidth]{isobaric/Dataset_MSstatsTMT.png} 246 | % \caption{Dataset} 247 | % \label{fig:isobaric_dataset_plubell} 248 | %\end{figure} 249 | % 250 | %\subsection{Experimental Design (TMT)} 251 | %The experimental design for a TMT experiment is similar to a LFQ experiment. The difference is in the available channels and possible Mixtures. 252 | % 253 | %\begin{table}[!ht] 254 | %\centering 255 | %\small 256 | %\begin{tabular*}{0.95\textwidth}{lllll} 257 | %Spectra\_Filepath & Fraction & Label & Fraction\_Group & Sample \\ 258 | %PAMI-176\_Mouse\_A-J\_TMT\_14pctACN.mzML & 1 & 1 & 1 & 1 \\ 259 | %PAMI-176\_Mouse\_A-J\_TMT\_14pctACN.mzML & 1 & 2 & 1 & 2 \\ 260 | %PAMI-176\_Mouse\_A-J\_TMT\_14pctACN.mzML & 1 & 3 & 1 & 3 \\ 261 | %PAMI-176\_Mouse\_A-J\_TMT\_14pctACN.mzML & 1 & 4 & 1 & 4 \\ 262 | %PAMI-176\_Mouse\_A-J\_TMT\_14pctACN.mzML & 1 & 5 & 1 & 5 \\ 263 | %PAMI-176\_Mouse\_A-J\_TMT\_14pctACN.mzML & 1 & 6 & 1 & 6 \\ 264 | %PAMI-176\_Mouse\_A-J\_TMT\_14pctACN.mzML & 1 & 7 & 1 & 7 \\ 265 | %PAMI-176\_Mouse\_A-J\_TMT\_14pctACN.mzML & 1 & 8 & 1 & 8 \\ 266 | %PAMI-176\_Mouse\_A-J\_TMT\_14pctACN.mzML & 1 & 9 & 1 & 9 \\ 267 | %PAMI-176\_Mouse\_A-J\_TMT\_14pctACN.mzML & 1 & 10 & 1 & 10 \\ 268 | %PAMI-176\_Mouse\_K-T\_TMT\_14pctACN.mzML & 1 & 1 & 2 & 11 \\ 269 | %PAMI-176\_Mouse\_K-T\_TMT\_14pctACN.mzML & 1 & 2 & 2 & 12 \\ 270 | %PAMI-176\_Mouse\_K-T\_TMT\_14pctACN.mzML & 1 & 3 & 2 & 13 \\ 271 | %PAMI-176\_Mouse\_K-T\_TMT\_14pctACN.mzML & 1 & 4 & 2 & 14 \\ 272 | %PAMI-176\_Mouse\_K-T\_TMT\_14pctACN.mzML & 1 & 5 & 2 & 15 \\ 273 | %PAMI-176\_Mouse\_K-T\_TMT\_14pctACN.mzML & 1 & 6 & 2 & 16 \\ 274 | %PAMI-176\_Mouse\_K-T\_TMT\_14pctACN.mzML & 1 & 7 & 2 & 17 \\ 275 | %PAMI-176\_Mouse\_K-T\_TMT\_14pctACN.mzML & 1 & 8 & 2 & 18 \\ 276 | %PAMI-176\_Mouse\_K-T\_TMT\_14pctACN.mzML & 1 & 9 & 2 & 19 \\ 277 | %PAMI-176\_Mouse\_K-T\_TMT\_14pctACN.mzML & 1 & 10 & 2 & 20 \\ 278 | %PAMI-194\_Mouse\_U-Dd\_TMT\_14pctACN.mzML & 1 & 1 & 3 & 21 \\ 279 | %PAMI-194\_Mouse\_U-Dd\_TMT\_14pctACN.mzML & 1 & 2 & 3 & 22 \\ 280 | %PAMI-194\_Mouse\_U-Dd\_TMT\_14pctACN.mzML & 1 & 3 & 3 & 23 \\ 281 | %PAMI-194\_Mouse\_U-Dd\_TMT\_14pctACN.mzML & 1 & 4 & 3 & 24 \\ 282 | %PAMI-194\_Mouse\_U-Dd\_TMT\_14pctACN.mzML & 1 & 5 & 3 & 25 \\ 283 | %PAMI-194\_Mouse\_U-Dd\_TMT\_14pctACN.mzML & 1 & 6 & 3 & 26 \\ 284 | %PAMI-194\_Mouse\_U-Dd\_TMT\_14pctACN.mzML & 1 & 7 & 3 & 27 \\ 285 | %PAMI-194\_Mouse\_U-Dd\_TMT\_14pctACN.mzML & 1 & 8 & 3 & 28 \\ 286 | %PAMI-194\_Mouse\_U-Dd\_TMT\_14pctACN.mzML & 1 & 9 & 3 & 29 \\ 287 | %PAMI-194\_Mouse\_U-Dd\_TMT\_14pctACN.mzML & 1 & 10 & 3 & 30 \\ 288 | %\end{tabular*} 289 | %\end{table} 290 | % 291 | %\begin{table}[!ht] 292 | %\centering 293 | %\small 294 | %\begin{tabular*}{0.95\textwidth}{lllll} 295 | %Sample & MSstats\_Condition & MSstats\_BioReplicate & MSstats\_Mixture & LabelName \\ 296 | %1 & Long\_LF & 1 & 1 & 126 \\ 297 | %2 & Long\_LF & 2 & 1 & 127N \\ 298 | %3 & Long\_M & 3 & 1 & 127C \\ 299 | %4 & Short\_LF & 4 & 1 & 128N \\ 300 | %5 & Norm & 5 & 1 & 128C \\ 301 | %6 & Long\_M & 6 & 1 & 129N \\ 302 | %7 & Short\_HF & 7 & 1 & 129C \\ 303 | %8 & Short\_HF & 8 & 1 & 130N \\ 304 | %9 & Norm & 9 & 1 & 130C \\ 305 | %10 & Short\_LF & 10 & 1 & 131 \\ 306 | %11 & Short\_LF & 11 & 2 & 126 \\ 307 | %12 & Norm & 12 & 2 & 127N \\ 308 | %13 & Short\_HF & 13 & 2 & 127C \\ 309 | %14 & Short\_LF & 14 & 2 & 128N \\ 310 | %15 & Long\_LF & 15 & 2 & 128C \\ 311 | %16 & Long\_HF & 16 & 2 & 129N \\ 312 | %17 & Norm & 17 & 2 & 129C \\ 313 | %18 & Long\_M & 18 & 2 & 130N \\ 314 | %19 & Long\_LF & 19 & 2 & 130C \\ 315 | %20 & Short\_HF & 20 & 2 & 131 \\ 316 | %21 & Long\_HF & 21 & 3 & 126 \\ 317 | %22 & Norm & 22 & 3 & 127N \\ 318 | %23 & Long\_M & 23 & 3 & 127C \\ 319 | %24 & Long\_HF & 24 & 3 & 128N \\ 320 | %25 & Long\_LF & 25 & 3 & 128C \\ 321 | %26 & Long\_HF & 26 & 3 & 129N \\ 322 | %27 & Short\_HF & 27 & 3 & 129C \\ 323 | %28 & Long\_HF & 28 & 3 & 130N \\ 324 | %29 & Norm & 29 & 3 & 130C \\ 325 | %30 & Short\_LF & 30 & 3 & 131 326 | %\end{tabular*} 327 | %\end{table} 328 | -------------------------------------------------------------------------------- /Handout/mdframed.4ht: -------------------------------------------------------------------------------- 1 | % mdframed.4ht (2019-11-07-14:08), generated from tex4ht-4ht.tex 2 | % Copyright 2017 TeX Users Group 3 | % 4 | % This work may be distributed and/or modified under the 5 | % conditions of the LaTeX Project Public License, either 6 | % version 1.3c of this license or (at your option) any 7 | % later version. The latest version of this license is in 8 | % http://www.latex-project.org/lppl.txt 9 | % and version 1.3c or later is part of all distributions 10 | % of LaTeX version 2005/12/01 or later. 11 | % 12 | % This work has the LPPL maintenance status "maintained". 13 | % 14 | % The Current Maintainer of this work 15 | % is the TeX4ht Project . 16 | % 17 | % If you modify this program, changing the 18 | % version identification would be appreciated. 19 | \immediate\write-1{version 2019-11-07-14:08} 20 | 21 | \NewConfigure{mdframed}{2} 22 | \NewConfigure{mdframedstyle}{1} 23 | \NewConfigure{mdframetitle}{2} 24 | \newcount\mdf:env:cnt 25 | \def\mdf:id{mdframed-\the\mdf:env:cnt} 26 | \def\mdf@trivlist#1{\global\advance\mdf:env:cnt by1\relax\a:mdframed\a:mdframedstyle% 27 | \ifdefempty{\mdf@frametitle}{}{\mdfframedtitleenv{\mdf@frametitle}\a:mdframetitle\mdf@@frametitle@use\b:mdframetitle}\let\mdf@frametitle\relax% 28 | \let\mdf@style\relax 29 | } 30 | \def\mdf:type{\mdf@type} 31 | \def\endmdf@trivlist{\b:mdframed} 32 | 33 | % disable frame drawing, it can be supported using CSS 34 | \def\detected@mdf@put@frame{}% 35 | 36 | \append:def\mdf@@ignorelastdescenders{\let\orig:unskip\unskip\def\unskip{\let\unskip\orig:unskip}}% 37 | \def\mdf@lrbox#1{} 38 | \def\endmdf@lrbox{} 39 | 40 | \Hinput{mdframed} 41 | \endinput 42 | -------------------------------------------------------------------------------- /Handout/menukeys.4ht: -------------------------------------------------------------------------------- 1 | % use the following Configuration to patch all defined styles (not commands!) 2 | \NewConfigure{defmenukey}[1]{% 3 | % define \Configure{menukey} - it will be used to insert \Picture+ ... \EndPicture 4 | \NewConfigure{menukey#1}{2} 5 | % insert hooks into style's pre and post macros 6 | \expandafter\pend:def\csname tw@style@#1@pre\endcsname{\csname a:menukey#1\endcsname}% 7 | \expandafter\append:def\csname tw@style@#1@post\endcsname{\csname b:menukey#1\endcsname}% 8 | % use pictures by default for the style configuration 9 | \Configure{menukey#1}{\Picture*{}}{\EndPicture} 10 | } 11 | 12 | \Configure{defmenukey}{menus} 13 | \Configure{defmenukey}{paths} 14 | \Configure{defmenukey}{roundedkeys} 15 | \Configure{defmenukey}{roundedmenus} 16 | \Configure{defmenukey}{angularmenus} 17 | \Configure{defmenukey}{typewriterkeys} 18 | \Configure{defmenukey}{hyphenatepaths} 19 | \Configure{defmenukey}{pathswithfolder} 20 | \Configure{defmenukey}{shadowedangularkeys} 21 | \Configure{defmenukey}{pathswithblackfolder} 22 | \Configure{defmenukey}{hyphenatepathswithfolder} 23 | \Configure{defmenukey}{hyphenatepathswithblackfolder} 24 | 25 | \Hinput{menukeys} 26 | \endinput 27 | 28 | -------------------------------------------------------------------------------- /Handout/my.cfg: -------------------------------------------------------------------------------- 1 | \Preamble{xhtml} 2 | 3 | \ScriptCommand{\JavaScript}{\HCode{\Hnewline\Hnewline}} 4 | 5 | \makeatletter 6 | \ExplSyntaxOn 7 | \Configure{Gin-dim}{style="width:\fp_eval:n{round(\Gin@req@width/\textwidth*100,2)}\%"} 8 | \ExplSyntaxOff 9 | \makeatother 10 | 11 | \DeclareGraphicsExtensions{.svg,.png,.jpg} 12 | 13 | \Configure{@HEAD}{\HCode{\Hnewline}} 15 | \Configure{@HEAD}{\HCode{\Hnewline}} 17 | 18 | \catcode`\:=11 19 | \Configure{mdframed}{% 20 | \ifvmode\IgnorePar\fi\EndP\HCode{
}\par 21 | }{\ifvmode\IgnorePar\fi\EndP\HCode{
}\par} 22 | \catcode`\:=12 23 | 24 | \makeatletter 25 | 26 | % we must refer to minipage from the css file, because tags are beeing 27 | % written before we know dimensions 28 | \newcount\mini@count 29 | \ExplSyntaxOn 30 | % save original minipage 31 | \let\oldiimini\@iiiminipage 32 | % redefine minipage 33 | \def\@iiiminipage#1#2[#3]#4{% 34 | % calculate minipage dimensions and save it to the CSS file 35 | \Css{\#minipage\the\mini@count{width:\fp_eval:n{#4/\textwidth*100 - 1}\%;}}% 36 | \global\advance\mini@count by 1\relax% 37 | \oldiimini{#1}{#2}[#3]{#4}% 38 | } 39 | 40 | \ExplSyntaxOff 41 | 42 | \ConfigureEnv{minipage}{\ifvmode\IgnorePar\fi\EndP\HCode{
}} 43 | {\ifvmode\IgnorePar\fi\EndP\HCode{
\Hnewline}% 44 | % we must write dimension here to the css file 45 | }{}{} 46 | 47 | \makeatother 48 | 49 | \Css{div.minipage { 50 | float: left; 51 | } 52 | } 53 | 54 | \Css{div.minipage:last-child { 55 | clear: none; 56 | float: right; 57 | } 58 | } 59 | 60 | \Css{ div.minipage + :not(.minipage) {clear:both;overflow:auto;width:100\%;}} 61 | 62 | \begin{document} 63 | % styling for listings (algorithms) 64 | % basicstyle 65 | \Css{div.lstlisting .cmtt-10 {font-family:monospace; color:DimGray}} 66 | % identifierstyle 67 | \Css{div.lstlisting .cmss-10 {font-family:monospace; color:Black}} 68 | % keywordstyle 69 | \Css{div.lstlisting .cmssbx-10 {font-family:monospace; color:Blue}} 70 | % commentstyle 71 | \Css{div.lstlisting .cmr-10 {font-family:monospace; color:Green}} 72 | % stringstyle 73 | \Css{div.lstlisting .cmti-10 {font-family:monospace; color:DarkRed}} 74 | % numberstyle 75 | \Css{div.lstlisting .cmr-8 {display:inline-block; width:20px}} 76 | 77 | \HCode{ \Hnewline} 78 | \HCode{ \Hnewline} 79 | \JavaScript 80 | window.onload = function() { 81 | $("figure img").each(function () { 82 | var img = $(this); 83 | img.attr("data-fancybox","fig"); 84 | }); 85 | $('[data-fancybox="fig"]').fancybox({ 86 | caption : function(instance,item) { 87 | return $(this).closest('figure').find('figcaption').html(); 88 | }, 89 | padding: 0 90 | }); 91 | } 92 | \EndJavaScript 93 | 94 | \EndPreamble 95 | -------------------------------------------------------------------------------- /Handout/myNotes.cls: -------------------------------------------------------------------------------- 1 | \NeedsTeXFormat{LaTeX2e} \ProvidesClass{myNotes}[10/06/2005 class for my notes] 2 | 3 | \RequirePackage{setspace} 4 | \newif\ifsinglesp@ 5 | \newif\ifdoublesp@ 6 | \doublesp@false 7 | 8 | \DeclareOption{singlespace}{\singlesp@true} 9 | \DeclareOption{doublespace}{\doublesp@true} 10 | \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} 11 | 12 | \ProcessOptions 13 | 14 | \LoadClass[a4paper]{article} 15 | 16 | \hoffset0cm 17 | \oddsidemargin0cm 18 | \evensidemargin0cm 19 | \textwidth16.7cm 20 | 21 | % \oddsidemargin 8.6truemm \evensidemargin 0truemm 22 | % \marginparwidth 40pt \marginparsep 10pt 23 | % \topmargin 0truemm \headsep 10truemm 24 | % \textheight 224truemm \textwidth 150truemm 25 | 26 | \brokenpenalty=10000 27 | 28 | \AtBeginDocument{% 29 | \ifdoublesp@% 30 | \doublespacing% 31 | \else\ifsinglesp@% 32 | \singlespacing% 33 | \else% 34 | \onehalfspacing% 35 | \fi% 36 | \fi 37 | } 38 | 39 | \def\date#1{\gdef\@date{#1}} 40 | \def\town#1{\gdef\@town{#1}} 41 | \def\abstract#1{\gdef\@abstract{#1}} 42 | 43 | \def\theequation{\arabic{section}.\arabic{equation}} 44 | 45 | \newcommand {\Zb} {\mathbb{Z}} % integer numbers 46 | \newcommand {\Qb} {\mathbb{Q}} % rartional numbers 47 | \newcommand {\Rb} {\mathbb{R}} % real numbers 48 | \newcommand {\Cb} {\mathbb{C}} % complex numbers 49 | \newcommand {\Nb} {\mathbb{N}} % natural numbers 50 | \newcommand {\Db} {\mathbb{D}} 51 | \newcommand {\Eb} {\mathbb{E}} 52 | \newcommand {\Fb} {\mathbb{F}} 53 | \newcommand {\Gb} {\mathbb{G}} 54 | \newcommand {\Hb} {\mathbb{H}} 55 | \newcommand {\Jb} {\mathbb{J}} 56 | \newcommand {\Kb} {\mathbb{K}} 57 | \newcommand {\Lb} {\mathbb{L}} 58 | \newcommand {\const} {\operatorname{const.}} 59 | \newcommand {\tr} {\operatorname{tr}} 60 | \newcommand {\ord} {\mathcal{O}} 61 | \newcommand {\Lag} {\mathcal{L}} 62 | \newcommand {\QCD} {\operatorname{QCD}} 63 | \newcommand {\BRS} {\operatorname{BRS}} 64 | \newcommand {\YM} {\operatorname{YM}} 65 | \newcommand {\kin} {\operatorname{kin}} 66 | \newcommand {\inv} {\operatorname{inv}} 67 | \newcommand {\GF} {\operatorname{GF}} 68 | \newcommand {\FP} {\operatorname{FP}} 69 | \newcommand {\Res}[1] {\operatorname{Res} \Big|_{#1}} 70 | \newcommand {\I} {\operatorname{I}} 71 | \newcommand {\II} {\operatorname{II}} 72 | \newcommand {\III} {\operatorname{III}} 73 | \newcommand {\id} {\mathbf{1}} %identity 74 | % collides with menukeys 75 | %\newcommand {\shift} {\hspace{3mm}} 76 | \newcommand {\nshift} {\hspace{-3mm}} 77 | \newcommand {\rct} {\tilde{r}_c} 78 | \newcommand {\mirror} {\operatorname{mirror}} 79 | \newcommand {\vp} {\varphi} 80 | 81 | \def\titlepage{ 82 | \thispagestyle{empty} 83 | \begin{center} 84 | \includegraphics[width=0.7\textwidth]{assets/OpenMS_5cm_300ppi_transparent.png}\\[0.5cm] 85 | \LARGE\textbf{User Tutorial}\\[5cm] 86 | \vfill 87 | %\vspace{2cm} 88 | \begin{figure} 89 | \begin{minipage}{.5\textwidth} 90 | \centering 91 | \includegraphics[width=.8\linewidth, height=2cm]{assets/deNBI_Logo_rgb.png} 92 | \end{minipage}% 93 | \begin{minipage}{.5\textwidth} 94 | \centering 95 | \figstrut{5cm}{2cm} 96 | \includegraphics[width=.8\linewidth, height=5cm]{assets/elixir_germany_white_background.png} 97 | \end{minipage} 98 | \end{figure} 99 | %\hfill\vspace{-2cm}\includegraphics[width=0.3\textwidth]{./graphics/assets/deNBI_Logo_rgb.png}\hfill\hspace{5cm}\vspace{1cm}\includegraphics[width=0.3\textwidth]{./graphics/assets/elixir_germany_white_background.png}\\ 100 | \end{center} 101 | \newpage 102 | \thispagestyle{empty} 103 | \vfill 104 | \begin{center} 105 | \Large The OpenMS Developers\\[1cm] 106 | % presented by: \\ 107 | % Julianus Pfeuffer, Timo Sachsenberg \\[2cm] 108 | % either put here the presenting authors for workshops or all authors 109 | % \textsc{\Large License}\\[1cm] 110 | \vfill 111 | \today 112 | ~\\ %hard space 113 | \textbf{Creative Commons Attribution 4.0 International} 114 | ~\\ %hard space 115 | \textbf{(CC BY 4.0)}\\ 116 | \end{center} 117 | \newpage 118 | } % end titlepage 119 | 120 | \def\firstpages{ 121 | \pagenumbering{arabic} 122 | \pagestyle{plain} 123 | \titlepage 124 | \tableofcontents 125 | \newpage 126 | \pagestyle{plain} 127 | } 128 | -------------------------------------------------------------------------------- /Handout/mybuild.mk4: -------------------------------------------------------------------------------- 1 | if mode=="draft" then 2 | Make:htlatex {} 3 | else 4 | Make:htlatex {} 5 | Make:bibtex {} 6 | Make:htlatex {} 7 | Make:htlatex {} 8 | Make:htlatex {} 9 | end 10 | mkutils.copy("test.css","output/test.css") 11 | -------------------------------------------------------------------------------- /Handout/openswath.tex: -------------------------------------------------------------------------------- 1 | %!TEX root = handout.tex 2 | 3 | \newpage 4 | \section{OpenSWATH} 5 | \subsection{Introduction} 6 | 7 | OpenSWATH~\cite{Rost2014fd} allows the analysis of LC-MS/MS DIA (data independent acquisition) data using the approach described by Gillet \textit{et~al.}~\cite{Gillet2012Targeted}. The DIA approach described there uses 32 cycles to iterate through precursor ion windows from 400-426 Da to 1175-1201 Da and at each step acquires a complete, multiplexed fragment ion spectrum of all precursors present in that window. After 32 fragmentations (or 3.2 seconds), the cycle is restarted and the first window (400-426 Da) is fragmented again, thus delivering complete ``snapshots'' of all fragments of a specific window every 3.2 seconds. \\ 8 | 9 | \noindent The analysis approach described by Gillet et al. extracts ion traces of specific fragment ions from all MS2 spectra that have the same precursor isolation window, thus generating data that is very similar to SRM traces. 10 | 11 | \subsection{Installation of OpenSWATH} 12 | OpenSWATH has been fully integrated since OpenMS 1.10 \cite{Kohlbacher2007,Sturm2008,Bertsch2011OpenMS,Rost2016,Pfeuffer2017}). 13 | 14 | \subsection{Installation of mProphet} 15 | mProphet (\url{http://www.mprophet.org/}) \cite{Reiter2011MProphet} is available as standalone script in \directory{External\_Tools/mProphet/}. 16 | R (\url{http://www.r-project.org/}) and the package MASS (\url{http://cran.r-project.org/web/packages/MASS/}) are further required to execute mProphet. 17 | Please obtain a version for either Windows, Mac or Linux directly from CRAN. \\ 18 | 19 | \noindent PyProphet, a much faster reimplementation of the mProphet algorithm is available from PyPI (\url{https://pypi.python.org/pypi/pyprophet/}). The usage of pyprophet instead of mProphet is suggested for large-scale applications. \\ %For furhter installtion instruction please have a look below. 20 | \newline \noindent mProphet will be used in this tutorial. 21 | 22 | \subsection{Generating the Assay Library} 23 | \subsubsection{Generating TraML from transition lists} 24 | OpenSWATH requires an assay library to be supplied in the TraML format \cite{Deutsch2012TraMLA}. To enable manual editing of transition lists, the TOPP tool \OPENMSTOOL{TargetedFileConverter} is available, which uses tab separated files as input. Example datasets are provided in \directory{Example\_Data/OpenSWATH/assay/}. Please note that the transition lists need to be named \texttt{.tsv}. 25 | 26 | \noindent The header of the transition list contains the following variables (with example values in brackets): 27 | 28 | \begin{description} 29 | \item[Required Columns:] 30 | \item[\texttt{PrecursorMz}] \hfill \\ 31 | The mass-to-charge (m/z) of the precursor ion. (924.539) 32 | \item[\texttt{ProductMz}] \hfill \\ 33 | The mass-to-charge (m/z) of the product or fragment ion. (728.99) 34 | \item[\texttt{LibraryIntensity}] \hfill \\ 35 | The relative intensity of the transition. (0.74) 36 | \item[\texttt{NormalizedRetentionTime}] \hfill \\ 37 | The \textbf{normalized} retention time (or iRT) \cite{Escher2012Using} of the peptide. (26.5) 38 | \newline 39 | \item[Targeted Proteomics Columns:] 40 | \item[\texttt{ProteinId}] \hfill \\ 41 | A unique identifier for the protein. (AQUA4SWATH\_HMLangeA) 42 | \item[\texttt{PeptideSequence}] \hfill \\ 43 | The unmodified peptide sequence. (ADSTGTLVITDPTR) 44 | \item[\texttt{ModifiedPeptideSequence}] \hfill \\ 45 | The peptide sequence with UniMod modifications. (ADSTGTLVITDPTR(UniMod:267)) 46 | \item[\texttt{PrecursorCharge}] \hfill \\ 47 | The precursor ion charge. (2) 48 | \item[\texttt{ProductCharge}] \hfill \\ 49 | The product ion charge. (2) 50 | \newline 51 | \item[Grouping Columns:] 52 | \item[\texttt{TransitionGroupId}] \hfill \\ 53 | A \textbf{unique} identifier for the transition group.\\ 54 | (AQUA4SWATH\_HMLangeA\_ADSTGTLVITDPTR(UniMod:267)/2) 55 | \item[\texttt{TransitionId}] \hfill \\ 56 | A \textbf{unique} identifier for the transition.\\ 57 | (AQUA4SWATH\_HMLangeA\_ADSTGTLVITDPTR(UniMod:267)/2\_y8) 58 | \item[\texttt{Decoy}] \hfill \\ 59 | A binary value whether the transition is target or decoy. (target: 0, decoy: 1) 60 | \item[\texttt{PeptideGroupLabel}] \hfill \\ 61 | Which label group the peptide belongs to. \\ 62 | \item[\texttt{DetectingTransition}] \hfill \\ 63 | Use transition for peak group detection. (1)\\ 64 | \item[\texttt{IdentifyingTransition}] \hfill \\ 65 | Use transition for peptidoform inference using IPF. (0)\\ 66 | \item[\texttt{QuantifyingTransition}] \hfill \\ 67 | Use transition to quantify peak group. (1)\\ 68 | \end{description} 69 | 70 | \noindent For further instructions about generic transition list and assay library generation please see \url{http://openswath.org/en/latest/docs/generic.html}. \\ 71 | 72 | \noindent To convert transitions lists to TraML, use the \OPENMSTOOL{TargetedFileConverter}: Please use the absolute path to your OpenMS installation. \\ 73 | 74 | \begin{description} 75 | \item[Linux or Mac] \hfill \\ 76 | On the Terminal: 77 | \begin{code} 78 | \begin{minted}{bash} 79 | TargetedFileConverter -in OpenSWATH_SGS_AssayLibrary_woDecoy.tsv -out OpenSWATH_SGS_AssayLibrary_woDecoy.TraML 80 | \end{minted} 81 | \end{code} 82 | \item[Windows] \hfill \\ 83 | On the TOPP command line: 84 | \begin{code} 85 | \begin{minted}{bash} 86 | TargetedFileConverter.exe -in OpenSWATH_SGS_AssayLibrary_woDecoy.tsv -out OpenSWATH_SGS_AssayLibrary_woDecoy.TraML 87 | \end{minted} 88 | \end{code} 89 | \end{description} 90 | 91 | \subsubsection{Appending decoys to a TraML file} 92 | In addition to the target assays, OpenSWATH requires decoy assays in the library which are later used for classification and error rate estimation. For the decoy generation it is crucial that the decoys represent the targets in a realistic but unnatural manner without interfering with the targets. The methods for decoy generation implemented in OpenSWATH include 'shuffle', 'pseudo-reverse', 'reverse' and 'shift'. To append decoys to a TraML, the TOPP tool \OPENMSTOOL{OpenSwathDecoyGenerator} can be used: Please use the absolute path to your OpenMS installation. 93 | 94 | \begin{description} 95 | \item[Linux or Mac] \hfill \\ 96 | On the Terminal: 97 | \begin{code} 98 | \begin{minted}{bash} 99 | OpenSwathDecoyGenerator -in OpenSWATH_SGS_AssayLibrary_woDecoy.TraML -out OpenSWATH_SGS_AssayLibrary.TraML -method shuffle -switchKR false 100 | \end{minted} 101 | \end{code} 102 | \item[Windows] \hfill \\ 103 | On the TOPP command line: 104 | \begin{code} 105 | \begin{minted}{bash} 106 | OpenSwathDecoyGenerator.exe -in OpenSWATH_SGS_AssayLibrary_woDecoy.TraML -out OpenSWATH_SGS_AssayLibrary.TraML -method shuffle -switchKR false 107 | \end{minted} 108 | \end{code} 109 | \end{description} 110 | 111 | \subsection{OpenSWATH KNIME} 112 | An example KNIME workflow for OpenSWATH is supplied in \directory{Workflows/} (Fig.~\ref{fig:openswath}). The example dataset can be used for this workflow (filenames in brackets): 113 | 114 | \begin{enumerate} 115 | \item Open \directory{Workflows /OpenSWATH.knwf} in KNIME: \menu{File > Import KNIME Workflow...}. 116 | \item Select the normalized retention time (iRT) assay library in TraML format by double-clicking on node \menu{Input File > iRT Assay Library}.\\ 117 | (\directory{Example\_Data/OpenSWATH/assay/OpenSWATH\_iRT\_AssayLibrary.TraML}) 118 | \item Select the SWATH MS data in mzML format as input by double-clicking on node \menu{Input File > SWATH-MS files}.\\ 119 | (\directory{Example\_Data/OpenSWATH/data/split\_napedro\_L120420\_010\_SW-*.nf.pp.mzML}) 120 | \item Select the target peptide assay library in TraML format as input by double-clicking on node \menu{Input Files > Assay Library}.\\ 121 | (\directory{Example\_Data/OpenSWATH/assay/OpenSWATH\_SGS\_AssayLibrary.TraML}) 122 | \item Set the output destination by double-clicking on node \menu{Output File}.\\ 123 | \item Run the workflow. 124 | \end{enumerate} 125 | 126 | \noindent The resulting output can be found at your selected path, which will be used as input for mProphet. Execute the script on the Terminal (Linux or Mac) or cmd.exe (Windows) in \directory{Example\_Data/OpenSWATH/result}. Please use the absolute path to your R installation and the result file: 127 | 128 | \begin{code} 129 | \begin{minted}{bash} 130 | R --slave --args bin_dir=../../../External_Tools/mProphet/ mquest=OpenSWATH_quant.tsv workflow=LABEL_FREE num_xval=5 run_log=FALSE write_classifier=1 write_all_pg=1 < ../../../External_Tools/mProphet/mProphet.R 131 | \end{minted} 132 | \end{code} 133 | or for windows 134 | \begin{code} 135 | \begin{minted}{bash} 136 | "C:\Program Files\R\R-3.5.1\bin\x86\R.exe" --slave --args bin_dir=../../../External_Tools/mProphet/ mquest=OpenSWATH_quant.tsv workflow=LABEL_FREE num_xval=5 run_log=FALSE write_classifier=1 write_all_pg=1 < ../../../External_Tools/mProphet/mProphet.R 137 | \end{minted} 138 | \end{code} 139 | 140 | % begin comment pyopenms 141 | \begin{comment} 142 | \noindent If you have a valid python installation, pyProphet can be used. Further instructions the installation of python can be found in the pyOpenMS section. 143 | 144 | \noindent Installation of the current stable version: 145 | \begin{code} 146 | \begin{minted}{bash} 147 | pip install pyprophet 148 | \end{minted} 149 | \end{code} 150 | 151 | \noindent The following command should provide similar results to the mProphet script: 152 | \begin{code} 153 | \begin{minted}{bash} 154 | pyprophet score --in OpenSWATH_quant.tsv --out OpenSWATH_quant_scoring.tsv --group_id transition_group_id --pi0_lambda 1e-6 1e-2 1e-6 155 | \end{minted} 156 | \end{code} 157 | \end{comment} 158 | % end comment pyopenms 159 | 160 | \noindent The main output will be called\\ 161 | \directory{OpenSWATH/result/mProphet\_all\_peakgroups.xls}\\ 162 | with statistical information available in\\ 163 | \directory{OpenSWATH/result/mProphet.pdf}.\\ 164 | 165 | \noindent Please note that due to the semi-supervised machine learning approach of mProphet the results differ slightly when mProphet is executed several times. \\ 166 | 167 | \begin{figure}[!ht] 168 | \includegraphics[width=0.7\textwidth]{openswath/OpenSWATHWF.png} 169 | \caption{OpenSWATH KNIME Workflow.} 170 | \label{fig:openswath} 171 | \end{figure} 172 | 173 | \noindent Additionally the chromatrogam output (.mzML) can be visualized for inspection with \OPENMSTOOL{TOPPView}. \\ 174 | 175 | \noindent For additional instructions on how to use pyProphet instead of mProphet please have a look at the PyProphet Legacy Workflow \url{http://openswath.org/en/latest/docs/pyprophet_legacy.html}. If you want to use the SQLite-based workflow in your lab in the future, please have a look here: \url{http://openswath.org/en/latest/docs/pyprophet.html}. The SQLite-based workflow will not be part of the tutorial. \\ 176 | 177 | \subsection{From the example dataset to real-life applications} 178 | The sample dataset used in this tutorial is part of the larger SWATH MS Gold Standard (SGS) dataset which is described in the publication of Roest et al.~\cite{Rost2014fd}. 179 | It contains one of 90 SWATH-MS runs with significant data reduction (peak picking of the raw, profile data) to make file transfer and working with it easier. Usually SWATH-MS datasets are huge with several gigabyte per run. Especially when complex samples in combination with large assay libraries are analyzed, the TOPP tool based workflow requires a lot of computational resources. Additional information and instruction can be found at \url{http://openswath.org/en/latest/}. 180 | 181 | -------------------------------------------------------------------------------- /Handout/openswathmetabo.tex: -------------------------------------------------------------------------------- 1 | \section{OpenSWATH for Metabolomics} 2 | \subsection{Introduction} 3 | We would like to present an automated DIA/SWATH analysis workflow for metabolomics, which takes advantage of experiment specific target-decoy assay library generation. This allows for targeted extraction, scoring and statistical validation of metabolomics DIA data \cite{Rost2014}, \cite{Teleman2015}. 4 | 5 | \subsection{Workflow} 6 | The workflow follows multiple steps (see Fig. \ref{fig:pipline_overview}). 7 | 8 | \begin{figure}[!ht] 9 | \centering 10 | \includegraphics[width=0.7\textwidth]{graphics/openswathmetabo/pipeline_overview.png} 11 | \caption{\textbf{DIAMetAlyzer - pipeline for assay library generation and targeted analysis with statistical validation} DDA data is used for candidate identification containing feature detection, adduct grouping and accurate mass search. Library construction uses fragment annotation via compositional fragmentation trees and decoy generation using a fragmentation tree re-rooting method to create a target-decoy assay library. This library is used in a second step to analyse metabolomics DIA data performing targeted extraction, scoring and statistical validation (FDR estimation).} 12 | \label{fig:pipline_overview} 13 | \end{figure} 14 | 15 | \begin{figure}[!ht] 16 | \centering 17 | \includegraphics[width=0.8\textwidth]{graphics/openswathmetabo/assay_library_generation.png} 18 | \caption{\textbf{Assay library generation} The results of the compound identification (feature, molecular formula, adduct), with the corresponding fragment spectra for the feature, are used to perform fragment annotation via SIRIUS, using the compositional fragmentation trees. Then, the n highest intensity transitions are extracted and stored in the assay library.} 19 | \label{fig:assay_library_generation} 20 | \end{figure} 21 | 22 | \begin{figure}[!ht] 23 | \centering 24 | \includegraphics[width=0.8\textwidth]{graphics/openswathmetabo/decoy_generation.png} 25 | \caption{\textbf{Decoy generation} The compositional fragmentations trees from the step above are used to run the fragmentation tree re-rooting method from Passatutto, generating a compound specific decoy MS2 spectrum. Here, the n highest intensity decoy transitions are extracted and stored in the target-decoy assay library.} 26 | \label{fig:decoy_generation} 27 | \end{figure} 28 | 29 | \textbf{Candidate identification.} Feature detection, adduct grouping and accurate mass search are applied on DDA data. \textbf{Library construction.} The knowledge determined from the DDA data, about compound identification, its potential adduct and the corresponding fragment spectra are used to perform fragment annotation via compositional fragmentation trees sugin SIRIUS 4 \cite{Duhrkop2019}. Afterwards transitions, which are the reference of a precursor to its fragment ions are stored in a so-called assay library (Fig. \ref{fig:assay_library_generation}). Assay libraries usually contain additional metadata (i.e. retention time, peak intensities). FDR estimation is based on the target-decoy approach \cite{Elias2007}. For the generation of the MS2 decoys, the fragmentation tree-based rerooting method by Passatutto ensure the consistency of decoy spectra (Fig.\ref{fig:decoy_generation}) \cite{Scheubert2017}. The target-decoy assay library is then used to analyse the SWATH data. \textbf{Targeted extraction.} Chromatogram extraction and peak-group scoring. This step is performed using an algorithm based on OpenSWATH \cite{Rost2014} for metabolomics data. \textbf{Statistical validation} FDR estimation uses the PyProphet algorithm \cite{Teleman2015}. To prevent overfitting we chose the simpler linear model (LDA) for target-decoy discrimination in PyProphet, using MS1 and MS2 scoring with low correlated scores. 30 | 31 | 32 | 33 | \subsection{Prerequisites} 34 | Apart from the usual KNIME nodes, the workflow uses python scripting nodes. One basic requirement for the installation of python packages, in particular pyOpenMS, is a package manager for python. Using conda as an environment manger allows to specify a specific environment in the KNIME settings (\menu{File > Preferences > KNIME > Python}) 35 | 36 | \subsubsection{Windows} 37 | We suggest do use a virtual environment for the Python 3 installation on windows. 38 | Here you can install miniconda and follow the further instructions. \\ 39 | 40 | \begin{enumerate} 41 | \item Create new conda python environment 42 | \begin{code} 43 | \begin{minted}{bash} 44 | conda create -n py39 python=3.9 45 | \end{minted} 46 | \end{code} 47 | \item Activate py39 environment 48 | \begin{code} 49 | \begin{minted}{bash} 50 | conda activate py39 51 | \end{minted} 52 | \end{code} 53 | \item Install pip (see above) 54 | \item On the command line: 55 | \begin{code} 56 | \begin{minted}{bash} 57 | python -m pip install -U pip 58 | python -m pip install -U numpy 59 | python -m pip install -U pandas 60 | python -m pip isntall -U pyprophet 61 | python -m pip install -U pyopenms 62 | \end{minted} 63 | \end{code} 64 | \end{enumerate} 65 | 66 | \subsubsection{MacOS} 67 | We suggest do use a virtual environment for the Python 3 installation on Mac. 68 | Here you can install miniconda and follow the further instructions. \\ 69 | 70 | \begin{enumerate} 71 | \item Create new conda python environment 72 | \begin{code} 73 | \begin{minted}{bash} 74 | conda create -n py39 python=3.9 75 | \end{minted} 76 | \end{code} 77 | \item Activate py39 environment 78 | \begin{code} 79 | \begin{minted}{bash} 80 | conda activate py39 81 | \end{minted} 82 | \end{code} 83 | \item On the Terminal: 84 | \begin{code} 85 | \begin{minted}{bash} 86 | python -m pip install -U pip 87 | python -m pip install -U numpy 88 | python -m pip install -U pandas 89 | python -m pip isntall -U pyprophet 90 | python -m pip install -U pyopenms 91 | \end{minted} 92 | \end{code} 93 | \end{enumerate} 94 | 95 | \subsubsection{Linux} 96 | Use your package manager apt-get or yum, where possible. 97 | \begin{enumerate} 98 | \item Install Python 3.9 (Debian: python-dev, RedHat: python-devel) 99 | \item Install NumPy (Debian / RedHat: python-numpy) 100 | \item Install setuptools (Debian / RedHat: python-setuptools) 101 | \item On the Terminal: 102 | \begin{code} 103 | \begin{minted}{bash} 104 | python -m pip install -U pip 105 | python -m pip install -U numpy 106 | python -m pip install -U pandas 107 | python -m pip isntall -U pyprophet 108 | python -m pip install -U pyopenms 109 | \end{minted} 110 | \end{code} 111 | \end{enumerate} 112 | 113 | \subsection{Benchmark data} 114 | For the assay library construction pesticide mixes (Agilent Technologies, Waldbronn, Germany) were measured individually in solvent (DDA). 115 | Benchmark DIA samples were prepared by spiking different commercially available pesticide mixes into human plasma metabolite extracts in a 1:4 dilution series, which covers 5 orders of magnitude. 116 | 117 | \noindent The example data can be found here: 118 | \url{https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Tutorials/Data/DIAMetAlyzer/} 119 | 120 | \subsection{Example Workflow} 121 | Example workflow for the usage of the DIAMetAlyzer Pipeline in KNIME (see Fig. \ref{fig:oswm_example_wf}). Inputs are the SWATH-MS data in profile mode (.mzML), a path for saving the new target-decoy assay library, the SIRIUS 4.9.0 executable, the DDA data (.mzML), custom libraries and adducts for \KNIMENODE{AccurateMassSearch}, the min/max fragment mass-to-charge to be able to restrict the mass of the transitions and the path to the PyProphet executable. The DDA is used for feature detection, adduct grouping, accurate mass search and forwarded to the \KNIMENODE{AssayGeneratorMetabo}. Here, feature mapping is performed to collect MS2 spectra that belong to a feature. All information collected before (feautre, adduct, putative identification, MS2 spectra) are then internally forwarded to SIRIUS. SIRIUS is used for fragment annotation and decoy generation based on the fragmentation tree re-rooting approach. This information is then used to filter spectra/decoys based on their explained intensity (min. 85\%). Afterwards internal feature linking is performed which is most important for untargeted experiments using a lot of DDA data to construct the library. The constructed target-decoy assay library is processed with the SWATH-MS data in OpenSWATH. The results are used by PyProphet for scoring and output a list of metabolites with their respective q-value and quantitative information. 122 | 123 | \begin{figure}[!ht] 124 | \centering 125 | \includegraphics[width=0.95\textwidth]{openswathmetabo/oswm_example_wf.png} 126 | \caption{Example workflow for the usage of the DIAMetAlyzer Pipeline in KNIME} 127 | \label{fig:oswm_example_wf} 128 | \end{figure} 129 | 130 | \subsection{Run the Workflow} 131 | These steps need to be followed to run the workflow successfully: 132 | 133 | \begin{itemize} 134 | \item Add DDA Input Files (.mzML). 135 | \item Specify SIRIUS 4.9.0 executable. 136 | \item Specify library files (mapping, struct) for \KNIMENODE{AccurateMassSearch}. 137 | \item Add positive/negative adducts lists for \KNIMENODE{AccurateMassSearch} 138 | \item Supply an output path for the SIRIUS workspace in the \KNIMENODE{AssayGeneratorMetabo}. 139 | \item Specify additional paths and variables, such as an output path for the target-decoy assay library and a path to the pyprophet installation as well as decoy fragment mz filter (min/max). 140 | \item Input DIA/SWATH files (.mzML). 141 | \item Specify output path in the output folders. 142 | \item Ready to go - run the workflow! 143 | \end{itemize} 144 | 145 | \subsection{Important parameters} 146 | \noindent Please have a look at the most important parameters, which should be tweaked to fit your data. In general, OpenMS has a lot of room for parameter optimization to best fit your chromatography and instrumental settings. \\ 147 | 148 | \noindent\KNIMENODE{\textbf{FeatureFinderMetabo}}: 149 | \begin{center} 150 | \begin{tabular*}{\textwidth}{ p{5.5cm}|p{10.5cm} } 151 | \textbf{parameter} & \textbf{explanation} \\ \hline 152 | \textit{noise\_threshold\_int} & Intensity threshold below which peaks are regarded as noise. \\ 153 | \textit{chrom\_fwhm} & Expected chromatographic peak width (in seconds). \\ 154 | \textit{mass\_error\_ppm} & Allowed mass deviation (in ppm) \\ 155 | \end{tabular*} 156 | \end{center} 157 | 158 | \noindent\KNIMENODE{\textbf{MetaboliteAdductDecharger}}: 159 | \begin{center} 160 | \begin{tabular*}{\textwidth}{ p{5.5cm}|p{10.5cm} } 161 | \textbf{parameter} & \textbf{explanation} \\ \hline 162 | \textit{mass\_max\_diff} & Maximum allowed mass tolerance per feature.. \\ 163 | \textit{potential\_adducts} & Adducts used to explain mass differences - These should fit to the adduct list specified for AccurateMassSearch. \\ 164 | \end{tabular*} 165 | \end{center} 166 | 167 | \noindent\KNIMENODE{\textbf{AccurateMassSearch}}: 168 | \begin{center} 169 | \begin{tabular*}{\textwidth}{ p{5.5cm}|p{10.5cm} } 170 | \textbf{parameter} & \textbf{explanation} \\ \hline 171 | \textit{mass\_error\_value} & Tolerance allowed for accurate mass search. \\ 172 | \textit{ionization\_mode} & Positive or negative ionization mode. \\ 173 | \end{tabular*} 174 | \end{center} 175 | 176 | \noindent\KNIMENODE{\textbf{AssayGeneratorMetabo}}: 177 | \begin{center} 178 | \begin{tabular*}{\textwidth}{ p{5.5cm}|p{10.5cm} } 179 | \textbf{parameter} & \textbf{explanation} \\ \hline 180 | \textit{min\_transitions} & Minimal number of transitions (3). \\ 181 | \textit{max\_transitions} & Maximal number of transitions (3). \\ 182 | \textbf{min\_fragment\_mz} & Minimal m/z of a fragment ion choosen as a transition \\ 183 | \textbf{max\_fragment\_mz} & Maximal m/z of a fragment ion choosen as a transition \\ 184 | \textit{transitions\_threshold} & Further transitions need at least x\% of the maximum intensity. \\ 185 | \textbf{fragment\_annotation score\_threshold} & Filters annotations based on the explained intensity of the peaks in a spectrum (0.8). \\ 186 | SIRIUS (internal): & \\ 187 | \textit{out\_workspace\_directory} & Output directory for SIRIUS workspace (Fragmentation Trees). \\ 188 | \textit{filter\_by\_num\_masstraces} & Features have to have at least x MassTraces. To use this parameter feature\_only is neccessary. \\ 189 | \textit{precursor\_mass\_tolerance} & Tolerance window for precursor selection (Feature selection in regard to the precursor). \\ 190 | \textit{precursor\_rt\_tolerance} & Tolerance allowed for matching MS2 spectra depeding on the feature size (should be around the FWHM of the chromatograms). \\ 191 | \textit{profile} & Specify the used analysis profile (e.g. qtof). \\ 192 | \textit{elements} & Allowed elements for assessing the putative sumformula (e.g. CHNOP[5]S[8]Cl[1]). Elements found in the isotopic pattern are added automatically, but can be specified nonetheless. \\ 193 | Feature linking (internal): & \\ 194 | \textbf{ambiguity\_resolution mz\_tolerance} & M/z tolerance for the resolution of identification ambiguity over multiple files - Feature linking m/z tolerance. \\ 195 | \textbf{ambiguity\_resolution rt\_tolerance} & RT tolerance in seconds for the resolution of identification ambiguity over multiple files - Feature linking m/z tolerance.\\ 196 | \textbf{total\_occurrence\_filter} & Filter compound based on total occurrence in analysed samples.\\ 197 | \end{tabular*} 198 | \end{center} 199 | 200 | \noindent In case of the \textbf{total\_occurrence\_filter} the value to chose depends on the analysis strategy used. In the instance you are using only identified compounds (\textbf{use\_known\_unkowns} = false) - it will filter based on identified features. This means that even if the feature was detected in e.g. 50\% of all samples it might be only identified correctly by accurate mass search in 20\% of all samples. Using a \textbf{total\_occurrence\_filter} this specific feature would still be filtered out due to less identifications. 201 | 202 | \noindent\KNIMENODE{\textbf{OpenSWATH}}: 203 | \begin{center} 204 | \begin{tabular*}{\textwidth}{ p{5.5cm}|p{10.5cm} } 205 | \textbf{parameter} & \textbf{explanation} \\ \hline 206 | \textit{rt\_extraction\_window} & Extract x seconds around this value. \\ 207 | \textit{rt\_normalization\_factor} & Please use the range of your gradient e.g. 950 seconds. \\ 208 | \end{tabular*} 209 | \end{center} 210 | 211 | \noindent If you are analysing a lot of big DIA mzML files $\approx$ 3-20GB per File, it makes sense to change how OpenSWATH processes the spectra. 212 | 213 | \begin{center} 214 | \begin{tabular*}{\textwidth}{ p{5.5cm}|p{10.5cm} } 215 | \textbf{parameter} & \textbf{explanation} \\ \hline 216 | \textit{readOptions} & Set cacheWorkingInMemory - will cache the files to disk and read SWATH-by-SWATH into memory\\ 217 | \textit{tempDirectory} & Set a directory, where cached mzMLs are stored (be aware that his directory can be quite huge depending on the data). \\ 218 | \end{tabular*} 219 | \end{center} 220 | 221 | \noindent In the workflow pyprophet is called after OpenSWATH, it merges the result files, which allows to get enough data for the model training. 222 | 223 | \begin{code} 224 | \begin{minted}{bash} 225 | pyprophet merge --template path_to_target-decoy_assay_library.pqp --out merged.osw ./*.osw 226 | \end{minted} 227 | \end{code} 228 | \noindent Afterwards, the results are scored using the MS1 and MS2 levels and filter for metabolomics scores, which have a low correlation. 229 | 230 | \begin{code} 231 | \begin{minted}{bash} 232 | pyprophet score --in merged.osw --out scored.osw --level ms1ms2 --ss_main_score "var_isotope_correlation_score" --ss_score_filter metabolomics 233 | \end{minted} 234 | \end{code} 235 | \noindent Export the non filtered results: 236 | 237 | \begin{code} 238 | \begin{minted}{bash} 239 | pyprophet export-compound --in scored.osw --out scored + "_pyprophet_nofilter_ms1ms2.tsv" 240 | --max_rs_peakgroup_qvalue 1000.0 241 | \end{minted} 242 | \end{code} 243 | 244 | \noindent Please see the workflow for actual parameter values used for the benchmarking dataset. \\ 245 | 246 | \noindent The workflow can be used without any identification (remove \KNIMENODE{AccurateMassSearch}). Here, all features (known\_unknowns) are processed. The assay library is constructed based on the chemical composition elucidated via the fragment annotation (SIRIUS 4). It is also possible to use identified and in addition unknown (non-identified) features, by using \KNIMENODE{AccurateMassSearch} in combination with the \textbf{use\_known\_unknowns} in the \KNIMENODE{AssayGeneratorMetabo}. 247 | -------------------------------------------------------------------------------- /Handout/pgfsys-dvisvgm4ht.def: -------------------------------------------------------------------------------- 1 | % Copyright 2020 by Michal Hoftich 2 | % Copyright 2006 by Till Tantau 3 | % 4 | % This file may be distributed and/or modified 5 | % 6 | % 1. under the LaTeX Project Public License and/or 7 | % 2. under the GNU Public License. 8 | % 9 | % See the file doc/generic/pgf/licenses/LICENSE for more details. 10 | 11 | \ProvidesFileRCS{pgfsys-dvisvgm4ht.def} 12 | 13 | % Driver commands for tex4ht 14 | 15 | % 16 | % Load common pdf commands: 17 | % 18 | 19 | % we load the dvips driver by default. it doesn't support patterns and some other stuff, 20 | % but it handles better nested images and some formatting. if you use patterns or if you 21 | % have other issues with the default method, pass the "tikz-dvisvgm" option to make4ht. 22 | \ifdefined\ifOption 23 | \ifOption{tikz+}{\input pgfsys-dvisvgm.def}{\input pgfsys-dvips.def} 24 | \else 25 | % load the dvips driver by default 26 | \input pgfsys-dvips.def 27 | \fi 28 | 29 | 30 | \def\texfourht@tikz@begin{% 31 | \bgroup% 32 | \def\run@pict@cmd{}% insert the \Picture hooks only in the top nesting level 33 | \def\end@pict@cmd{}% 34 | \ifdefined\EndPicture\else% We are already inside command that uses \Picture 35 | \ifdefined\inside@pict@cmd% handle nested uses 36 | \else 37 | % use different version of \Picture depending on the vertical mode 38 | \ifvmode\def\run@pict@cmd{\Picture*}\else\def\run@pict@cmd{\Picture+}\fi% 39 | \def\end@pict@cmd{\EndPicture}% 40 | \fi\fi% 41 | % command used to detect nesting 42 | \def\inside@pict@cmd{}% 43 | \csname a:tikzpicture\endcsname% 44 | } 45 | 46 | \def\texfourht@tikz@end{% 47 | \csname b:tikzpicture\endcsname% 48 | \egroup% 49 | } 50 | 51 | \AtBeginDocument{ 52 | \NewConfigure{tikzpicture}{2} 53 | \catcode`\:=11 54 | \Configure{tikzpicture}{% 55 | \protect\csname nested:math\endcsname% support display math 56 | \run@pict@cmd{}% 57 | }{\end@pict@cmd} 58 | % configure the output picture format to svg, as it will require dvisvgm 59 | % post processing. 60 | \Configure{Picture}{.svg} 61 | % insert tex4ht hooks around TikZ picture box 62 | \def\pgfsys@typesetpicturebox#1{% 63 | \texfourht@tikz@begin% 64 | \orig@pgfsys@typesetpicturebox{#1}% 65 | \texfourht@tikz@end% 66 | } 67 | % 68 | \ConfigureEnv{tikzpicture}{\ifvmode\Picture*{}\else\Picture+{}\fi\def\inside@pict@cmd{}}{\EndPicture}{}{} 69 | \ConfigureEnv{pgfpicture}{\ifvmode\Picture*{}\else\Picture+{}\fi\def\inside@pict@cmd{}}{\EndPicture}{}{} 70 | \catcode`\:=12 71 | } 72 | 73 | 74 | % Make the code inserted by tex4ht configurable 75 | % 76 | 77 | 78 | \let\orig@pgfsys@typesetpicturebox\pgfsys@typesetpicturebox 79 | %\def\pgf@sys@postscript@header#1{{\special{! #1}}} 80 | 81 | 82 | \endinput 83 | 84 | 85 | %%% Local Variables: 86 | %%% mode: latex 87 | %%% End: 88 | -------------------------------------------------------------------------------- /Handout/protein_inference.tex: -------------------------------------------------------------------------------- 1 | \section{Protein Inference} 2 | \label{topic:protein_inference} 3 | 4 | In the last chapter, we have successfully quantified peptides in a label-free experiment. As a next step, we will 5 | further extend this label-free quantification workflow by protein inference and protein quantification capabilities. 6 | This workflow uses some of the more advanced concepts of KNIME, as well as a few more nodes containing R code. 7 | For these reasons, you will not have to build it yourself. Instead, we have already 8 | prepared and copied this workflow to the USB sticks. Just import \directory{Workflows > labelfree\_with\_protein\_quantification.knwf} into KNIME 9 | via the menu entry \menu{File > Import KNIME workflow > Select file} and double-click the imported workflow in order to open it. 10 | 11 | Before you can execute the workflow, you again have to correct the locations of the files in the \KNIMENODE{Input 12 | Files} nodes (don't forget the one for the FASTA database inside the ``ID'' meta node). Try and run your workflow by 13 | executing all nodes at once. 14 | 15 | \subsection{Extending the LFQ workflow by protein inference and quantification} 16 | 17 | We have made the following changes compared to the original label-free quantification workflow from the last chapter: 18 | 19 | \begin{itemize} 20 | \item First, we have added a \KNIMENODE{ProteinQuantifier} node and connected its input port to the output port of \KNIMENODE{ConsensusMapNormalizer}. 21 | \item This already enables protein quantification. ProteinQuantifier quantifies peptides by summarizing over all observed charge states and proteins 22 | by summarizing over their quantified peptides. It stores two output files, one for the quantified peptides and one for the proteins. 23 | \item In this example, we consider only the protein quantification output file, which is written to the first output port of \KNIMENODE{ProteinQuantifier} 24 | \item Because there is no dedicated node in KNIME to read back the ProteinQuantifier output file format into a KNIME table, we have to use a workaround. 25 | Here, we have added an additional 26 | \KNIMENODE{URI Port to Variable} node which converts the name of the output file to a so-called ``flow variable'' in KNIME. This variable is passed on 27 | to the next node \KNIMENODE{CSV Reader}, where it is used to specify the name of the input file to be read. If you double-click on \KNIMENODE{CSV Reader}, 28 | you will see that the text field, where you usually enter the location of the CSV file to be read, is greyed out. Instead, the flow variable is used 29 | to specify the location, as indicated by the small green button with the ``v=?'' label on the right. 30 | \item The table containing the \KNIMENODE{ProteinQuantifier} results is filtered one more time in order to remove decoy proteins. You can have a look 31 | at the final list of quantified protein groups by right-clicking the \KNIMENODE{Row Filter} and selecting \menu{Filtered}. 32 | \item By default, i.e., when the second input port \textit{protein\_groups} is not used, ProteinQuantifier quantifies 33 | proteins using only the unique peptides, 34 | which usually results in rather low numbers of quantified proteins. 35 | \item In this example, however, we have performed protein inference using Fido and used the resulting protein 36 | grouping information to also quantify 37 | indistinguishable proteins. In fact, we also used a greedy method in FidoAdapter (parameter 38 | \texttt{greedy\_group\_resolution}) to uniquely assign the peptides of a group to the most probable protein(s) in the 39 | respective group. This boosts the number of quantifications but slightly raises the chances to yield distorted protein quantities. 40 | \item As a prerequisite for using FidoAdapter, we have added an \KNIMENODE{IDPosteriorErrorProbability} node within 41 | the \KNIMENODE{ID} meta node, between the 42 | XTandemAdapter (note the replacement of OMSSA because of ill-calibrated scores) and PeptideIndexer. We have set its 43 | parameter \textit{prob\_correct} to \textit{true}, so it computes posterior probabilities instead 44 | of posterior error probabilities (1 - PEP). These are stored in the resulting idXML file and later on used by the 45 | Fido algorithm. Also note that we excluded FDR filtering from the standard meta node. Harsh filtering before 46 | inference impacts the calibration of the results. Since we filter peptides before quantification though, no 47 | potentially random peptides will be included in the results anyway. 48 | \item Next, we have added a third outgoing connection to our \KNIMENODE{ID} meta node and connected it to the second 49 | input port of \KNIMENODE{ZipLoopEnd}. 50 | Thus, KNIME will wait until all input files have been processed by the loop and then pass on the resulting list of 51 | idXML files to the subsequent 52 | \KNIMENODE{IDMerger} node, which merges all identifications from all idXML files into a single idXML file. This is 53 | done to get a unique assignment of peptides to proteins over all samples. 54 | \item Instead of the meta node \KNIMENODE{Protein inference with FidoAdapter}, we could have just used a 55 | \KNIMENODE{FidoAdapter} node 56 | (\menu{Community Nodes > OpenMS > ID Processing}). However, the meta node contains an additional subworkflow which, 57 | besides calling \KNIMENODE{FidoAdapter}, 58 | performs a statistical validation (e.g. (pseudo) receiver operating curves; ROCs) of the protein inference results 59 | using some of the more advanced KNIME and R nodes. 60 | The meta node also shows how to use MzTabExporter and MzTabReader. 61 | \end{itemize} 62 | 63 | \subsection{Statistical validation of protein inference results} 64 | 65 | In the following, we will explain the subworkflow contained in the \KNIMENODE{Protein inference with FidoAdapter} meta node. 66 | 67 | \subsubsection{Data preparation} 68 | For downstream analysis on the protein ID level in KNIME, it is again necessary to convert the idXML-file-format result generated from \KNIMENODE{FidoAdapter} into a KNIME table. 69 | 70 | \begin{itemize} 71 | \item We use the \KNIMENODE{MzTabExporter} to convert the inference results from \KNIMENODE{FidoAdapter} to a human 72 | readable, tab-separated mzTab file. mzTab contains multiple sections, that are all exported by default, if 73 | applicable. This file, with its different sections can again be read by the \KNIMENODE{MzTabReader} that produces one 74 | output in KNIME table format (triangle ports) for each section. Some ports might be empty if a section did not exist. 75 | Of course, we continue by connecting the downstream nodes with the protein section output (second port). 76 | \item Since the protein section contains single proteins as well as protein groups, we filter them for single 77 | proteins with the standard \KNIMENODE{Row Filter}. 78 | \end{itemize} 79 | 80 | \subsubsection{ROC curve of protein ID} 81 | 82 | ROC Curves (Receiver Operating Characteristic curves) are graphical plots that visualize sensitivity (true-positive 83 | rate) against fall-out (false positive rate). They are often used to judge the quality of a discrimination method 84 | like e.g., peptide or protein identification engines. 85 | \KNIMENODE{ROC Curve} already provides the functionality of drawing ROC curves for binary classification problems. 86 | When configuring this node, select the \textit{opt\_global\_target\_decoy} column as the class (i.e. target outcome) 87 | column. We want to find out, how good our inferred protein probability discriminates between them, therefore add\\ 88 | \textit{best\_search\_engine\_score[1]} (the inference engine score is treated like a peptide search engine score) to 89 | the list of \textit{"Columns containing positive class probabilities"}. View the plot by right-clicking and selecting 90 | \menu{View: ROC Curves}. A perfect classifier has an area under the curve (AUC) of $1.0$ and its curve touches the upper 91 | left of the plot. 92 | However, in protein or peptide identification, the ground-truth (i.e., which target identifications are true, which 93 | are false) is usually not known. Instead, so called pseudo-ROC Curves are regularly used to plot the number of target 94 | proteins against the false discovery rate (FDR) or its protein-centric counterpart, the q-value. 95 | The FDR is approximated by using the target-decoy estimate in order to distinguish 96 | true IDs from false IDs by separating target IDs from decoy IDs. 97 | 98 | \subsubsection{Posterior probability and FDR of protein IDs} 99 | ROC curves illustrate the discriminative capability of the scores of IDs. 100 | In the case of protein identifications, Fido produces the posterior probability of each protein as the output score. 101 | However, a perfect score should not only be highly discriminative (distinguishing true from false IDs), 102 | it should also be ``calibrated'' (for probability indicating that all IDs with reported posterior probability scores 103 | of 95\% 104 | should roughly have a 5\% probability of being false. This implies that the estimated number of false positives can 105 | be computed as the sum 106 | of posterior error probabilities ( = 1 - posterior probability) in a set, divided by the number of proteins in the 107 | set. Thereby a posterior-probability-estimated FDR is computed which can be compared to the actual target-decoy FDR. 108 | We can plot calibration curves to help us visualize the 109 | quality of the score (when the score is interpreted as a probability as Fido does), by comparing how similar the 110 | target-decoy estimated FDR and the posterior probability estimated FDR are. Good results should show a close 111 | correspondence between these two measurements, although a non-correspondence does not necessarily indicate wrong 112 | results. 113 | 114 | The calculation is done by using a simple R script in \KNIMENODE{R snippet}. 115 | First, the target decoy protein FDR is computed as the proportion of decoy proteins among all significant protein 116 | IDs. 117 | Then posterior probabilistic-driven FDR is estimated by the average of the posterior error probability of all 118 | significant protein IDs. Since FDR is the property for a group of protein IDs, we can also calculate a local 119 | property for each protein: the $q$-value of a certain protein ID is the minimum FDR of any groups of protein IDs that 120 | contain this protein ID. 121 | We plot the protein ID results versus two different kinds of FDR estimates in \KNIMENODE{R View(Table)} (see Fig.~\ref{fig:proteinfdr}). 122 | 123 | \begin{figure}[htbp] 124 | \centering 125 | \includegraphics[width=0.85\textwidth]{protein_inference/inference_metanode.png} 126 | \caption{The workflow of statistical analysis of protein inference results} 127 | \label{fig:proteininference} 128 | \end{figure} 129 | 130 | \begin{figure}[htbp] 131 | \centering 132 | \includegraphics[width=0.45\textwidth]{protein_inference/proteinFDR.png} 133 | \caption{the pseudo-ROC Curve of protein IDs. The accumulated number of protein IDs is plotted on two kinds of scales: target-decoy protein FDR and Fido posterior probability estimated FDR. The largest value of posterior probability estimated FDR is already smaller than 0.04, this is because the posterior probability output from Fido is generally very high.} 134 | \label{fig:proteinfdr} 135 | \end{figure} 136 | -------------------------------------------------------------------------------- /Handout/pyopenms.tex: -------------------------------------------------------------------------------- 1 | %!TEX root = handout.tex 2 | 3 | \newpage 4 | \section{An introduction to pyOpenMS} 5 | 6 | \subsection{Introduction} 7 | pyOpenMS provides Python bindings for a large part of the OpenMS library for mass spectrometry based proteomics and metabolomics. It thus provides access to a feature-rich, open-source algorithm library for mass-spectrometry based LC-MS analysis. These Python bindings allow raw access to the data-structures and algorithms implemented in {OpenMS, specifically those for file access (mzXML, mzML, TraML, mzIdentML among others), basic signal processing (smoothing, filtering, de-isotoping and peak-picking) and complex data analysis (including label-free, SILAC, iTRAQ and SWATH analysis tools).\\ 8 | 9 | \noindent pyOpenMS is integrated into OpenMS starting from version 1.11. This tutorial is addressed to people already familiar with Python. If you are new to Python, we suggest to start with a Python tutorial (\url{https://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3}). 10 | 11 | \subsection{Installation} 12 | One basic requirement for the installation of python packages, in particular pyOpenMS, is a package manager for python. We provide a package for \textit{pip} (\url{https://pypi.python.org/pypi/pip}). 13 | 14 | \subsubsection{Windows} 15 | \begin{enumerate} 16 | \item Install Python 3.9 (\url{http://www.python.org/download/}) 17 | \item Install NumPy (\url{http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy}) 18 | \item Install pip (see above) 19 | \item On the command line: 20 | \begin{code} 21 | \begin{minted}{bash} 22 | python -m pip install -U pip 23 | python -m pip install -U numpy 24 | python -m pip install pyopenms 25 | \end{minted} 26 | \end{code} 27 | \end{enumerate} 28 | 29 | \subsubsection{MacOS} 30 | We suggest do use a virtual environment for the Python 3 installation on Mac. 31 | Here you can install miniconda and follow the further instructions. \\ 32 | 33 | \begin{enumerate} 34 | \item Create new conda python environment 35 | \begin{code} 36 | \begin{minted}{bash} 37 | conda create -n py37 python=3.9 anaconda 38 | \end{minted} 39 | \end{code} 40 | \item Activate py37 environment 41 | \begin{code} 42 | \begin{minted}{bash} 43 | source activate py37 44 | \end{minted} 45 | \end{code} 46 | \item On the Terminal: 47 | \begin{code} 48 | \begin{minted}{bash} 49 | pip install -U pip 50 | pip install -U numpy 51 | pip install pyopenms 52 | \end{minted} 53 | \end{code} 54 | \end{enumerate} 55 | 56 | \subsubsection{Linux} 57 | Use your package manager apt-get or yum, where possible. 58 | \begin{enumerate} 59 | \item Install Python 3.9 (Debian: python-dev, RedHat: python-devel) 60 | \item Install NumPy (Debian / RedHat: python-numpy) 61 | \item Install setuptools (Debian / RedHat: python-setuptools) 62 | \item On the Terminal: 63 | \begin{code} 64 | \begin{minted}{bash} 65 | pip install pyopenms 66 | \end{minted} 67 | \end{code} 68 | \end{enumerate} 69 | 70 | \subsubsection{IDE with Anaconda integration} 71 | If you do not have python installed or do not want to modify your native installation, another possibility is to use an IDE (integrated development environment) with Anaconda integration. Here, we recommend spyder (\url{https://www.spyder-ide.org/}). It comes with Anaconda, which is a package and environment manager. Thus the IDE should be able to run a specific environment independent of your systems python installation. \\ 72 | 73 | \noindent Please execute the installer for your respective platform located in the respective directory for your platform and follow the installation instructions. \\ 74 | 75 | \noindent After installation the ANACONDA Navigator (Anaconda 3) should be available. Please start the application. To install pyopenms please choose the button "Environments" and click the play symbol of the base environment and "Open Terminal". \\ 76 | 77 | \noindent Update pip and install pyopenms (MacOS, Linux): 78 | \begin{code} 79 | \begin{minted}{bash} 80 | pip install -U pip 81 | pip install -U numpy 82 | pip install -U pyopenms 83 | \end{minted} 84 | \end{code} 85 | 86 | \noindent Update pip and install pyopenms (Windows): 87 | \begin{code} 88 | \begin{minted}{bash} 89 | python -m pip install -U pip 90 | python -m pip install -U numpy 91 | python -m pip install -U pyopenms 92 | \end{minted} 93 | \end{code} 94 | 95 | \noindent Install a local available package: 96 | \begin{code} 97 | \begin{minted}{bash} 98 | pip install numpy-1.20.0-cp37*.whl 99 | pip install pyopenms-2.7.0-cp37*.whl 100 | or (in case of windows) 101 | python -m pip install -U numpy-1.20.0-cp37*.whl 102 | python -m pip install -U pyopenms-2.7.0-cp37*.whl 103 | \end{minted} 104 | \end{code} 105 | 106 | \noindent The local available packages can be found in the directory corresponding to your operating system. Please use the absolute path to the packages for the installation. 107 | 108 | \noindent Now launch "Spyder" (python IDE) in the home menu. 109 | 110 | \subsection{Build instructions} 111 | Instructions on how to build pyOpenMS can be found online (\url{https://pyopenms.readthedocs.io/en/release_2.7.0/build_from_source.html}). 112 | 113 | \subsection{Scripting with pyOpenMS} 114 | A big advantage of pyOpenMS are its scripting capabilities (beyond its application in tool development). Most of the OpenMS datastructure can be accessed using python (\url{https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/nightly/html/index.html}). Here we would like to give some examples on how pyOpenMS can be used for simple scripting task, such as peptide mass calculation and peptide/protein digestion as well as isotope distribution calculation. \\ 115 | 116 | \noindent Calculation of the monoisotopic and average mass of a peptide sequence 117 | \begin{code} 118 | \begin{minted}{python} 119 | from pyopenms import * 120 | 121 | seq = AASequence.fromString("DFPIANGER") 122 | 123 | mono_mass = seq.getMonoWeight(Residue.ResidueType.Full, 0) 124 | average_mass = seq.getAverageWeight(Residue.ResidueType.Full, 0) 125 | 126 | print("The masses of the peptide sequence " + seq.toString().decode('utf-8') + " are:") 127 | print("mono: " + str(mono_mass)) 128 | print("average: "+ str(average_mass)) 129 | \end{minted} 130 | \end{code} 131 | 132 | \noindent Enzymatic digest of a peptide/protein sequence 133 | \begin{code} 134 | \begin{minted}{python} 135 | enzyme = "Trypsin" 136 | to_digest = AASequence.fromString("MKWVTFISLLLLFSSAYSRGVFRRDTHKSEIAHRFKDLGE") 137 | after_digest = [] 138 | 139 | EnzymaticDigest = EnzymaticDigestionLogModel() 140 | EnzymaticDigest.setEnzyme(enzyme) 141 | EnzymaticDigest.digest(to_digest, after_digest) 142 | 143 | print("The peptide " + to_digest.toString().decode('utf-8') + " was digested using " + str(EnzymaticDigest.getEnzymeName().decode('utf-8')) + " to:") 144 | 145 | for element in after_digest: 146 | print(element.toString().decode('utf-8')) 147 | \end{minted} 148 | \end{code} 149 | 150 | \noindent Use empirical formula to calculate the isotope distribution 151 | \begin{code} 152 | \begin{minted}{python} 153 | from pyopenms import * 154 | 155 | methanol = EmpiricalFormula("CH3OH") 156 | water = EmpiricalFormula("H2O") 157 | wm = EmpiricalFormula(water.toString().decode('utf-8') + methanol.toString().decode('utf-8')) 158 | print(wm.toString().decode('utf-8')) 159 | print(wm.getElementalComposition()) 160 | 161 | isotopes = wm.getIsotopeDistribution( CoarseIsotopePatternGenerator(3) ) 162 | for iso in isotopes.getContainer(): 163 | print (iso.getMZ(), ":", iso.getIntensity()) 164 | \end{minted} 165 | \end{code} 166 | 167 | \noindent For further examples and the pyOpenMS datastructure please see \url{https://pyopenms.readthedocs.io/en/release_2.7.0/datastructures.html}. 168 | 169 | \subsection{Tool development with pyOpenMS} 170 | Scripting is one side of pyOpenMS, the other is the ability to create Tools using the C++ OpenMS library in the background. In the following section we will create a "ProteinDigestor" pyOpenMS Tool. It should be able to read in a fasta file. Digest the proteins with a specific enzyme (e.g. Trypsin) and export an idXML output file. Please see \directory{Example\_Data/pyopenms} for code snippets. 171 | 172 | \begin{code} 173 | \begin{minted}{bash} 174 | usage: ProteinDigestor.py [-h] [-in INFILE] [-out OUTFILE] [-enzyme ENZYME] 175 | [-min_length MIN_LENGTH] [-max_length MAX_LENGTH] 176 | [-missed_cleavages MISSED_CLEAVAGES] 177 | 178 | ProteinDigestor −− In silico digestion of proteins. 179 | 180 | optional arguments: 181 | -h, --help show this help message and exit 182 | -in INFILE An input file containing amino acid sequences [fasta] 183 | -out OUTFILE Output digested sequences in idXML format [idXML] 184 | -enzyme ENZYME Enzyme used for digestion 185 | -min_length MIN_LENGTH Minimum length of peptide 186 | -max_length MAX_LENGTH Maximum length of peptide 187 | -missed_cleavages MISSED_CLEAVAGES The number of allowed missed cleavages 188 | \end{minted} 189 | \end{code} 190 | 191 | \subsubsection{Basics} 192 | First, your tool needs to be able to read parameters from the command line and provide a main routine. Here standard Python can be used (no pyOpenMS is required so far). 193 | 194 | \begin{code} 195 | \begin{minted}{python} 196 | #!/usr/bin/env python 197 | import sys 198 | 199 | def main(options): 200 | 201 | # test parameter handling 202 | print(options.infile, options.outfile, options.enzyme, options.min_length, options.max_length, options.missed_cleavages) 203 | 204 | def handle_args(): 205 | import argparse 206 | 207 | usage = "" 208 | usage += "\nProteinDigestor −− In silico digestion of proteins." 209 | 210 | parser = argparse.ArgumentParser(description = usage) 211 | parser.add_argument('-in', dest='infile', help='An input file containing amino acid sequences [fasta]') 212 | parser.add_argument('-out', dest='outfile', help='Output digested sequences in idXML format [idXML]') 213 | parser.add_argument('-enzyme', dest='enzyme', help='Enzyme used for digestion') 214 | parser.add_argument('-min_length', type=int, dest='min_length', help ='Minimum length of peptide') 215 | parser.add_argument('-max_length', type=int, dest='max_length', help='Maximum length of peptide') 216 | parser.add_argument('-missed_cleavages', type=int, dest='missed_cleavages', help='The number of allowed missed cleavages') 217 | 218 | args = parser.parse_args(sys.argv[1:]) 219 | return args 220 | 221 | if __name__ == '__main__': 222 | options = handle_args() 223 | main(options) 224 | \end{minted} 225 | \end{code} 226 | 227 | \noindent Open the Anaconda Terminal and change into the \directory{Example\_Data/pyopenms} directory. Execute the example script. 228 | \begin{code} 229 | \begin{minted}{bash} 230 | python ProteinDigestor_argparse.py -h 231 | \end{minted} 232 | \end{code} 233 | 234 | \begin{code} 235 | \begin{minted}{bash} 236 | python ProteinDigestor_argparse.py -in mini_example.fasta -out mini_example_out.idXML -enzyme Trypsin -min_length 6 -max_length 40 -missed_cleavages 1 237 | \end{minted} 238 | \end{code} 239 | 240 | \noindent The parameters are being read from the command line by the function handle\_args() and given to the main() function of the script, which prints the different variables. 241 | 242 | \noindent OpenMS has a ProteaseDB class containing a list of enzymes which can be used for digestion of proteins. You can add this to the argparse code to be able to see the usable enzymes. From this point onward pyOpenMS is required. 243 | \begin{code} 244 | \begin{minted}{python} 245 | # from here pyopenms is needed 246 | # get available enzymes from ProteaseDB 247 | all_enzymes = [] 248 | p_db=ProteaseDB().getAllNames(all_enzymes) 249 | 250 | # concatenate them to the enzyme argument. 251 | parser.add_argument('-enzyme', dest='enzyme', help='Enzymes which can be used for digestion: '+ ', '.join(map(bytes.decode, all_enzymes))) 252 | \end{minted} 253 | \end{code} 254 | 255 | \subsubsection{Loading data structures with pyOpenMS} 256 | We already scripted enzymatic digestion with the AASequence and EnzymaticDigest (see above). To make this even easier, we can use an existing class in OpenMS, called ProteaseDigestion. 257 | 258 | \begin{code} 259 | \begin{minted}{python} 260 | # Use the ProteaseDigestion class 261 | # set the enzyme used for digestion and the number of missed cleavages 262 | digestor = ProteaseDigestion() 263 | digestor.setEnzyme(options.enzyme) 264 | digestor.setMissedCleavages(options.missed_cleavages) 265 | 266 | # call the ProteaseDigestion::digest function 267 | # which will return the number of discarded digestions products 268 | # and fill the current_digest list with digestes peptide sequences 269 | digestor.digest(aaseq.fromString(fe.sequence), current_digest, options.min_length, options.max_length) 270 | \end{minted} 271 | \end{code} 272 | 273 | \noindent The next step is to use FASTAFile class to read the fasta input: 274 | \begin{code} 275 | \begin{minted}{python} 276 | # construct a FASTAFile Object and read the input file 277 | ff = FASTAFile() 278 | ff.readStart(options.infile) 279 | 280 | # construct and FASTAEntry Object 281 | fe = FASTAEntry() 282 | 283 | # loop over the entry in the fasta while using while 284 | while(ff.readNext(fe)): 285 | \end{minted} 286 | \end{code} 287 | 288 | \noindent The output idXML needs the information about protein and peptide level, which can be saved in the ProteinIdentification and PeptideIdentification classes. 289 | \begin{code} 290 | \begin{minted}{python} 291 | idxml = IdXMLFile() 292 | idxml.store(options.outfile, protein_identifications, peptide_identifications) 293 | \end{minted} 294 | \end{code} 295 | 296 | \noindent This is the part of the program which unifies the snippets provided above. Please have a closer look how the protein and peptide datastructure is incorporated in the program. 297 | 298 | \begin{code} 299 | \begin{minted}{python} 300 | def main(options): 301 | # read fasta file 302 | ff = FASTAFile() 303 | ff.readStart(options.infile) 304 | fe = FASTAEntry() 305 | 306 | # use ProteaseDigestion class 307 | digestor = ProteaseDigestion() 308 | digestor.setEnzyme(options.enzyme) 309 | digestor.setMissedCleavages(options.missed_cleavages) 310 | 311 | # protein and peptide datastructure 312 | protein_identifications = [] 313 | peptide_identifications = [] 314 | protein_identification = ProteinIdentification() 315 | protein_identifications.append(protein_identification) 316 | temp_pe = PeptideEvidence() 317 | 318 | # number of dropped peptides due to length restriction 319 | dropped_by_length = 0 320 | 321 | while(ff.readNext(fe)): 322 | # construct ProteinHit and fill it with sequence information 323 | temp_protein_hit = ProteinHit() 324 | temp_protein_hit.setSequence(fe.sequence) 325 | temp_protein_hit.setAccession(fe.identifier) 326 | 327 | # save the ProteinHit in a ProteinIdentification Object 328 | protein_identification.insertHit(temp_protein_hit) 329 | 330 | # construct a PeptideHit and save the ProteinEvidence (Mapping) for the specific 331 | # current protein 332 | temp_peptide_hit = PeptideHit() 333 | temp_pe.setProteinAccession(fe.identifier); 334 | temp_peptide_hit.setPeptideEvidences([temp_pe]) 335 | 336 | # digestion 337 | current_digest = [] 338 | aaseq = AASequence() 339 | if (options.enzyme == "none"): 340 | current_digest.append(aaseq.fromString(fe.sequence)) 341 | else: 342 | dropped_by_length += digestor.digest(aaseq.fromString(fe.sequence), current_digest, options.min_length, options.max_length) 343 | 344 | for seq in current_digest: 345 | # fill the PeptideHit and PeptideIdentification datastructure 346 | peptide_identification = PeptideIdentification() 347 | temp_peptide_hit.setSequence(seq) 348 | peptide_identification.insertHit(temp_peptide_hit) 349 | peptide_identifications.append(peptide_identification) 350 | 351 | print(str(dropped_by_length) + " peptides have been dropped due to the length restriction.") 352 | idxml = IdXMLFile() 353 | idxml.store(options.outfile, protein_identifications, peptide_identifications) 354 | \end{minted} 355 | \end{code} 356 | 357 | \subsubsection{Putting things together} 358 | The paramter input and the functions can be used to construct the program we are looking for. If you are struggling please have a look in the example data section ProteinDigestor.py 359 | 360 | \noindent Now you can run your tool in the Anaconda Terminal ( \directory{Example\_Data/pyopenms}): 361 | \begin{code} 362 | \begin{minted}{bash} 363 | python ProteinDigestor.py -in mini_example.fasta -out mini_example_out.idXML -enzyme Trypsin -min_length 6 -max_length 40 -missed_cleavages 1 364 | \end{minted} 365 | \end{code} 366 | 367 | \subsubsection{Bonus task} 368 | 369 | \begin{task} 370 | Implement all other 184 TOPP tools using pyOpenMS. 371 | \end{task} 372 | -------------------------------------------------------------------------------- /Handout/qualitycontrol.tex: -------------------------------------------------------------------------------- 1 | %!TEX root = handout.tex 2 | 3 | \newpage 4 | \section{Quality control} 5 | \label{sec:qc} 6 | 7 | \subsection{Introduction} 8 | 9 | In this chapter, we will build on an existing workflow with OpenMS / KNIME to add some quality control (QC). We will utilize the qcML tools in OpenMS to create a file with which we can collect different measures of quality to the mass spectrometry runs themselves and the applied analysis. The file also serves the means of visually reporting on the collected quality measures and later storage along the other analysis result files. 10 | We will, step-by-step, extend the label-free quantitation workflow from section \ref{sec:lfq} with QC functions and thereby enrich each time the report given by the qcML file. 11 | But first, to make sure you get the most of this tutorial section, a little primer on how we handle QC on the technical level. \\ 12 | 13 | \subsubsection*{QC metrics and qcML} 14 | To assert the quality of a measurement or analysis we use quality metrics. Metrics are describing a certain aspect of the measurement or analysis and can be anything from a single value, over a range of values to an image plot or other summary. Thus, qcML metric representation is divided into QC parameters (QP) and QC attachments (QA) to be able to represent all sorts of metrics on a technical level.\\ 15 | A QP may (or may not) have a value which would equal a metric describable with a single value. If the metric is more complex and needs more than just a single value, the QP does not require the single value but rather depends on an attachment of values (QA) for full meaning. Such a QA holds the plot or the range of values in a table-like form. Like this, we can describe any metric by a QP and an optional QA.\\ 16 | To assure a consensual meaning of the quality parameters and attachments, we created a controlled vocabulary (CV). Each entry in the CV describes a metric or part/extension thereof. We embed each parameter or attachment with one of these and by doing so, connect a meaning to the QP/QA. Like this, we later know exactly what we collected and the programs can find and connect the right dots for rendering the report or calculating new metrics automatically. You can find the constantly growing controlled vocabulary here:\\ \menu{https://github.com/qcML/qcML-development/blob/master/cv/qc-cv.obo}.\\ 17 | Finally, in a qcml file, we split the metrics on a per mass-spectrometry-run base or a set of mass-spectrometry-runs respectively. Each run or set will contain its QP/QA we calculate for it, describing their quality. 18 | 19 | 20 | \subsection{Building a qcML file per run} 21 | \label{Building a qcML file per run} 22 | 23 | As a start, we will build a basic qcML file for each mzML file in the label-free analysis. We are already creating the two necessary analysis files to build a basic qcML file upon each mzML file, a feature file and an identification file. We use the \KNIMENODE{QCCalculator} node from \menu{Community Nodes > OpenMS > Utilities} where also all other \KNIMENODE{QC*} nodes will be found. The \KNIMENODE{QCCalculator} will create a very basic qcML file in which it will store collected and calculated quality data. 24 | 25 | \begin{itemize} 26 | \item Copy your label-fee quantitation workflow into a new lfq-qc workflow and open it. 27 | \item Place the \KNIMENODE{QCCalculator} node after the \KNIMENODE{IDMapper} node. Being inside the \KNIMENODE{ZipLoop}, it will execute for each of the three mzML files the \KNIMENODE{Input} node. 28 | \item Connect the first \KNIMENODE{QCCalculator} port to the first \KNIMENODE{ZipLoopStart} outlet port, which will carry the individual mzML files. 29 | \item Connect the last's \KNIMENODE{ID} outlet port (\KNIMENODE{IDFilter} or the \KNIMENODE{ID} metanode) to the second \KNIMENODE{QCCalculator} port for the identification file. 30 | \item Finally, connect the \KNIMENODE{IDMapper} outlet to the third \KNIMENODE{QCCalculator} port for the feature file. 31 | \end{itemize} 32 | 33 | The created qcML files will not have much to show for, basic as they are. So we will extend them with some basic plots. 34 | \begin{itemize} 35 | \item First, we will add an 2D overview image of the given mass spectrometry run as you may know it from \OPENMSTOOL{TOPPView}. Add the \KNIMENODE{ImageCreator} node from \menu{Community Nodes > OpenMS > Utilities}. Change the \textit{width} and \textit{heigth} parameters to 640x640 as we don't want it to be too big. Connect it to the first \KNIMENODE{ZipLoopStart} outlet port, so it will create an image file of the mzML's contained run. 36 | \item Now we have to embed this file into the qcML file, and attach it to the right QualityParameter. For this, place a \KNIMENODE{QCEmbedder} node behind the \KNIMENODE{ImageCreator} and connect that to its third inlet port. Connect its first inlet port to the outlet of the \KNIMENODE{QCCalculator} node to pass on the qcML file. Now change the parameter \textit{cv\_acc} to \textit{QC:0000055} which designates the attached image to be of type \texttt{QC:0000055 - MS experiment heatmap}. 37 | Finally, change the parameter \textit{qp\_att\_acc} to \textit{QC:0000004}, to attach the image to the QualityParameter \texttt{QC:0000004 - MS acquisition result details}. 38 | \item For a reference of which CVs are already defined for qcML, have a look at \\ \menu{https://github.com/qcML/qcML-development/blob/master/cv/qc-cv.obo}. 39 | \end{itemize} 40 | 41 | There are two other basic plots which we almost always might want to look at before judging the quality of a mass spectrometry run and its identifications: the \textit{total ion current} (TIC) and the \textit{PSM mass error} (Mass accuracy), which we have available as pre-packaged QC metanodes. 42 | \begin{task} 43 | Import the workflow from \directory{Workflows / Quality Control / QC Metanodes.zip} in KNIME: \menu{File > Import KNIME Workflow...} 44 | \end{task} 45 | \begin{itemize} 46 | \item Copy the \KNIMENODE{Mass accuracy} metanode into the workflow behind the \KNIMENODE{QCEmbedder} node and connect it. The qcML will be passed on and the Mass accuracy plots added. The information needed was already collected by the \KNIMENODE{QCCalculator}. 47 | \item Do the same with the \KNIMENODE{TIC} metanode so that your qcML file will get passed on and enriched on each step. 48 | \end{itemize} 49 | 50 | R Dependencies: This section requires that the R packages ggplot2 and scales are both installed. This is the same procedure as in section \ref{sec:metaboR}. In case that you use an R installation where one or both of them are not yet installed, open the \KNIMENODE{R Snippet} nodes inside the metanodes you just used (double-click). Edit the script in the \textit{R Script} text editor from:\\ 51 | 52 | \begin{code} 53 | \begin{minted}{R} 54 | #install.packages("ggplot2") 55 | #install.packages("scales") 56 | \end{minted} 57 | \end{code} 58 | to 59 | \begin{code} 60 | \begin{minted}{R} 61 | install.packages("ggplot2") 62 | install.packages("scales") 63 | \end{minted} 64 | \end{code} 65 | Press \menu{Eval script} to execute the script.\newline 66 | 67 | \vspace{1cm} 68 | 69 | \begin{figure}[htbp] 70 | \centering 71 | \includegraphics[width=0.85\textwidth]{qc/qc_basic.png} 72 | \caption{Basic QC setup within a LFQ workflow} 73 | \label{fig:qc_basic} 74 | \end{figure} 75 | 76 | \note{To have a peek into what our qcML now looks like for one of the \KNIMENODE{ZipLoop} iterations, we can add an \KNIMENODE{Output Folder} node from \menu{Community Nodes > GenericKnimeNodes > IO} and set its destination parameter to somewhere we want to find our intermediate qcML files in, for example \menu{tmp > qc\_lfq}. If we now connect the last metanode with the \KNIMENODE{Output Folder} and restart the workflow, we can start inspecting the qcML files. } 77 | \begin{task} 78 | Find your first created qcML file and open it with the browser (not IE), and the contained QC parameters will be rendered for you. 79 | \end{task} 80 | 81 | 82 | \subsection{Adding brand new QC metrics} 83 | \label{Adding brand new QC metrics} 84 | 85 | We can also add brand new QC metrics to our qcML files. Remember the \KNIMENODE{Histogram} you added inside the \KNIMENODE{ZipLoop} during the label-free quantitation section? %TODO reference 86 | Let's imagine for a moment this was a brand new and utterly important metric and plot for the assessment of your analyses quality. There is an easy way to integrate such new metrics into your qcMLs. Though the \KNIMENODE{Histogram} node cannot pass its plot to an \textit{image}, we can do so with a \KNIMENODE{R View (table)}. 87 | 88 | \begin{itemize} 89 | \item Add an \KNIMENODE{R View (table)} next to the \KNIMENODE{IDTextReader} node and connect them. 90 | \item Edit the \KNIMENODE{R View (table)} by adding the \textit{R Script} according to this: 91 | \end{itemize} 92 | \begin{code} 93 | \begin{minted}{R} 94 | #install.packages("ggplot2") 95 | library("ggplot2") 96 | ggplot(knime.in, aes(x=peptide_charge)) + 97 | geom_histogram(binwidth=1, origin =-0.5) + 98 | scale_x_discrete() + 99 | ggtitle("Identified peptides charge histogram") + 100 | ylab("Count") 101 | \end{minted} 102 | \end{code} 103 | \begin{itemize} 104 | \item This will create a plot like the \KNIMENODE{Histogram} node on \textit{peptide\_charge} \textbf{and} pass it on as an \textit{image}. 105 | \item Now add and connect a \KNIMENODE{Image2FilePort} node from \menu{Community Nodes > GenericKnimeNodes > Flow} to the \KNIMENODE{R View (table)}. 106 | \item We can now use a \KNIMENODE{QCEmbedder} node like before to add our new metric plot into the qcML. 107 | \item After looking for an appropriate target in \\ \menu{https://github.com/qcML/qcML-development/blob/master/cv/qc-cv.obo}, we found that we can attach our plot to the \textit{MS identification result details} by setting the parameter \textit{qp\_att\_acc} to \textit{QC:0000025}, as we are plotting the charge histogram of our \textit{identified} peptides. 108 | \item To have the plot later displayed properly, we assign it the parameter \textit{cv\_acc} of \textit{QC:0000051}, a \textit{generic plot}. Also we made sure in the \textit{R Script}, that our plot carries a caption so that we know which is which, if we had more than one new plot. 109 | \item Now we redirect the \KNIMENODE{QCEmbedder}s output to the \KNIMENODE{Output Folder} from before and can have a look at how our qcML is coming along after restarting the workflow. 110 | \end{itemize} 111 | 112 | \begin{figure}[htbp] 113 | \centering 114 | \includegraphics[width=0.65\textwidth]{qc/qc_extra.png} 115 | \caption{QC with new metric} 116 | \label{fig:qc_extra} 117 | \end{figure} 118 | 119 | \newpage 120 | \subsection{Set QC metrics} 121 | \label{Set QC metrics} 122 | 123 | Besides monitoring the quality of each individual mass spectrometry run analysis, another capability of QC with OpenMS and qcML is to monitor the complete set. The easiest control is to compare mass spectrometry runs which should be similar, e.g. technical replicates, to spot any aberrations in the set.\\ 124 | For this, we will first collect all created qcML files, merge them together and use the qcML onboard \textit{set QC} properties to detect any outliers. 125 | 126 | \begin{itemize} 127 | \item connect the \KNIMENODE{QCEmbedder}s output from last section to the \KNIMENODE{ZipLoopEnd}s second input port. 128 | \item The corresponding output port will collect all qcML files from each \KNIMENODE{ZipLoop} iteration and pass them on as a list of files. 129 | \item Now we add a \KNIMENODE{QCMerger} node after the \KNIMENODE{ZipLoopEnd} and feed it that list of qcML files. In addition, we set its parameter \textit{setname} to give our newly created set a name - say \textit{spikein\_replicates}. 130 | \item To inspect all the QCs next to each other in that created qcML file, we have to add a new \KNIMENODE{Output Folder} to which we can connect the \KNIMENODE{QCMerger} output. 131 | \end{itemize} 132 | 133 | When inspecting the set-qcML file in a \textbf{browser}, we will be presented another overview. After the set content listing, the basic QC parameters (like number of identifications) are each displayed in a graph. Each set member (or run) has its own section on the x-axis and each run is connected with that graph via a link in the mouseover on one of the QC parameter values. 134 | 135 | \newpage 136 | 137 | \begin{figure}[htbp] 138 | \centering 139 | \includegraphics[width=0.85\textwidth]{qc/qc_set.png} 140 | \caption{QC set creation from ZipLoop} 141 | \label{fig:qc_set} 142 | \end{figure} 143 | 144 | 145 | \begin{task} 146 | For ideas on new QC metrics and parameters -as you add them in your qcML files as generic parameters, feel free to contact us, so we can include them in the CV. 147 | \end{task} 148 | 149 | -------------------------------------------------------------------------------- /Handout/srcltx.sty: -------------------------------------------------------------------------------- 1 | 2 | % ------------------------------------------------------------------------ 3 | % File: srcltx.sty 4 | % ========== 5 | % 6 | % Version 1.002 1999 Sep 3 (modified to change \everypar) 7 | % by David Carlisle 8 | % 9 | % Version 1.001 1998 Dec 23 (modified to change \output) 10 | % by Berthold Horn 11 | % 12 | % This package was originally written by Aleksander Simonic (the 13 | % author of WinEdt Shell) to implement a source file tracking and 14 | % DVI "SRC" specials for LaTeX. 15 | % 16 | % This package comes with no guarantees and no reserved rights. 17 | % You can use or modify this file at your own risk. 18 | % ************************************************************************ 19 | % NOTE: TeX commands are case sensitive. You have to use uppercase 20 | % \Input to take advantage of this package 21 | % 22 | % This package supports nested \Input commands... 23 | % File extension should be specified in \Input! 24 | % 25 | % This file should be placed in a directory where your LaTeX is 26 | % looking for inputs (eg. ...\localtexmf\tex for MiKTeX). 27 | % 28 | % If you are writing a book with WinEdt and LaTeX simply 29 | % include this file and use \include{mychapter} command... 30 | % This way all the necessary specials for DVI Search and 31 | % Inverse Search are inserted in your DVI File. 32 | % 33 | % WinEdt will be able to track Errors from your LOG file. 34 | % 35 | % ************************************************************************ 36 | % 37 | % Some TeX implementations (eg. MiKTeX 1.20 [or later]) can insert 38 | % the SRC specials much better than any macro package. Consult your 39 | % TeX documentation to see if it is better to leave the task to your 40 | % TeX. You can still use the [inactive] version of this package to 41 | % take advantage of the re-defined Input commands and thus allowing 42 | % WinEdt to keep track of errors in included source files. 43 | % 44 | % MiKTeX inserts the SRC specials in the DVI file if you start 45 | % [La]TeX with --src qualifier (see MiKTeX's Manual: 46 | % ...\texmf\Doc\MiKTeX\MiKTeX.pdf for more info). 47 | % 48 | % ************************************************************************ 49 | % 50 | % * NOTE: Some TeX implementations add the file type to the "\jobname". 51 | % In that case the definition of the "\MainFile" should be modified to: 52 | % 53 | % \def\MainFile{\jobname} instead of \def\MainFile{\jobname.tex}. 54 | % 55 | % ************************************************************************ 56 | % 57 | % *** Example - Your LaTeX thesis document may look like this: 58 | % 59 | %\documentclass[12pt]{report} 60 | %\usepackage[centertags]{amstex} 61 | %\usepackage{thesis,newlfont,amsthm} 62 | %\usepackage[active]{srcltx} 63 | %%No src specials are written when loading the package by 64 | %%\usepackage[inactive]{srcltx} 65 | % 66 | % .... Preamble .... 67 | % 68 | %\begin{document} 69 | % 70 | % .... Title, Author etc. .... 71 | % 72 | %\WinEdt{?0000} % Do not process any Errors (Overful/Underful Boxes) 73 | %\beforepreface 74 | %\WinEdt{?1111} % Process All Types of Errors from here on 75 | %\include{ABS} 76 | %\include{ACK} 77 | %\afterpreface 78 | %\include{chapter0} 79 | %\include{chapter1} 80 | %\include{chapter2} 81 | %\include{chapter3} 82 | %\bibliographystyle{amsplain} 83 | %\bibliography{xbib} 84 | %\end{document} 85 | % 86 | % ------------------------------------------------------------------------ 87 | \NeedsTeXFormat{LaTeX2e} 88 | \ProvidesPackage{srcltx}[1999/10/11 v1.002 DVI Search] 89 | \newif\ifSRCOK \SRCOKtrue 90 | \DeclareOption{active}{\SRCOKtrue} 91 | \DeclareOption{inactive}{\SRCOKfalse} 92 | \ExecuteOptions{inactive} 93 | \ProcessOptions 94 | % ------------------------------------------------------------------------ 95 | \newcount\PAGETOP 96 | \newcount\LASTLINE 97 | \global\PAGETOP=1 98 | \global\LASTLINE=-1 99 | \gdef\MainFile{\jobname.tex}% ".tex" needed for MiKTeX 100 | \gdef\CurrentInput{\MainFile} 101 | \newcount\INPSP 102 | \global\INPSP=0 103 | \def\EJECT{\SRC\eject} 104 | \def\WinEdt#1{\typeout{:#1}}% WinEdt LOG MODE and INPUT 105 | % ------------------------------------------------------------------------ 106 | %If your are using DVIWIN remove the \space from the definitions below... 107 | \def\SRC{\ifSRCOK% 108 | \ifnum\inputlineno>\LASTLINE% 109 | \ifnum\LASTLINE<0% 110 | \global\PAGETOP=\inputlineno% 111 | \fi% 112 | \global\LASTLINE=\inputlineno% 113 | \ifnum\INPSP=0% 114 | \ifnum\inputlineno>\PAGETOP% 115 | \special{src:\the\inputlineno\space\CurrentInput}% 116 | \fi% 117 | \else% 118 | \special{src:\the\inputlineno\space\CurrentInput}% 119 | \fi% 120 | \fi% 121 | \fi} 122 | % ------------------------------------------------------------------------ 123 | \def\PUSH#1{% 124 | \SRC% 125 | \ifnum\INPSP=0 \global\let\INPSTACKA=\CurrentInput \else% 126 | \ifnum\INPSP=1 \global\let\INPSTACKB=\CurrentInput \else% 127 | \ifnum\INPSP=2 \global\let\INPSTACKC=\CurrentInput \else% 128 | \ifnum\INPSP=3 \global\let\INPSTACKD=\CurrentInput \else% 129 | \ifnum\INPSP=4 \global\let\INPSTACKE=\CurrentInput \else% 130 | \ifnum\INPSP=5 \global\let\INPSTACKF=\CurrentInput \else% 131 | \global\let\INPSTACKX=\CurrentInput \fi\fi\fi\fi\fi\fi% 132 | \gdef\CurrentInput{#1}% 133 | \WinEdt{<+ \CurrentInput}% 134 | \global\LASTLINE=0% 135 | \ifSRCOK\special{src:1\CurrentInput}\fi% 136 | \global\advance\INPSP by 1} 137 | % 138 | \def\POP{% 139 | \ifnum\INPSP>0 \global\advance\INPSP by -1 \fi% 140 | \ifnum\INPSP=0 \global\let\CurrentInput=\INPSTACKA \else% 141 | \ifnum\INPSP=1 \global\let\CurrentInput=\INPSTACKB \else% 142 | \ifnum\INPSP=2 \global\let\CurrentInput=\INPSTACKC \else% 143 | \ifnum\INPSP=3 \global\let\CurrentInput=\INPSTACKD \else% 144 | \ifnum\INPSP=4 \global\let\CurrentInput=\INPSTACKE \else% 145 | \ifnum\INPSP=5 \global\let\CurrentInput=\INPSTACKF \else% 146 | \global\let\CurrentInput=\INPSTACKX \fi\fi\fi\fi\fi\fi% 147 | \WinEdt{<-}% 148 | \global\LASTLINE=\inputlineno% 149 | \global\advance\LASTLINE by -1% 150 | \SRC} 151 | % ------------------------------------------------------------------------ 152 | % Dummy Input: can be used as \INPUT{.bbl} to collect \bibitems 153 | \def\INPUT#1{\relax} 154 | % ------------------------------------------------------------------------ 155 | % Redefine the original \include command 156 | \let\OldINCLUDE=\include 157 | \def\include#1{%Always ".tex" file type! 158 | \EJECT% 159 | \PUSH{#1.tex}% 160 | \OldINCLUDE{#1}% 161 | \POP} 162 | % ------------------------------------------------------------------------ 163 | \def\Input#1{%Specify File Extension! 164 | \PUSH{#1}% 165 | \input #1% 166 | \POP} 167 | % ------------------------------------------------------------------------ 168 | % Note that these have been defined to concatenate the \SRC with 169 | % whatever those token lists did before, just in case they were not 170 | % empty token lists. Of course, later definitions may undo all this... 171 | \let\originalxxxeverypar\everypar 172 | \newtoks\everypar 173 | \originalxxxeverypar{\the\everypar\expandafter\SRC} 174 | %\everypar\expandafter{\the\everypar\expandafter\SRC} 175 | % ??? Remove the following line if you encounter problems: 176 | \everymath\expandafter{\the\everymath\expandafter\SRC} 177 | % ------------------------------------------------------------------------ 178 | % Redefine the \bibliography command: 179 | \let\zzzxxxbibliography=\bibliography 180 | \def\bibliography#1{\PUSH{\jobname.bbl}\zzzxxxbibliography{#1}\POP} 181 | %------------------------------------------------------------------------ 182 | % Modification to output routine to turn off \SRC while \output is active 183 | \output\expandafter{\expandafter\SRCOKfalse\the\output} 184 | %------------------------------------------------------------------------ 185 | -------------------------------------------------------------------------------- /Handout/troubleshooting.tex: -------------------------------------------------------------------------------- 1 | \section{Troubleshooting guide} 2 | This section will show you where you can turn to when you encounter any problems with this tutorial or with our 3 | nodes in general. Please see the FAQ first. If your problem is not listed or the proposed solution does not work, 4 | feel free to leave us a message at the means of support that you see most fit. If that is the case, please provide us 5 | with as much information as you can. In an ideal case, that would be: 6 | \begin{itemize} 7 | \item Your operating system and its version (e.g. Windows 8, Ubuntu 14.04) 8 | \item Your KNIME version (e.g. KNIME 3.1.2 full, KNIME 3.1.1 core) 9 | \item If not full: Which update site did you use for the OpenMS plugin? Trunk (nightly-builds) or Stable? 10 | \item Your OpenMS plugin version found under\\ 11 | \menu{Help > Install New Software > What is already installed?} 12 | \item Other installations of OpenMS on your computer (e.g. from the independent OpenMS installer, another KNIME instance etc.) 13 | \item The log of the error in KNIME and the standard output of the tool (see FAQ: How to debug) 14 | \item Your description of what you tried to do and experienced instead 15 | \end{itemize} 16 | 17 | \subsection{FAQ} 18 | 19 | \subsubsection{How to debug KNIME and/or the OpenMS nodes?} 20 | \begin{itemize} 21 | \item \textbf{KNIME:} Start with the normal log on the bottom right of KNIME. In general all warnings and errors will be 22 | listed there. If the output is not helpful enough, try to set the logging verbosity to the highest (DEBUG) under 23 | Preferences -> KNIME -> Log file log level. 24 | \item \textbf{OpenMS nodes:} The first step should also be the log of KNIME. Additionally, you can view the output and the errors of our 25 | tools by right-clicking on the node and selecting\\ 26 | \menu{View: NODENAME Std Output/Error}. This shows you the output of the OpenMS executable that was called by that 27 | node. For advanced users, you can try 28 | to execute the underlying executable in your\\ 29 | \menu{KNIME/plugins/de.openms.platform.arch.version/payload/bin} folder, 30 | to see if the error is reproducible outside of KNIME.\\ 31 | You can look up temporary files that are created by OpenMS nodes not connected to an Output or Viewer Node by right- 32 | clicking on a node and selecting the corresponding output view for the output you want to have a look at. The output 33 | views are located on the bottom of the menu that shows up after right-clicking. Their icon is a magnifying glass on 34 | top of a data table. The names of the output views in that menu may vary from node to node (usually a combination of 35 | "file","out","output" and optionally its possible extensions). For example for the Input File node you can open the 36 | information on the output files by clicking on "loaded file". In any case, a hierarchy of file descriptions will show 37 | up. If there are multiple files on that port they will be numbered (usually beginning from 0). Expand the information 38 | for the file you want to see and copy its URI (you might need to erase the "file:" prefix). Now open it with an 39 | editor of your choice. Be aware that temporary files are subject to deletion and are usually only stored as long as 40 | they are actually needed. There is also a Debug mode for the GKN nodes that keeps temporary files that can be activated 41 | under Preferences -> KNIME -> Generic KNIME Nodes -> Debug mode. 42 | For the single nodes you can also increase the debug level in the configuration dialog under the advanced parameters. 43 | You can also specify a log file there, to save the log output of a specific node on your file system. 44 | \end{itemize} 45 | 46 | \subsubsection{General} 47 | \textbf{Q:} Can I add my own modifications to the Unimod.xml?\\ 48 | \textbf{A:} Unfortunately not very easy. This is an open issue since the selections are 49 | hard-coded during creation of the tools. We included 10 places for dummy modifications that can be entered in our Unimod.xml and selected in KNIME. 50 | \\\\ 51 | \textbf{Q:} I have problem XYZ but it also occurs with other nodes or generally in the KNIME environment/GUI, what should I do?\\ 52 | \textbf{A:} This sounds like a general KNIME bug and we advise to search help directly at the KNIME developers. They also provide a \href{https://tech.knime.org/ 53 | faq}{FAQ} and a \href{https://tech.knime.org/forum}{forum}. 54 | \\\\ 55 | \textbf{Q:} After exporting and reading in results into a KNIME table (e.g. with a MzTabExporter and MzTabReader combination) numeric values get rounded (e.g. from scientific notation 4.5e-10 to zero) or are in a different representation than in the underlying exported file!\\ 56 | \textbf{A:} Please try a different table column renderer in KNIME. Open the table in question, right-click on the header of an affected column and select another Available Renderer by hovering and finally left-clicking. 57 | \\\\ 58 | \textbf{Q:} I have checked all the configurations but KNIME complains that it can not find certain output Files (FileStoreObjects).\\ 59 | \textbf{A:} Sometimes KNIME/GKN has hiccups with multiple nodes with a same name, executed at the same time in the same loop. We have seen that a simple save and restart of KNIME usually solves the problem. 60 | 61 | \subsubsection{Platform-specific problems} 62 | \textbf{Linux}\\ 63 | \textbf{Q:} Whenever I try to execute an OpenMS node I get an error similar to these: 64 | \begin{verbatim} 65 | /usr/lib/x86_64-linux-gnu/libgomp.so.1: version `GOMP_4.0' not found 66 | /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found 67 | \end{verbatim} 68 | \textbf{A:} We currently build the binaries shipped in the OpenMS KNIME plugin with gcc 4.8. We will try to extend our support for older compilers. 69 | Until then you either need to upgrade your gcc compiler 70 | or at least the library that the tool complained about or you need to build the 71 | binaries yourself (see OpenMS documentation) and replace them in your KNIME binary folder\\ 72 | (\menu{YOURKNIMEFOLDER/plugins/de.openms.platform.architecture.version/payload/bin}). 73 | \\\\ 74 | \textbf{Q:} Why is my configuration dialog closing right away when I double-click or try to configure it? Or why is my GUI responding so slow?\\ 75 | \textbf{A:} If you have any problems with the KNIME GUI or the opening of dialogues under Linux you might be affected by a 76 | GTK bug. See the KNIME forum (e.g. \href{https://tech.knime.org/forum/knime-general/ubuntu-1604-slow-performance}{here} or \href{https://tech.knime.org/forum/knime-users/knime-300-crashes-after-splash-screen}{here}) for a discussion and a possible solution. In short: set environment variable by calling \texttt{export SWT\_GTK3=0} or edit knime.ini to make Eclipse use GTK2 by adding the following two lines:\\ 77 | \texttt{--launcher.GTK\_version\\ 78 | 2}\\\\ 79 | \textbf{macOS}\\ 80 | \textbf{Q:} I have problems installing RServe in my local R installation for the R KNIME Extension:\\ 81 | \textbf{A:} If you encounter linker errors while running install.packages("Rserve") when using an R installation from homebrew, make sure gettext is installed via homebrew and you pass flags to its lib directory. See StackOverflow question \href{http://stackoverflow.com/questions/21370363/link-error-installing-rcpp-library-not-found-for-lintl}{21370363}. 82 | \\\\ 83 | \textbf{Q:} Although I \keys{Ctrl}+\keys{Leftclick} TOPPAS.app or TOPPView.app and accept the risk of a downloaded application, the icon only shortly blinks and nothing happens:\\ 84 | \textbf{A:} It seems like your OS is not able to remove the quarantine flag. If you trust us, please remove it yourself by typing the following command in your Terminal.app:\\ 85 | \menu{xattr -r -d com.apple.quarantine /Applications/OpenMS-2.7.0} 86 | \\\\ 87 | \textbf{Windows}\\ 88 | \textbf{Q:} KNIME has problems getting the requirements for some of the OpenMS nodes on Windows, what can I do?\\ 89 | \textbf{A:} Get the prerequisites installer \href{\WindowsPrerequisitesLink}{here} or install .NET3.5, .NET4 and VCRedist10.0 and 12.0 yourself.\\ 90 | \subsubsection{Nodes} 91 | \textbf{Q:} Why is my XTandemAdapter printing empty or VERY few results, although I did not use an e-value cutoff?\\ 92 | \textbf{A:} Due to a bug in OpenMS 2.0.1 the XTandemAdapter requires a default parameter file. Give it the default configuration in\\ 93 | \menu{YOURKNIMEFOLDER/plugins/de.openms.platform.architecture.version/payload/share/}\\ 94 | \menu{CHEMISTRY/XTandem\_default\_input.xml} as a third input file. This should be resolved in newer versions though, such that it automatically uses this file if the optional inputs is empty. This should be solved in newer versions. 95 | \\\\ 96 | \textbf{Q:} Do MSGFPlusAdapter, LuciphorAdapter or SiriusAdapter generally behave different/unexpected?\\ 97 | \textbf{A:} These are Java processes that are started underneath. For example they can not be killed during 98 | cancellation of the node. 99 | This should not affect its performance, however. Make sure you set the Java memory parameter in these nodes to a reasonable value. Also MSGFPlus is creating several auxiliary files and accesses them during execution. 100 | Some users therefore experienced problems when executing several instances at the same time. 101 | \subsection{Sources of support} 102 | If your questions could not be answered by the FAQ, please feel free to turn to our developers via one of the following means: 103 | \begin{itemize} 104 | \item File an issue on \href{https://github.com/OpenMS/OpenMS/issues}{GitHub} 105 | \item Write to the \href{mailto:open-ms-developers@lists.sourceforge.net}{Mailing List} 106 | \item Open a thread on the KNIME Community Contributions \href{https://tech.knime.org/forum/openms}{forum} for OpenMS 107 | \end{itemize} 108 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, OpenMS 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | * Neither the name of UMTutorials nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Tutorials 2 | Handouts and workflows as used in the tutorial session during user meetings. 3 | 4 | Build handout: 5 | - compile PDF from `Handout/handout.tex` using XeLatex and BibTex (for citations) with `Handout` as working directory: 6 |  `cd Handout && xelatex -shell-escape handout && bibtex handout && xelatex -shell-escape handout && xelatex -shell-escape handout` 7 | 8 | 9 | Note: 10 | - Please put only the handouts and workflows (small files) here. Installers, external tools, and example data should be kept in the releases. 11 | - Please assign a Git tag for any special tutorial event with a separate release 12 | -------------------------------------------------------------------------------- /Workflows/DIAMetAlyzer.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/DIAMetAlyzer.knwf -------------------------------------------------------------------------------- /Workflows/DIAMetAlyzer_2.0.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/DIAMetAlyzer_2.0.knwf -------------------------------------------------------------------------------- /Workflows/Identification_quantification_with_inference_isobaric_epifany_MSstatsTMT.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/Identification_quantification_with_inference_isobaric_epifany_MSstatsTMT.knwf -------------------------------------------------------------------------------- /Workflows/MSstatsTMT.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/MSstatsTMT.knwf -------------------------------------------------------------------------------- /Workflows/MSstats_statPostProcessing_iPRG2015.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/MSstats_statPostProcessing_iPRG2015.knwf -------------------------------------------------------------------------------- /Workflows/Metabolite_Adduct_Grouping.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/Metabolite_Adduct_Grouping.knwf -------------------------------------------------------------------------------- /Workflows/Metabolite_DeNovoID.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/Metabolite_DeNovoID.knwf -------------------------------------------------------------------------------- /Workflows/Metabolite_ID.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/Metabolite_ID.knwf -------------------------------------------------------------------------------- /Workflows/Metabolite_SpectralID.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/Metabolite_SpectralID.knwf -------------------------------------------------------------------------------- /Workflows/OpenSwath.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/OpenSwath.knwf -------------------------------------------------------------------------------- /Workflows/Phosphoproteomics_ID.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/Phosphoproteomics_ID.knwf -------------------------------------------------------------------------------- /Workflows/ProteomicsLFQ_tool_and_MSstats_postprocessing.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/ProteomicsLFQ_tool_and_MSstats_postprocessing.knwf -------------------------------------------------------------------------------- /Workflows/Proteomics_LFQ.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/Proteomics_LFQ.knwf -------------------------------------------------------------------------------- /Workflows/QC Metanodes.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/QC Metanodes.knwf -------------------------------------------------------------------------------- /Workflows/QC_with_OpenMS.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/QC_with_OpenMS.knwf -------------------------------------------------------------------------------- /Workflows/QC_with_OpenMS_noggplot.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/QC_with_OpenMS_noggplot.knwf -------------------------------------------------------------------------------- /Workflows/README.MD: -------------------------------------------------------------------------------- 1 | Tested on KNIME 5.2.0 and OpenMS 3.0 2 | 3 | Description of workflows 4 | 5 | - [ProteomicsLFQ_tool_and_MSstats_postprocessing.knwf:](ProteomicsLFQ_tool_and_MSstats_postprocessing.knwf) 6 | Label-free identification and quantification using the comet search engine, the ProteomicsLFQ tool and statistical down-stream processing using MSstats. 7 | Compared to the other proteomics LFQ workflows, it is less complex as it combines quantification and inference steps in a single ProtemicLFQ tool. 8 | 9 | - [basic_peptide_identification:](basic_peptide_identification.knwf) 10 | Label-free identification using the omssa search engine. 11 | 12 | - [DIAMetAlyzer.knwf:](DIAMetAlyzer.knwf) 13 | Metabolomics assay library construction with decoy generation from DDA data and targeted DIA analysis using OpenSWATH and pyprophet for statistical validation. 14 | 15 | - [Identification_quantification_with_inference_isobaric_epifany_MSstatsTMT.knwf:](Identification_quantification_with_inference_isobaric_epifany_MSstatsTMT.knwf) 16 | Identification and quantification for isobaric experiments using MSGFPlus as search engine, epifany for inference and MSstatsTMT for statistical down-stream analysis. 17 | 18 | - [labelfree_with_protein_quantification:](labelfree_with_protein_quantification.knwf) 19 | Label-free with protein quantification steps implemented using individual OpenMS tools 20 | 21 | - [Metabolite_Adduct_Grouping.knwf:](Metabolite_Adduct_Grouping.knwf) 22 | Quantification and identification via accurate mass based on multiple adduct grouping steps (adducts, neutral losses). 23 | 24 | - [Metabolite_DeNovoID.knwf:](Metabolite_DeNovoID.knwf) 25 | Quantification and identification via adduct grouping and de-novo identification using SIRIUS/CSI:FingerID. 26 | 27 | - [Metabolite_ID.knwf:](Metabolite_ID.knwf) 28 | Quantification and identification via accurate mass based with downstream processing and visualisation. 29 | 30 | - [Metabolite_SpectralID.knwf:](Metabolite_SpectralID.knwf) 31 | Identification via spectral library search for small molecules. 32 | 33 | - [MSstats_statPostProcessing_iPRG2015.knwf:](MSstats_statPostProcessing_iPRG2015.knwf) 34 | Post processing workflow for using MSstats based on "Example_OneTool_ProteomicsLFQ_MSstats.knwf". 35 | 36 | - [MSstatsTMT.knwf:](MSstatsTMT.knwf) 37 | Post processing workflow for using MSstatsTMT based on "Identification_quantification_with_inference_isobaric_epifany_MSstatsTMT". 38 | 39 | - [openmsLFQ_iPRG2015.knwf:](openmsLFQ_iPRG2015.knwf) 40 | TODO: What does it do? 41 | 42 | - [OpenSWATH.knwf:](OpenSWATH.knwf) 43 | Targeted extraction and scoring of transitions in DIA data based on an (iRT) assay library. 44 | 45 | - [Phosphoproteomics_ID.knwf:](Phosphoproteomics_ID.knwf) 46 | Identification of Phosphorilation sites. 47 | 48 | - [Proteomics_LFQ.knwf:](Proteomics_LFQ.knwf) 49 | TODO: What does it do? 50 | 51 | - [QC Metanodes.knwf:](QC Metanodes.knwf) 52 | TODO: What does it do? 53 | 54 | - [QC_with_OpenMS_ggplot.knwf:](QC_with_OpenMS_ggplot.knwf) 55 | TODO: What does it do? 56 | 57 | - [QC_with_OpenMS_noggplot.knwf:](QC_with_OpenMS_noggplot.knwf) 58 | TODO: What does it do? 59 | 60 | - [QC_with_OpenMS.knwf:](QC_with_OpenMS.knwf) 61 | TODO: What does it do? 62 | -------------------------------------------------------------------------------- /Workflows/basic_peptide_identification.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/basic_peptide_identification.knwf -------------------------------------------------------------------------------- /Workflows/basic_peptide_identification_with_inference.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/basic_peptide_identification_with_inference.knwf -------------------------------------------------------------------------------- /Workflows/basic_peptide_identification_with_inference_and_spectral_counting.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/basic_peptide_identification_with_inference_and_spectral_counting.knwf -------------------------------------------------------------------------------- /Workflows/consensus_peptide_identification.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/consensus_peptide_identification.knwf -------------------------------------------------------------------------------- /Workflows/executeBatch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | for wf in basic_peptide_*.knwf 3 | do 4 | "${1}" -consoleLog --launcher.suppressErrors -nosave -nosplash -data "${2}" -application org.knime.product.KNIME_BATCH_APPLICATION -workflowFile="$(pwd)/${wf}" -reset -vmargs -Djava.io.tmpdir="${2}" > log_${wf}.txt 5 | done 6 | -------------------------------------------------------------------------------- /Workflows/execute_Batch_Win.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal enabledelayedexpansion 3 | 4 | if "%~1"=="" ( 5 | echo Usage: %0 KNIME_HOME KNIME_WORKSPACE WORKFLOW_DIRECTORY 6 | echo KNIME_HOME is the directory containing knime.exe 7 | echo Test Data should be in KNIME_WORKSPACE\Example_Data 8 | echo A KNIME_WORKSPACE\TMP folder should exist for temp files 9 | exit /b 1 10 | ) 11 | 12 | set KNIME_HOME=%~1 13 | set WORKSPACE=%~2 14 | set WORKFLOWS=%~3 15 | 16 | if not exist "%KNIME_HOME%\knime.exe" ( 17 | echo Error: KNIME_HOME directory "%KNIME_HOME%" does not contain knime.exe 18 | exit /b 1 19 | ) 20 | 21 | if not exist "%WORKSPACE%" ( 22 | echo Error: directory does not exist 23 | exit /b 1 24 | ) 25 | 26 | if not exist "%WORKFLOWS%" ( 27 | echo Error: workflow directory does not exist 28 | exit /b 1 29 | ) 30 | 31 | echo KNIME_HOME = %KNIME_HOME% 32 | echo WORKSPACE = %WORKSPACE% 33 | echo WORKFLOWS = %WORKFLOWS% 34 | 35 | 36 | for %%f in (%WORKFLOWS%\*.knwf) do ( 37 | set wf=%%~nxf 38 | echo !wf! 39 | ::echo %WORKFLOWS%\!wf! 40 | "%KNIME_HOME%\knime.exe" -consoleLog -nosplash -data "%WORKSPACE%" -application org.knime.product.KNIME_BATCH_APPLICATION --launcher.suppressErrors -nosave -workflowDir=%WORKFLOWS% -workflowFile="%WORKFLOWS%\!wf!" -reset -vmargs -Djava.io.tmpdir="%WORKSPACE%\TMP" > "%WORKSPACE%\TMP\log_!wf!.txt" 2>&1 41 | ) 42 | 43 | echo Done. 44 | 45 | ::add -noexit to keep each workflow terminal alive -------------------------------------------------------------------------------- /Workflows/fdr_peptide_identification.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/fdr_peptide_identification.knwf -------------------------------------------------------------------------------- /Workflows/labelfree_with_protein_quantification.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/labelfree_with_protein_quantification.knwf -------------------------------------------------------------------------------- /Workflows/lfq_and_peptide_identification.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/lfq_and_peptide_identification.knwf -------------------------------------------------------------------------------- /Workflows/openmsLFQ_iPRG2015.knwf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMS/OpenMS-Tutorials/77887b3751f6c9ceea7729a54049c6c362bba654/Workflows/openmsLFQ_iPRG2015.knwf -------------------------------------------------------------------------------- /Workflows/pyOpenMS/ProteinDigestor.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import sys 3 | from pyopenms import * 4 | 5 | def main(options): 6 | 7 | # read fasta file 8 | ff = FASTAFile() 9 | ff.readStart(options.infile) 10 | fe = FASTAEntry() 11 | 12 | # use ProteaseDigestion class 13 | digestor = ProteaseDigestion() 14 | digestor.setEnzyme(options.enzyme) 15 | digestor.setMissedCleavages(options.missed_cleavages) 16 | 17 | # protein and peptide datastructure 18 | protein_identifications = [] 19 | peptide_identifications = [] 20 | protein_identification = ProteinIdentification() 21 | protein_identifications.append(protein_identification) 22 | temp_pe = PeptideEvidence() 23 | 24 | # number of dropped peptides due to length restriction 25 | dropped_by_length = 0 26 | 27 | while(ff.readNext(fe)): 28 | # construct ProteinHit and fill it with sequence information 29 | temp_protein_hit = ProteinHit() 30 | temp_protein_hit.setSequence(fe.sequence) 31 | temp_protein_hit.setAccession(fe.identifier) 32 | 33 | # save the ProteinHit in a ProteinIdentification Object 34 | protein_identification.insertHit(temp_protein_hit) 35 | 36 | # construct a PeptideHit and save the ProteinEvidence (Mapping) for the specific 37 | # current protein 38 | temp_peptide_hit = PeptideHit() 39 | temp_pe.setProteinAccession(fe.identifier); 40 | temp_peptide_hit.setPeptideEvidences([temp_pe]) 41 | 42 | # digestion 43 | current_digest = [] 44 | aaseq = AASequence() 45 | if (options.enzyme == "none"): 46 | current_digest.append(aaseq.fromString(fe.sequence)) 47 | else: 48 | dropped_by_length += digestor.digest(aaseq.fromString(fe.sequence), current_digest, options.min_length, options.max_length) 49 | 50 | for seq in current_digest: 51 | # fill the PeptideHit and PeptideIdentification datastructure 52 | peptide_identification = PeptideIdentification() 53 | temp_peptide_hit.setSequence(seq) 54 | peptide_identification.insertHit(temp_peptide_hit) 55 | peptide_identifications.append(peptide_identification) 56 | 57 | print(str(dropped_by_length) + " peptides have been dropped due to the length restriction.") 58 | idxml = IdXMLFile() 59 | idxml.store(options.outfile, protein_identifications, peptide_identifications) 60 | 61 | def handle_args(): 62 | import argparse 63 | 64 | # get available enzymes from ProteaseDB (in OpenMS) 65 | all_enzymes = [] 66 | p_db=ProteaseDB().getAllNames(all_enzymes) 67 | 68 | usage = "" 69 | usage += "\nProteinDigestor −− In silico digestion of proteins." 70 | 71 | parser = argparse.ArgumentParser(description = usage) 72 | parser.add_argument('-in', dest='infile', help='An input file containing amino acid sequences [fasta]') 73 | parser.add_argument('-out', dest='outfile', help='Output digested sequences in idXML format [idXML]') 74 | parser.add_argument('-enzyme', dest='enzyme', help='Enzymes which can be used for digestion: '+ ', '.join(map(bytes.decode, all_enzymes))) 75 | parser.add_argument('-min_length', type=int, dest='min_length', help ='Minimum length of peptide') 76 | parser.add_argument('-max_length', type=int, dest='max_length', help='Maximum length of peptide') 77 | parser.add_argument('-missed_cleavages', type=int, dest='missed_cleavages', help='The number of allowed missed cleavages') 78 | 79 | args = parser.parse_args(sys.argv[1:]) 80 | return args 81 | 82 | if __name__ == '__main__': 83 | options = handle_args() 84 | main(options) 85 | 86 | -------------------------------------------------------------------------------- /Workflows/pyOpenMS/ProteinDigestor_argparse.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import sys 3 | 4 | def main(options): 5 | 6 | # test parameter handling 7 | print(options.infile, options.outfile, options.enzyme, options.min_length, options.max_length, options.missed_cleavages) 8 | 9 | def handle_args(): 10 | import argparse 11 | 12 | usage = "" 13 | usage += "\nProteinDigestor −− In silico digestion of proteins." 14 | 15 | parser = argparse.ArgumentParser(description = usage) 16 | parser.add_argument('-in', dest='infile', help='An input file containing amino acid sequences [fasta]') 17 | parser.add_argument('-out', dest='outfile', help='Output digested sequences in idXML format [idXML]') 18 | parser.add_argument('-enzyme', dest='enzyme', help='Enzyme used for digestion') 19 | parser.add_argument('-min_length', type=int, dest='min_length', help ='Minimum length of peptide') 20 | parser.add_argument('-max_length', type=int, dest='max_length', help='Maximum length of peptide') 21 | parser.add_argument('-missed_cleavages', type=int, dest='missed_cleavages', help='The number of allowed missed cleavages') 22 | 23 | args = parser.parse_args(sys.argv[1:]) 24 | return args 25 | 26 | if __name__ == '__main__': 27 | options = handle_args() 28 | main(options) 29 | 30 | --------------------------------------------------------------------------------