<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE language><language name="Snakemake" version="1" style="snakemake" kateversion="5.62" section="Scripts" extensions="*.smk;Snakefile" mimetype="application/x-snakemake;text/x-snakemake" author="Thomas Bigot" license="MIT" indenter="python"><highlighting><list name="PyLiterals"><item>False</item><item>None</item><item>True</item></list><list name="SmkBlockColonOnly"><item>async</item><item>checkpoint</item><item>conda</item><item>configfile</item><item>container</item><item>containerized</item><item>envvars</item><item>include</item><item>localrules</item><item>moduleinclude</item><item>report</item><item>ruleorder</item><item>wildcard_constraints</item><item>workdir</item><item>workflow</item></list><list name="SmkBlockNameColon"><item>module</item><item>subworkflow</item></list><list name="SmkDirective"><item>benchmark</item><item>cache</item><item>conda</item><item>container</item><item>containerized</item><item>cwl</item><item>default_target</item><item>envmodules</item><item>group</item><item>handover</item><item>input</item><item>localrule</item><item>log</item><item>message</item><item>name</item><item>notebook</item><item>output</item><item>params</item><item>priority</item><item>resources</item><item>run</item><item>script</item><item>shadow</item><item>shell</item><item>singularity</item><item>threads</item><item>version</item><item>wildcard_constraints</item><item>wrapper</item></list><list name="PyKeywordAll"><item>and</item><item>as</item><item>assert</item><item>async</item><item>await</item><item>break</item><item>continue</item><item>del</item><item>else</item><item>for</item><item>from</item><item>global</item><item>if</item><item>import</item><item>in</item><item>is</item><item>lambda</item><item>nonlocal</item><item>not</item><item>or</item><item>pass</item><item>raise</item><item>return</item><item>yield</item></list><list name="PyBlockExprColon"><item>async</item><item>case</item><item>class</item><item>def</item><item>elif</item><item>except</item><item>for</item><item>if</item><item>match</item><item>while</item><item>with</item></list><list name="PyBlockColonOnly"><item>else</item><item>finally</item><item>try</item></list><contexts><context name="TopLevel" attribute="Normal Text"><RegExpr String="\b(?:rule|checkpoint)\b" attribute="Block Opener" context="SmkRuleHeader"/><RegExpr String="\buse rule\b" attribute="Block Opener" context="SmkUseRuleHeader"/><RegExpr String="\bmodule\b" attribute="Block Opener" context="SmkModuleHeader"/><RegExpr String="\bsubworkflow\b" attribute="Block Opener" context="SmkSubworkflowHeader"/><keyword String="SmkBlockColonOnly" attribute="Block Opener" context="SmkWaitColon" firstNonSpace="1"/><keyword String="SmkBlockNameColon" attribute="Block Opener" context="SmkWaitNameThenColon" firstNonSpace="1"/><keyword String="PyBlockColonOnly" attribute="Block Opener" context="PyWaitColon" firstNonSpace="1"/><keyword String="PyBlockExprColon" attribute="Block Opener" context="PyWaitExprThenColon" firstNonSpace="1"/><RegExpr String="[a-zA-Z_][a-zA-Z0-9_]*:" attribute="Error" firstNonSpace="1"/><IncludeRules context="PyInline"/></context><context name="ErrorBadBlock" attribute="Error" lineEndContext="#pop"><DetectSpaces attribute="Normal Text"/><DetectChar char="#" context="#pop" lookAhead="1"/></context><context name="StringEscapes" attribute="EscapeCharacter"><RegExpr String="\\(?:[abfnrtv\\&#34;']|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\{[^}]+\}|\r?\n|.)" attribute="EscapeCharacter"/></context><context name="StringInterpolation" attribute="Normal Text"><RegExpr String="\{(?:params|input|output|resources|wildcards|config|threads|workflow|log|group|rule)(?:\.[A-Za-z_][A-Za-z0-9_]*)*(?:\[[^{}\[\]]+\])*\}" attribute="SmkPlaceholder"/><RegExpr String="\{[A-Za-z_][A-Za-z0-9_]*(?:,[^{}]+)?\}" attribute="SmkWildcard"/></context><context name="SmkDirectiveBody" attribute="Normal Text" fallthroughContext="#pop" lineEmptyContext="#pop"><RegExpr String="^\S" context="#pop" column="0" lookAhead="1"/><RegExpr String="(?:rule|checkpoint|use rule)\b" attribute="RuleHeaderKeyword" context="#pop#pop" firstNonSpace="1" lookAhead="1"/><RegExpr String="[A-Za-z_]\w*\s*:" attribute="SmkDirective" context="#pop" firstNonSpace="1" lookAhead="1"/><DetectSpaces/><DetectChar char="#" attribute="Comment" context="CommentLine"/><IncludeRules context="PyInline"/></context><context name="CommentLine" attribute="Comment" lineEndContext="#pop"/><context name="PyInline" attribute="Normal Text" lineEndContext="#pop"><IncludeRules context="PyCommonOperators"/><AnyChar String="()[]{},.:" attribute="Operator"/><IncludeRules context="StringVariantsStart"/><keyword String="PyKeywordAll" attribute="Python Keyword"/><keyword String="PyLiterals" attribute="Constant"/><RegExpr String="\b[A-Za-z_]\w*(?=\s*\()" attribute="Python Function"/><DetectIdentifier attribute="Variable"/><Float attribute="Number"/><Int attribute="Number"/><DetectChar char="#" attribute="Comment" context="CommentLine"/></context><context name="FStringInterpolation" attribute="Normal Text"><RegExpr String="\{\{(?:params|input|output|resources|wildcards|config|threads|workflow|log|group|rule)(?:\.[A-Za-z_][A-Za-z0-9_]*)*(?:\[[^{}\[\]]+\])*\}\}" attribute="SmkPlaceholder"/><RegExpr String="\{\{[A-Za-z_][A-Za-z0-9_]*(?:,[^{}]+)?\}\}" attribute="SmkWildcard"/><StringDetect String="{{" attribute="Escape"/><StringDetect String="}}" attribute="Escape"/><DetectChar char="{" attribute="FStringDelimiter" context="FStringExpr"/></context><context name="SmkRuleBody" attribute="Normal Text" fallthroughContext="#pop" lineEmptyContext="#pop"><RegExpr String="^\S" context="#pop" column="0" lookAhead="1"/><DetectSpaces/><StringDetect String='"""' attribute="Documentation" context="RuleDocDq" firstNonSpace="1"/><StringDetect String="'''" attribute="Documentation" context="RuleDocSq" firstNonSpace="1"/><DetectChar char="#" attribute="Comment" context="CommentLine"/><StringDetect String="run:" attribute="SmkDirective" context="SmkRunBlock"/><keyword String="SmkDirective" attribute="SmkDirective" context="SmkWaitColonAfterDirective" firstNonSpace="1"/><keyword String="PyBlockColonOnly" attribute="SmkDirective" context="#pop" firstNonSpace="1" lookAhead="1"/><keyword String="PyBlockExprColon" attribute="SmkDirective" context="#pop" firstNonSpace="1" lookAhead="1"/><RegExpr String="[A-Za-z_]\w*\s*:" attribute="Error" context="SmkDirectiveBody"/><RegExpr String="[A-Za-z_]\w*\s*" attribute="Error" context="ErrorBadBlock"/></context><context name="DoubleQuoteString" attribute="String" lineEndContext="#pop"><IncludeRules context="StringEscapes"/><IncludeRules context="StringInterpolation"/><DetectChar char='"' attribute="String" context="#pop"/></context><context name="FDoubleQuoteString" attribute="String" lineEndContext="#pop"><IncludeRules context="StringEscapes"/><IncludeRules context="FStringInterpolation"/><DetectChar char='"' attribute="String" context="#pop"/></context><context name="FSingleQuoteString" attribute="String" lineEndContext="#pop"><IncludeRules context="StringEscapes"/><IncludeRules context="FStringInterpolation"/><DetectChar char="'" attribute="String" context="#pop"/></context><context name="FStringExpr" attribute="FStringExpr"><DetectChar char="}" attribute="FStringDelimiter" context="#pop"/><IncludeRules context="PyInline"/></context><context name="FTripleDoubleQuoteString" attribute="String"><IncludeRules context="StringEscapes"/><IncludeRules context="FStringInterpolation"/><StringDetect String='"""' attribute="String" context="#pop"/></context><context name="FTripleSingleQuoteString" attribute="String"><IncludeRules context="StringEscapes"/><IncludeRules context="FStringInterpolation"/><StringDetect String="'''" attribute="String" context="#pop"/></context><context name="PyCommonOperators" attribute="Operator"><StringDetect String="&lt;&lt;=" attribute="Operator"/><StringDetect String=">>=" attribute="Operator"/><StringDetect String="**=" attribute="Operator"/><StringDetect String="//=" attribute="Operator"/><StringDetect String=":=" attribute="Operator"/><StringDetect String="->" attribute="Operator"/><StringDetect String="&lt;=" attribute="Operator"/><StringDetect String=">=" attribute="Operator"/><StringDetect String="==" attribute="Operator"/><StringDetect String="!=" attribute="Operator"/><StringDetect String="&lt;&lt;" attribute="Operator"/><StringDetect String=">>" attribute="Operator"/><StringDetect String="**" attribute="Operator"/><StringDetect String="//" attribute="Operator"/><StringDetect String="+=" attribute="Operator"/><StringDetect String="-=" attribute="Operator"/><StringDetect String="*=" attribute="Operator"/><StringDetect String="/=" attribute="Operator"/><StringDetect String="%=" attribute="Operator"/><StringDetect String="&amp;=" attribute="Operator"/><StringDetect String="|=" attribute="Operator"/><StringDetect String="^=" attribute="Operator"/><StringDetect String="@=" attribute="Operator"/><AnyChar String="+-*/%&amp;|^~&lt;>=@"/></context><context name="PyWaitColon" attribute="Normal Text" lineEndContext="#pop"><DetectSpaces/><DetectChar char=":" attribute="Normal Text" context="#pop!ErrorBadBlock"/><RegExpr String="\S.*" attribute="Error" context="#pop!ErrorBadBlock"/></context><context name="PyWaitExprThenColon" attribute="Normal Text" lineEndContext="#pop"><DetectSpaces/><DetectChar char=":" attribute="Normal Text" context="#pop!ErrorBadBlock"/><IncludeRules context="PyInline"/><RegExpr String="\S.*" attribute="Error" context="#pop!ErrorBadBlock"/></context><context name="RDoubleQuoteString" attribute="String" lineEndContext="#pop"><IncludeRules context="StringInterpolation"/><DetectChar char='"' attribute="String" context="#pop"/></context><context name="RSingleQuoteString" attribute="String" lineEndContext="#pop"><IncludeRules context="StringInterpolation"/><DetectChar char="'" attribute="String" context="#pop"/></context><context name="RTripleDoubleQuoteString" attribute="String"><IncludeRules context="StringInterpolation"/><StringDetect String='"""' attribute="String" context="#pop"/></context><context name="RTripleSingleQuoteString" attribute="String"><IncludeRules context="StringInterpolation"/><StringDetect String="'''" attribute="String" context="#pop"/></context><context name="RuleDocDq" attribute="Documentation"><StringDetect String='"""' attribute="Documentation" context="#pop"/></context><context name="RuleDocSq" attribute="Documentation"><StringDetect String="'''" attribute="Documentation" context="#pop"/></context><context name="SingleQuoteString" attribute="String" lineEndContext="#pop"><IncludeRules context="StringEscapes"/><IncludeRules context="StringInterpolation"/><DetectChar char="'" attribute="String" context="#pop"/></context><context name="SmkModuleBody" attribute="Normal Text"><RegExpr String="^\S" context="#pop" column="0" lookAhead="1"/><DetectChar char="#" attribute="Comment" context="CommentLine"/><DetectSpaces/><RegExpr String="\b(?:snakefile|config|replace_rule|skip_rule|skip_keyword)\b" attribute="SmkDirective" context="SmkDirectiveBody"/><RegExpr String="[A-Za-z_]\w*\s*:" attribute="Error" context="SmkDirectiveBody"/><RegExpr String="[A-Za-z_]\w*\s*" attribute="Error" context="ErrorBadBlock"/></context><context name="SmkModuleHeader" attribute="Normal Text"><DetectSpaces/><DetectIdentifier attribute="Rule Name"/><DetectChar char=":" attribute="Normal Text" context="#pop!SmkModuleBody"/></context><context name="SmkRuleHeader" attribute="Normal Text"><DetectIdentifier attribute="Rule Name"/><DetectSpaces/><DetectChar char=":" attribute="Normal Text" context="#pop!SmkRuleBody"/><RegExpr String="\S.*" attribute="Error" context="#pop!ErrorBadBlock"/></context><context name="SmkRunBlock" attribute="Normal Text" fallthroughContext="#pop" lineEmptyContext="#pop"><RegExpr String="^\S" context="#pop" column="0" lookAhead="1"/><keyword String="PyBlockColonOnly" attribute="Python Keyword"/><keyword String="PyBlockExprColon" attribute="Python Keyword"/><RegExpr String="(?:rule|checkpoint|use rule)\b" attribute="RuleHeaderKeyword" context="#pop#pop" firstNonSpace="1" lookAhead="1"/><RegExpr String="[A-Za-z_]\w*\s*:" attribute="SmkDirective" context="#pop" firstNonSpace="1" lookAhead="1"/><DetectSpaces/><IncludeRules context="PyInline"/></context><context name="SmkSubworkflowBody" attribute="Normal Text"><RegExpr String="^\S" context="#pop" column="0" lookAhead="1"/><DetectChar char="#" attribute="Comment" context="CommentLine"/><DetectSpaces/><RegExpr String="\b(?:snakefile|workdir|configfile)\b" attribute="SmkDirective" context="SmkDirectiveBody"/><RegExpr String="[A-Za-z_]\w*\s*:" attribute="Error" context="SmkDirectiveBody"/><RegExpr String="[A-Za-z_]\w*\s*" attribute="Error" context="ErrorBadBlock"/></context><context name="SmkSubworkflowHeader" attribute="Normal Text"><DetectSpaces/><DetectIdentifier attribute="Rule Name"/><DetectChar char=":" attribute="Normal Text" context="#pop!SmkSubworkflowBody"/></context><context name="SmkUseRuleHeader" attribute="Normal Text"><WordDetect String="as" attribute="RuleHeaderKeyword"/><WordDetect String="with" attribute="RuleHeaderKeyword"/><RegExpr String="[A-Za-z_]\w*(?!\s*:)" attribute="Rule Name"/><DetectSpaces/><DetectChar char=":" attribute="Normal Text" context="#pop!SmkRuleBody"/></context><context name="SmkWaitColon" attribute="Normal Text" lineEndContext="#pop"><DetectSpaces/><DetectChar char=":" attribute="Normal Text" context="#pop"/><RegExpr String="\S.*" attribute="Error" context="#pop!ErrorBadBlock"/></context><context name="SmkWaitColonAfterDirective" attribute="Normal Text" lineEndContext="#pop"><DetectSpaces/><DetectChar char=":" attribute="Normal Text" context="#pop!SmkDirectiveBody"/><RegExpr String="\S.*" attribute="Error" context="#pop!ErrorBadBlock"/></context><context name="SmkWaitNameThenColon" attribute="Normal Text" lineEndContext="#pop"><DetectSpaces/><DetectIdentifier attribute="Rule Name"/><DetectChar char=":" attribute="Normal Text" context="#pop!ErrorBadBlock"/><RegExpr String="\S.*" attribute="Error" context="#pop!ErrorBadBlock"/></context><context name="StringVariantsStart" attribute="String"><StringDetect String='f"""' attribute="String" context="FTripleDoubleQuoteString"/><StringDetect String="f'''" attribute="String" context="FTripleSingleQuoteString"/><StringDetect String='f"' attribute="String" context="FDoubleQuoteString"/><StringDetect String="f'" attribute="String" context="FSingleQuoteString"/><StringDetect String='r"""' attribute="String" context="RTripleDoubleQuoteString"/><StringDetect String="r'''" attribute="String" context="RTripleSingleQuoteString"/><StringDetect String='r"' attribute="String" context="RDoubleQuoteString"/><StringDetect String="r'" attribute="String" context="RSingleQuoteString"/><StringDetect String='"""' attribute="String" context="TripleDoubleQuoteString"/><StringDetect String="'''" attribute="String" context="TripleSingleQuoteString"/><DetectChar char='"' attribute="String" context="DoubleQuoteString"/><DetectChar char="'" attribute="String" context="SingleQuoteString"/></context><context name="TripleDoubleQuoteString" attribute="String"><IncludeRules context="StringEscapes"/><IncludeRules context="StringInterpolation"/><StringDetect String='"""' attribute="String" context="#pop"/></context><context name="TripleSingleQuoteString" attribute="String"><IncludeRules context="StringEscapes"/><IncludeRules context="StringInterpolation"/><StringDetect String="'''" attribute="String" context="#pop"/></context></contexts><itemDatas><itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="0"/><itemData name="Block Opener" defStyleNum="dsControlFlow" spellChecking="0"/><itemData name="RuleHeaderKeyword" defStyleNum="dsKeyword" spellChecking="0"/><itemData name="SmkDirective" defStyleNum="dsBuiltIn" spellChecking="0"/><itemData name="Python Keyword" defStyleNum="dsKeyword" spellChecking="0"/><itemData name="Constant" defStyleNum="dsConstant" spellChecking="0"/><itemData name="Rule Name" defStyleNum="dsFunction" spellChecking="0"/><itemData name="Variable" defStyleNum="dsVariable" spellChecking="0"/><itemData name="Number" defStyleNum="dsDecVal" spellChecking="0"/><itemData name="Comment" defStyleNum="dsComment"/><itemData name="String" defStyleNum="dsString"/><itemData name="EscapeCharacter" defStyleNum="dsChar" spellChecking="0"/><itemData name="SmkWildcard" defStyleNum="dsPreprocessor"/><itemData name="SmkPlaceholder" defStyleNum="dsExtension"/><itemData name="FStringDelimiter" defStyleNum="dsSpecialChar"/><itemData name="FStringExpr" defStyleNum="dsExtension"/><itemData name="Escape" defStyleNum="dsSpecialChar"/><itemData name="Python Function" defStyleNum="dsFunction" spellChecking="0"/><itemData name="Operator" defStyleNum="dsOperator" spellChecking="0"/><itemData name="Error" defStyleNum="dsError" spellChecking="0"/><itemData name="Documentation" defStyleNum="dsDocumentation"/></itemDatas></highlighting><general><folding indentationsensitive="1"/><comments><comment name="singleLine" start="#" position="afterwhitespace"/></comments><keywords casesensitive="1" additionalDeliminator="#'"/></general></language>