changeset 11:fa520092c603 draft

Uploaded
author grau
date Thu, 07 Nov 2013 16:59:25 -0500
parents 247f7edbe7f8
children c70abbb0b001
files DimontDataExtractor.xml DimontPredictorWeb.jar DimontPredictorWeb.xml DimontWeb.xml extract_data_single_galaxy.pl test-data/.DS_Store test-data/predictor_test.xml
diffstat 7 files changed, 404 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/DimontDataExtractor.xml	Thu Nov 07 15:17:42 2013 -0500
+++ b/DimontDataExtractor.xml	Thu Nov 07 16:59:25 2013 -0500
@@ -1,21 +1,21 @@
-<tool id="DimontDataExtractor" name="Dimont Data Extractor" version="0.1" force_history_refresh="true">
+<tool id="DimontDataExtractor" name="Dimont Data Extractor" version="0.1">
 <description>Extracts genomic regions specified in a BED-like file format in the annotated FastA format as required by Dimont</description>
-<command interpreter="perl">extract_data_single_galaxy.pl $genomefa $regions $chromcol $startcol $seccol $seccoord $width $statcol extracted.fa</command>
+<command interpreter="perl">extract_data_single_galaxy.pl $genomefa $regions $chromcol $startcol $seccol $seccoord $width $statcol $extracted</command>
 <inputs>
 	<param type="data" format="bed,gtf,txt,tabular" name="regions" label="Genomic regions" value="" optional="false" help="The genomic regions to be extracted in a BED-like file format, e.g., BED, GTF, narrowPeak." />
 	<param type="data" format="fasta" name="genomefa" label="Genome sequence" value="" optional="false" help="The input genome to which the genomic regions refer." />
-	<param type="integer" name="chromcol" label="Chromosome column" value="1" optional="false" help="The column of the regions file, which contains the chromosome information." />
-	<param type="integer" name="startcol" label="Start column" value="2" optional="false" help="The column of the Regions file containing the start position of the genomic region." />
+	<param type="data_column" data_ref="regions" force_select="true" name="chromcol" label="Chromosome column" value="1" optional="false" help="The column of the regions file, which contains the chromosome information." />
+	<param type="data_column" data_ref="regions" force_select="true" name="startcol" label="Start column" value="2" optional="false" help="The column of the Regions file containing the start position of the genomic region." />
 	<param type="select" name="seccol" label="Meaning of second coordinate" optional="false" help="The meaning of the second genomic coordinate. This may either be the position of the peak summit relative to the position in Start, or the end position of the peak.">
 		<option value="end">End of peak (in global coordinates)</option>
 		<option value="center">Center of peak (relative to start)</option>
 	</param>
-	<param type="integer" name="seccoord" label="Second coordinate" value="3" optional="false" help="The second genomic coordinate with meaning specified by parameter &quot;Meaning of second coordinate&quot;" />
-	<param type="integer" name="statcol" label="Statistics column" value="7" optional="false" help="The column containing the peak statistics information (or another measure of peak confidence)." />
+	<param type="data_column" data_ref="regions" force_select="true" name="seccoord" label="Second coordinate" value="3" optional="false" help="The second genomic coordinate with meaning specified by parameter &quot;Meaning of second coordinate&quot;" />
+	<param type="data_column" data_ref="regions" force_select="true" name="statcol" label="Statistics column" value="7" optional="false" help="The column containing the peak statistics information (or another measure of peak confidence)." />
 	<param type="integer" name="width" label="Width" value="1000" optional="false" help="The width of the genomic region to be extracted. Recommended values: 1000 for ChIP-seq and 100 for ChIP-exo." />
 </inputs>
 <outputs>
-	<data format="fasta" name="extracted.fa">
+	<data format="fasta" name="extracted">
 	</data>
 </outputs>
 <tests>
@@ -28,7 +28,7 @@
 		<param name="seccoord" value="3" />
 		<param name="statcol" value="7" />
 		<param name="width" value="200" />
-		<output name="extracted.fa" file="mini_extracted.fa" /> 
+		<output name="extracted" file="mini_extracted.fa" /> 
 	</test>
 	<test>
 		<param name="regions" value="mini2.bed" />
@@ -39,7 +39,7 @@
 		<param name="seccoord" value="3" />
 		<param name="statcol" value="7" />
 		<param name="width" value="200" />
-		<output name="extracted.fa" file="mini2_extracted.fa" /> 
+		<output name="extracted" file="mini2_extracted.fa" /> 
 	</test>
 </tests>
 <help>
Binary file DimontPredictorWeb.jar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DimontPredictorWeb.xml	Thu Nov 07 16:59:25 2013 -0500
@@ -0,0 +1,107 @@
+<tool id="DimontPredictor" name="DimontPredictor" version="0.1" force_history_refresh="true">
+<description>DimontPredictor for predicting binding sites using a Dimont model</description>
+<command>java -Xms256M -Xmx2G -jar \$JAR_PATH/DimontPredictorWeb.jar --run $script_file $summary $summary.id $__new_file_path__ $summary.extra_files_path</command>
+<inputs>
+<param type="text" size="40" name="DimontPredictor_jobname" label="Job name" value="" optional="true" help="Please enter a name for your job that should be used in the history (optional)">
+</param>
+<param type="data" format="xml" name="DimontPredictor_ps_Dimont" label="&lt;hr /&gt;Dimont" help="The trained Dimont classifier, i.e. the &quot;Dimont&quot; output of a previous Dimont run." value="" optional="false">
+</param>
+
+<param type="data" format="fasta" name="DimontPredictor_ps_Input_sequences" label="&lt;hr /&gt;Input sequences" help="The input sequences for de-novo motif discovery (can be uploaded using &quot;GetData&quot; -&gt; &quot;Upload File&quot;), annotated FastA format. The required format is described in the help section." value="" optional="false">
+</param>
+
+<param type="text" size="40" name="DimontPredictor_ps_Value_tag" label="Value tag" help="The tag for the value information in the FastA-annotation of the input file" value="" optional="false">
+</param>
+
+<param type="text" size="40" name="DimontPredictor_ps_Weighting_factor" label="Weighting factor" help="The value for weighting the data; either a value between 0 and 1, or a description relative to the standard deviation (e.g. +4sd)" value="0.2" optional="false">
+</param>
+
+<param type="float" name="DimontPredictor_ps_p_value" label="&lt;hr /&gt;p-value" help="The maximum p-value allowed for predicted binding sites" value="0.0010" optional="false">
+<validator type="in_range" min="0.0" max="1.0" message="Value is not in the specified range [0.0, 1.0]."/></param>
+
+</inputs>
+<requirements>
+	<requirement type="set_environment">JAR_PATH</requirement>
+	<requirement type="binary" version=">=1.6">java</requirement>
+</requirements>
+<configfiles>
+<configfile name="script_file">
+&lt;DimontPredictor_ps_Dimont&gt;
+&lt;value&gt;
+${DimontPredictor_ps_Dimont}&lt;/value&gt;
+&lt;extension&gt;
+${DimontPredictor_ps_Dimont.ext}&lt;/extension&gt;
+&lt;/DimontPredictor_ps_Dimont&gt;
+
+&lt;DimontPredictor_ps_Input_sequences&gt;
+&lt;value&gt;
+${DimontPredictor_ps_Input_sequences}&lt;/value&gt;
+&lt;extension&gt;
+${DimontPredictor_ps_Input_sequences.ext}&lt;/extension&gt;
+&lt;/DimontPredictor_ps_Input_sequences&gt;
+
+&lt;DimontPredictor_ps_Value_tag&gt;
+${DimontPredictor_ps_Value_tag}&lt;/DimontPredictor_ps_Value_tag&gt;
+
+&lt;DimontPredictor_ps_Weighting_factor&gt;
+${DimontPredictor_ps_Weighting_factor}&lt;/DimontPredictor_ps_Weighting_factor&gt;
+
+&lt;DimontPredictor_ps_p_value&gt;
+${DimontPredictor_ps_p_value}&lt;/DimontPredictor_ps_p_value&gt;
+
+</configfile>
+</configfiles>
+<outputs>
+<data format="html" name="summary" label="#if str($DimontPredictor_jobname) == '' then $tool.name + ' on ' + $on_string else $DimontPredictor_jobname#">
+</data>
+</outputs>
+<tests>
+ <test>
+ 	<param name="DimontPredictor_jobname" value="Test" />
+	<param name="DimontPredictor_ps_Dimont" value="predictor_test.xml" />
+	<param name="DimontPredictor_ps_Input_sequences" value="dimont_test.fasta" />
+	<param name="DimontPredictor_ps_Value_tag" label="Value tag" value="maxT" />
+	<param name="DimontPredictor_ps_Weighting_factor" value="0.2" />
+	<param name="DimontPredictor_ps_p_value" value="0.0010" />
+ </test>
+</tests>
+<help>
+**DimontPredictor** allows for predicting binding sites in new data using a previously trained Dimont model. For training a Dimont model see tool "Dimont".
+
+This tool may be useful if you, for instance, want to predict binding sites of a previously discovered motifs in other data sets, or if you want to try different p-values for filtering predictions.
+
+Input sequences must be supplied in an annotated FastA format as a file uploaded by the "Upload File" task in section "Get Data" of Galaxy or generated using the "Dimont Data Extractor" tool.
+In the annotation of each sequence, you need to provide a value that reflects the confidence that this sequence is bound by the factor of interest.
+Such confidences may be peak statistics (e.g., number of fragments under a peak) for ChIP data or signal intensities for PBM data.
+
+For instance, an annotated FastA file for ChIP-exo data could look like::
+	
+	> signal: 515
+	ggccatgtgtatttttttaaatttccac...
+	> signal: 199
+	GGTCCCCTGGGAGGATGGGGACGTGCTG...
+	...
+
+where the confidence for the first two sequences amounts to 515 and 199, respectively.
+The FastA comment may contain additional annotations of the format ``key1 : value1; key2: value2;...``.
+We also provide an example_ input file.
+
+Accordingly, you would need to set the parameter "Value tag" to ``signal`` for this input file.
+
+The parameter "Weighting factor" defines the proportion of sequences that you expect to be bound by the targeted factor with high confidence. For ChIP data, the default value of ``0.2`` typically works well. 
+For PBM data, containing a large number of unspecific probes, this parameter should be set to a lower value, e.g. ``0.01``.
+
+The parameter "p-value" defines a threshold on the p-values of predicted binding sites, and only binding sites with a lower p-value are reported by DimontPredictor.
+The Dimont tool uses a p-value threshold of ``1E-3``, which is also the default value of DimontPredictor.
+
+You can also install this web-application within your local Galaxy server. Instructions can be found at the Dimont_ page of Jstacs. 
+There you can also download a command line version of DimontPredictor.
+
+If you experience problems using DimontPredictor, please contact_ us.
+
+.. _example: http://www.jstacs.de/downloads/dimont-example.fa
+.. _Dimont: http://jstacs.de/index.php/Dimont
+.. _contact: mailto:grau@informatik.uni-halle.de
+</help>
+</tool>
+
--- a/DimontWeb.xml	Thu Nov 07 15:17:42 2013 -0500
+++ b/DimontWeb.xml	Thu Nov 07 16:59:25 2013 -0500
@@ -1,5 +1,5 @@
 <tool id="Dimont" name="Dimont" version="0.1" force_history_refresh="true">
-<description>Dimont, a universal tool for de-novo motif discovery (beta).</description>
+<description>Dimont, a universal tool for de-novo motif discovery.</description>
 <command>java -Xms256M -Xmx2G -jar \$JAR_PATH/DimontWeb.jar --run $script_file $summary $summary.id $__new_file_path__ $summary.extra_files_path</command>
 <inputs>
 <param type="text" size="40" name="Dimont_jobname" label="Job name" value="" optional="true" help="Please enter a name for your job that should be used in the history (optional)">
@@ -107,7 +107,7 @@
 <help>
 **Dimont** is a universal tool for de-novo motif discovery. Dimont has successfully been applied to ChIP-seq, ChIP-exo and protein-binding microarray (PBM) data.
 
-Input sequences must be supplied in an annotated FastA format as a file uploaded by the "Upload File" task in section "Get Data" of Galaxy.
+Input sequences must be supplied in an annotated FastA format as a file uploaded by the "Upload File" task in section "Get Data" of Galaxy or generated using the "Dimont Data Extractor" tool.
 In the annotation of each sequence, you need to provide a value that reflects the confidence that this sequence is bound by the factor of interest.
 Such confidences may be peak statistics (e.g., number of fragments under a peak) for ChIP data or signal intensities for PBM data. In addition, you need to provide an anchor position within the sequence. 
 In case of ChIP data, this anchor position could for instance be the peak summit.
--- a/extract_data_single_galaxy.pl	Thu Nov 07 15:17:42 2013 -0500
+++ b/extract_data_single_galaxy.pl	Thu Nov 07 16:59:25 2013 -0500
@@ -80,7 +80,7 @@
 }
 
 close(IN);
-print "Read input file ".$bed."\n";
+#print "Read input file ".$bed."\n";
 
 
 if($sort){
Binary file test-data/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/predictor_test.xml	Thu Nov 07 16:59:25 2013 -0500
@@ -0,0 +1,285 @@
+<gendismix-classifier>
+<alphabetcontainer><className>de.jstacs.data.alphabets.DNAAlphabetContainer</className></alphabetcontainer><length><className>java.lang.Integer</className>0</length><classWeights><className>[D</className><length>2</length><pos val="0">-2.034267647272289</pos><pos val="1">-0.2525781403291907</pos></classWeights><params><className>de.jstacs.classifiers.differentiableSequenceScoreBased.gendismix.GenDisMixClassifierParameterSet</className><sequenceScoringParameterSet>
+<superParameters>
+<instanceParameterSet>
+<superParameterSet>
+<parameterSet>
+<set>
+<numberOfParameters><className>java.lang.Integer</className>8</numberOfParameters><parameter><className>de.jstacs.parameters.SelectionParameter</className><collectionParameter>
+<name><className>java.lang.String</className>algorithm</name><comment><className>java.lang.String</className>the algorithm that should be used for numerical optimization</comment><datatype><className>de.jstacs.DataType</className><name>BYTE</name></datatype><required><className>java.lang.Boolean</className>true</required><userSelected><className>java.lang.Boolean</className>true</userSelected><errorMessage>null</errorMessage><rangeable><className>java.lang.Boolean</className>true</rangeable><collection><className>de.jstacs.parameters.SimpleParameterSet</className><parameterSet>
+<set>
+<numberOfParameters><className>java.lang.Integer</className>13</numberOfParameters><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>steepest descent</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>BYTE</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.Byte</className>16</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>conjugate gradients (F., R.)</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>BYTE</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.Byte</className>17</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>conjugate gradients (P., R. positive)</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>BYTE</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.Byte</className>18</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>quasi newton (D., F., P.)</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>BYTE</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.Byte</className>19</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>quasi newton (B., F., G., S.)</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>BYTE</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.Byte</className>20</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>limited memory quasi newton (B., F., G., S.; n=3)</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>BYTE</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.Byte</className>3</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>limited memory quasi newton (B., F., G., S.; n=4)</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>BYTE</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.Byte</className>4</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>limited memory quasi newton (B., F., G., S.; n=5)</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>BYTE</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.Byte</className>5</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>limited memory quasi newton (B., F., G., S.; n=6)</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>BYTE</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.Byte</className>6</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>limited memory quasi newton (B., F., G., S.; n=7)</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>BYTE</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.Byte</className>7</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>limited memory quasi newton (B., F., G., S.; n=8)</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>BYTE</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.Byte</className>8</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>limited memory quasi newton (B., F., G., S.; n=9)</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>BYTE</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.Byte</className>9</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>limited memory quasi newton (B., F., G., S.; n=10)</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>BYTE</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.Byte</className>10</value></simpleParameter>
+</parameter></set>
+</parameterSet>
+</collection><selected><className>java.lang.Integer</className>2</selected><defaultSelected><className>java.lang.Integer</className>4</defaultSelected></collectionParameter>
+</parameter><parameter><className>de.jstacs.parameters.SelectionParameter</className><collectionParameter>
+<name><className>java.lang.String</className>termination condition</name><comment><className>java.lang.String</className>the terminantion condition for stopping the training algorithm</comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><required><className>java.lang.Boolean</className>true</required><userSelected><className>java.lang.Boolean</className>true</userSelected><errorMessage>null</errorMessage><rangeable><className>java.lang.Boolean</className>true</rangeable><collection><className>de.jstacs.parameters.SimpleParameterSet</className><parameterSet>
+<set>
+<numberOfParameters><className>java.lang.Integer</className>8</numberOfParameters><parameter><className>de.jstacs.parameters.ParameterSetContainer</className><parameterSetContainer>
+<name><className>java.lang.String</className>AbsoluteValueConditionParameterSet</name><comment><className>java.lang.String</className></comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><errorMessage>null</errorMessage><parameterClass><className>java.lang.Class</className><name>de.jstacs.algorithms.optimization.termination.AbsoluteValueCondition$AbsoluteValueConditionParameterSet</name></parameterClass></parameterSetContainer>
+</parameter><parameter><className>de.jstacs.parameters.ParameterSetContainer</className><parameterSetContainer>
+<name><className>java.lang.String</className>CombinedConditionParameterSet</name><comment><className>java.lang.String</className></comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><errorMessage>null</errorMessage><parameterClass><className>java.lang.Class</className><name>de.jstacs.algorithms.optimization.termination.CombinedCondition$CombinedConditionParameterSet</name></parameterClass></parameterSetContainer>
+</parameter><parameter><className>de.jstacs.parameters.ParameterSetContainer</className><parameterSetContainer>
+<name><className>java.lang.String</className>IterationConditionParameterSet</name><comment><className>java.lang.String</className></comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><errorMessage>null</errorMessage><parameterClass><className>java.lang.Class</className><name>de.jstacs.algorithms.optimization.termination.IterationCondition$IterationConditionParameterSet</name></parameterClass></parameterSetContainer>
+</parameter><parameter><className>de.jstacs.parameters.ParameterSetContainer</className><parameterSetContainer>
+<name><className>java.lang.String</className>MultipleIterationsConditionParameterSet</name><comment><className>java.lang.String</className></comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><errorMessage>null</errorMessage><parameterClass><className>java.lang.Class</className><name>de.jstacs.algorithms.optimization.termination.MultipleIterationsCondition$MultipleIterationsConditionParameterSet</name></parameterClass></parameterSetContainer>
+</parameter><parameter><className>de.jstacs.parameters.ParameterSetContainer</className><parameterSetContainer>
+<name><className>java.lang.String</className>SmallDifferenceOfFunctionEvaluationsConditionParameterSet</name><comment><className>java.lang.String</className></comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><errorMessage>null</errorMessage><parameters><className>de.jstacs.algorithms.optimization.termination.SmallDifferenceOfFunctionEvaluationsCondition$SmallDifferenceOfFunctionEvaluationsConditionParameterSet</className><instanceParameterSet>
+<superParameterSet>
+<parameterSet>
+<set>
+<numberOfParameters><className>java.lang.Integer</className>1</numberOfParameters><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>epsilon</name><comment><className>java.lang.String</className>the epsilon for the difference of function evaluations used for deciding whether to stop the algorithm or not</comment><datatype><className>de.jstacs.DataType</className><name>DOUBLE</name></datatype><required><className>java.lang.Boolean</className>true</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage>null</errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator><className>de.jstacs.parameters.validation.NumberValidator</className><NumberValidator>
+<className><className>java.lang.String</className>java.lang.Double</className><lowerBound><className>java.lang.String</className>0.0</lowerBound><upperBound><className>java.lang.String</className>1.7976931348623157E308</upperBound></NumberValidator>
+</validator><defaultValue><className>java.lang.Double</className>1.0E-6</defaultValue><value><className>java.lang.Double</className>1.0E-4</value></simpleParameter>
+</parameter></set>
+</parameterSet>
+</superParameterSet>
+<instanceClass><className>java.lang.Class</className><name>de.jstacs.algorithms.optimization.termination.SmallDifferenceOfFunctionEvaluationsCondition</name></instanceClass></instanceParameterSet>
+</parameters></parameterSetContainer>
+</parameter><parameter><className>de.jstacs.parameters.ParameterSetContainer</className><parameterSetContainer>
+<name><className>java.lang.String</className>SmallGradientConditonParameterSet</name><comment><className>java.lang.String</className></comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><errorMessage>null</errorMessage><parameterClass><className>java.lang.Class</className><name>de.jstacs.algorithms.optimization.termination.SmallGradientConditon$SmallGradientConditonParameterSet</name></parameterClass></parameterSetContainer>
+</parameter><parameter><className>de.jstacs.parameters.ParameterSetContainer</className><parameterSetContainer>
+<name><className>java.lang.String</className>SmallStepConditionParameterSet</name><comment><className>java.lang.String</className></comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><errorMessage>null</errorMessage><parameterClass><className>java.lang.Class</className><name>de.jstacs.algorithms.optimization.termination.SmallStepCondition$SmallStepConditionParameterSet</name></parameterClass></parameterSetContainer>
+</parameter><parameter><className>de.jstacs.parameters.ParameterSetContainer</className><parameterSetContainer>
+<name><className>java.lang.String</className>TimeConditionParameterSet</name><comment><className>java.lang.String</className></comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><errorMessage>null</errorMessage><parameterClass><className>java.lang.Class</className><name>de.jstacs.algorithms.optimization.termination.TimeCondition$TimeConditionParameterSet</name></parameterClass></parameterSetContainer>
+</parameter></set>
+</parameterSet>
+</collection><selected><className>java.lang.Integer</className>4</selected><defaultSelected><className>java.lang.Integer</className>4</defaultSelected></collectionParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>line epsilon</name><comment><className>java.lang.String</className>the threshold for stopping the line search in the numerical training</comment><datatype><className>de.jstacs.DataType</className><name>DOUBLE</name></datatype><required><className>java.lang.Boolean</className>true</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage>null</errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator><className>de.jstacs.parameters.validation.NumberValidator</className><NumberValidator>
+<className><className>java.lang.String</className>java.lang.Double</className><lowerBound><className>java.lang.String</className>0.0</lowerBound><upperBound><className>java.lang.String</className>1.7976931348623157E308</upperBound></NumberValidator>
+</validator><defaultValue><className>java.lang.Double</className>1.0E-9</defaultValue><value><className>java.lang.Double</className>1.0E-5</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>start distance</name><comment><className>java.lang.String</className>the start distance for the line search in the numerical training</comment><datatype><className>de.jstacs.DataType</className><name>DOUBLE</name></datatype><required><className>java.lang.Boolean</className>true</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage>null</errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator><className>de.jstacs.parameters.validation.NumberValidator</className><NumberValidator>
+<className><className>java.lang.String</className>java.lang.Double</className><lowerBound><className>java.lang.String</className>0.0</lowerBound><upperBound><className>java.lang.String</className>1.7976931348623157E308</upperBound></NumberValidator>
+</validator><defaultValue><className>java.lang.Double</className>1.0</defaultValue><value><className>java.lang.Double</className>1.0</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>free parameters</name><comment><className>java.lang.String</className>Indicates whether only the free parameters or all parameters should be used.</comment><datatype><className>de.jstacs.DataType</className><name>BOOLEAN</name></datatype><required><className>java.lang.Boolean</className>true</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue><className>java.lang.Boolean</className>false</defaultValue><value><className>java.lang.Boolean</className>false</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.EnumParameter</className><collectionParameter>
+<name><className>java.lang.String</className>KindOfParameter</name><comment><className>java.lang.String</className>Indicates whether special plugIn parameters or the zero vector should be used as start parameters. For non-concave problems it is highly recommended to use plugIn parameters.</comment><datatype><className>de.jstacs.DataType</className><name>STRING</name></datatype><required><className>java.lang.Boolean</className>true</required><userSelected><className>java.lang.Boolean</className>true</userSelected><errorMessage>null</errorMessage><rangeable><className>java.lang.Boolean</className>true</rangeable><collection><className>de.jstacs.parameters.SimpleParameterSet</className><parameterSet>
+<set>
+<numberOfParameters><className>java.lang.Integer</className>3</numberOfParameters><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>ZEROS</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>STRING</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>false</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.String</className>ZEROS</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>LAST</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>STRING</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>false</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.String</className>LAST</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>PLUGIN</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>STRING</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>false</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.String</className>PLUGIN</value></simpleParameter>
+</parameter></set>
+</parameterSet>
+</collection><selected><className>java.lang.Integer</className>2</selected><defaultSelected><className>java.lang.Integer</className>2</defaultSelected><selectedEnum><className>java.lang.String</className>PLUGIN</selectedEnum><defaultSelectedEnum><className>java.lang.String</className>PLUGIN</defaultSelectedEnum><enumName><className>java.lang.Class</className><name>de.jstacs.classifiers.differentiableSequenceScoreBased.OptimizableFunction$KindOfParameter</name></enumName></collectionParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>Normalize</name><comment><className>java.lang.String</className>If true the conditional likelihood will be normalized to the number of data sets.</comment><datatype><className>de.jstacs.DataType</className><name>BOOLEAN</name></datatype><required><className>java.lang.Boolean</className>true</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue><className>java.lang.Boolean</className>true</defaultValue><value><className>java.lang.Boolean</className>true</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>Threads</name><comment><className>java.lang.String</className>The number of threads that is used during an optimization.</comment><datatype><className>de.jstacs.DataType</className><name>INT</name></datatype><required><className>java.lang.Boolean</className>true</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage>null</errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator><className>de.jstacs.parameters.validation.NumberValidator</className><NumberValidator>
+<className><className>java.lang.String</className>java.lang.Integer</className><lowerBound><className>java.lang.String</className>1</lowerBound><upperBound><className>java.lang.String</className>128</upperBound></NumberValidator>
+</validator><defaultValue><className>java.lang.Integer</className>1</defaultValue><value><className>java.lang.Integer</className>1</value></simpleParameter>
+</parameter></set>
+</parameterSet>
+</superParameterSet>
+<instanceClass><className>java.lang.Class</className><name>de.jstacs.classifiers.differentiableSequenceScoreBased.gendismix.GenDisMixClassifier</name></instanceClass></instanceParameterSet>
+</superParameters>
+<variableLength><className>java.lang.Boolean</className>true</variableLength><alphabet><className>de.jstacs.parameters.SelectionParameter</className><collectionParameter>
+<name><className>java.lang.String</className>Alphabet</name><comment><className>java.lang.String</className>The alphabet the model works on</comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><required><className>java.lang.Boolean</className>true</required><userSelected><className>java.lang.Boolean</className>true</userSelected><errorMessage>null</errorMessage><rangeable><className>java.lang.Boolean</className>true</rangeable><collection><className>de.jstacs.parameters.SimpleParameterSet</className><parameterSet>
+<set>
+<numberOfParameters><className>java.lang.Integer</className>2</numberOfParameters><parameter><className>de.jstacs.parameters.ParameterSetContainer</className><parameterSetContainer>
+<name><className>java.lang.String</className>AlphabetContainerParameterSet</name><comment><className>java.lang.String</className></comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><errorMessage>null</errorMessage><parameters><className>de.jstacs.data.AlphabetContainerParameterSet</className><alphabetContainerParameterSet>
+<superParameters>
+<instanceParameterSet>
+<superParameterSet>
+<parameterSet>
+<set>
+<numberOfParameters><className>java.lang.Integer</className>1</numberOfParameters><parameter><className>de.jstacs.parameters.SelectionParameter</className><collectionParameter>
+<name><className>java.lang.String</className>Alphabet</name><comment><className>java.lang.String</className>Select a discrete alphabet</comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><required><className>java.lang.Boolean</className>true</required><userSelected><className>java.lang.Boolean</className>false</userSelected><errorMessage>null</errorMessage><rangeable><className>java.lang.Boolean</className>true</rangeable><collection><className>de.jstacs.parameters.SimpleParameterSet</className><parameterSet>
+<set>
+<numberOfParameters><className>java.lang.Integer</className>4</numberOfParameters><parameter><className>de.jstacs.parameters.ParameterSetContainer</className><parameterSetContainer>
+<name><className>java.lang.String</className>DNAAlphabetParameterSet</name><comment><className>java.lang.String</className></comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><errorMessage>null</errorMessage><parameters><className>de.jstacs.data.alphabets.DNAAlphabet$DNAAlphabetParameterSet</className></parameters></parameterSetContainer>
+</parameter><parameter><className>de.jstacs.parameters.ParameterSetContainer</className><parameterSetContainer>
+<name><className>java.lang.String</className>ProteinAlphabetParameterSet</name><comment><className>java.lang.String</className></comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><errorMessage>null</errorMessage><parameters><className>de.jstacs.data.alphabets.ProteinAlphabet$ProteinAlphabetParameterSet</className></parameters></parameterSetContainer>
+</parameter><parameter><className>de.jstacs.parameters.ParameterSetContainer</className><parameterSetContainer>
+<name><className>java.lang.String</className>GenericComplementableDiscreteAlphabetParameterSet</name><comment><className>java.lang.String</className></comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><errorMessage>null</errorMessage><parameters><className>de.jstacs.data.alphabets.GenericComplementableDiscreteAlphabet$GenericComplementableDiscreteAlphabetParameterSet</className><instanceParameterSet>
+<superParameterSet>
+<parameterSet>
+<set>
+<numberOfParameters><className>java.lang.Integer</className>1</numberOfParameters><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>Values of the index for computings the reverse complement</name><comment><className>java.lang.String</className></comment><datatype><className>de.jstacs.DataType</className><name>STRING</name></datatype><required><className>java.lang.Boolean</className>true</required><isSet><className>java.lang.Boolean</className>false</isSet><errorMessage>null</errorMessage><isRangeable><className>java.lang.Boolean</className>false</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value>null</value></simpleParameter>
+</parameter></set>
+</parameterSet>
+</superParameterSet>
+<instanceClass><className>java.lang.Class</className><name>de.jstacs.data.alphabets.GenericComplementableDiscreteAlphabet</name></instanceClass></instanceParameterSet>
+</parameters></parameterSetContainer>
+</parameter><parameter><className>de.jstacs.parameters.ParameterSetContainer</className><parameterSetContainer>
+<name><className>java.lang.String</className>DiscreteAlphabetParameterSet</name><comment><className>java.lang.String</className></comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><errorMessage>null</errorMessage><parameters><className>de.jstacs.data.alphabets.DiscreteAlphabet$DiscreteAlphabetParameterSet</className><instanceParameterSet>
+<superParameterSet>
+<parameterSet>
+<set>
+<numberOfParameters><className>java.lang.Integer</className>2</numberOfParameters><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>Values of the alphabet</name><comment><className>java.lang.String</className>The possible values of the discrete alphabet.If the alphabet consists of single characters, e.g. A, C, G, and T, the values may be set as a single string, e.g. &amp;quot;ACGT&amp;quot;.If the alphabet consists of multi-character symbols, e.g. Gly, Asp, Ser,the symbols must be separated by spaces.</comment><datatype><className>de.jstacs.DataType</className><name>STRING</name></datatype><required><className>java.lang.Boolean</className>true</required><isSet><className>java.lang.Boolean</className>false</isSet><errorMessage>null</errorMessage><isRangeable><className>java.lang.Boolean</className>false</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value>null</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SelectionParameter</className><collectionParameter>
+<name><className>java.lang.String</className>Case insensitive</name><comment><className>java.lang.String</className>Use the alphabet case insensitive</comment><datatype><className>de.jstacs.DataType</className><name>BOOLEAN</name></datatype><required><className>java.lang.Boolean</className>true</required><userSelected><className>java.lang.Boolean</className>false</userSelected><errorMessage>null</errorMessage><rangeable><className>java.lang.Boolean</className>true</rangeable><collection><className>de.jstacs.parameters.SimpleParameterSet</className><parameterSet>
+<set>
+<numberOfParameters><className>java.lang.Integer</className>2</numberOfParameters><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>Case insensitive</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>BOOLEAN</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.Boolean</className>true</value></simpleParameter>
+</parameter><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>Case sensitive</name><comment>null</comment><datatype><className>de.jstacs.DataType</className><name>BOOLEAN</name></datatype><required><className>java.lang.Boolean</className>false</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.Boolean</className>false</value></simpleParameter>
+</parameter></set>
+</parameterSet>
+</collection><selected><className>java.lang.Integer</className>0</selected><defaultSelected><className>java.lang.Integer</className>0</defaultSelected></collectionParameter>
+</parameter></set>
+</parameterSet>
+</superParameterSet>
+<instanceClass><className>java.lang.Class</className><name>de.jstacs.data.alphabets.DiscreteAlphabet</name></instanceClass></instanceParameterSet>
+</parameters></parameterSetContainer>
+</parameter></set>
+</parameterSet>
+</collection><selected><className>java.lang.Integer</className>0</selected><defaultSelected><className>java.lang.Integer</className>0</defaultSelected></collectionParameter>
+</parameter></set>
+</parameterSet>
+</superParameterSet>
+<instanceClass><className>java.lang.Class</className><name>de.jstacs.data.AlphabetContainer</name></instanceClass></instanceParameterSet>
+</superParameters>
+<type><className>de.jstacs.data.AlphabetContainer$AlphabetContainerType</className><name>DISCRETE</name></type><simple><className>java.lang.Boolean</className>true</simple></alphabetContainerParameterSet>
+</parameters></parameterSetContainer>
+</parameter><parameter><className>de.jstacs.parameters.ParameterSetContainer</className><parameterSetContainer>
+<name><className>java.lang.String</className>DNAAlphabetContainerParameterSet</name><comment><className>java.lang.String</className></comment><datatype><className>de.jstacs.DataType</className><name>PARAMETERSET</name></datatype><errorMessage>null</errorMessage><parameters><className>de.jstacs.data.alphabets.DNAAlphabetContainer$DNAAlphabetContainerParameterSet</className></parameters></parameterSetContainer>
+</parameter></set>
+</parameterSet>
+</collection><selected><className>java.lang.Integer</className>1</selected><defaultSelected><className>java.lang.Integer</className>0</defaultSelected></collectionParameter>
+</alphabet><length><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>Length</name><comment><className>java.lang.String</className>The length of sequences the model can work on</comment><datatype><className>de.jstacs.DataType</className><name>INT</name></datatype><required><className>java.lang.Boolean</className>true</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage>null</errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator><className>de.jstacs.parameters.validation.NumberValidator</className><NumberValidator>
+<className><className>java.lang.String</className>java.lang.Integer</className><lowerBound><className>java.lang.String</className>0</lowerBound><upperBound><className>java.lang.String</className>0</upperBound></NumberValidator>
+</validator><defaultValue><className>java.lang.Integer</className>0</defaultValue><value><className>java.lang.Integer</className>0</value></simpleParameter>
+</length></sequenceScoringParameterSet>
+</params><hasBeenOptimized><className>java.lang.Boolean</className>false</hasBeenOptimized><lastScore><className>java.lang.Double</className>-0.29019836129972626</lastScore><score><className>[Lde.jstacs.sequenceScores.statisticalModels.differentiable.DifferentiableStatisticalModel;</className><length>2</length><pos val="0"><className>projects.dimont.ThresholdedStrandChIPper</className><ThresholdedStrandChIPper>
+<length><className>java.lang.Integer</className>0</length><starts><className>java.lang.Integer</className>1</starts><freeParams><className>java.lang.Boolean</className>false</freeParams><function><className>[Lde.jstacs.sequenceScores.statisticalModels.differentiable.DifferentiableStatisticalModel;</className><length>1</length><pos val="0"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.MarkovModelDiffSM</className><MarkovModelDiffSM>
+<bayesianNetworkSF>
+<alphabets><className>de.jstacs.data.alphabets.DNAAlphabetContainer</className></alphabets><length><className>java.lang.Integer</className>7</length><trees><className>[Lde.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameterTree;</className><length>7</length><pos val="0"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameterTree</className><parameterTree>
+<pos><className>java.lang.Integer</className>0</pos><contextPoss><className>[I</className><length>0</length></contextPoss><root><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameterTree$TreeElement</className><treeElement>
+<contNum><className>java.lang.Integer</className>0</contNum><contextPos><className>java.lang.Integer</className>-1</contextPos><children>null</children><pars><className>[Lde.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter;</className><length>4</length><pos val="0"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-1.8882500938776798</value><symbol><className>java.lang.Byte</className>0</symbol><index><className>java.lang.Integer</className>0</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>0</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="1"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-2.3929793553147585</value><symbol><className>java.lang.Byte</className>1</symbol><index><className>java.lang.Integer</className>1</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>0</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="2"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-0.27411896862354784</value><symbol><className>java.lang.Byte</className>2</symbol><index><className>java.lang.Integer</className>2</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>0</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="3"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-3.074727770552047</value><symbol><className>java.lang.Byte</className>3</symbol><index><className>java.lang.Integer</className>3</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>0</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos></pars></treeElement>
+</root><firstParent><className>java.lang.Integer</className>-1</firstParent><firstChildren><className>[I</className><length>0</length></firstChildren></parameterTree>
+</pos><pos val="1"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameterTree</className><parameterTree>
+<pos><className>java.lang.Integer</className>1</pos><contextPoss><className>[I</className><length>0</length></contextPoss><root><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameterTree$TreeElement</className><treeElement>
+<contNum><className>java.lang.Integer</className>0</contNum><contextPos><className>java.lang.Integer</className>-1</contextPos><children>null</children><pars><className>[Lde.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter;</className><length>4</length><pos val="0"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-3.143173615307912</value><symbol><className>java.lang.Byte</className>0</symbol><index><className>java.lang.Integer</className>4</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>1</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="1"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-3.0349593264798793</value><symbol><className>java.lang.Byte</className>1</symbol><index><className>java.lang.Integer</className>5</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>1</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="2"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-0.07796546434673289</value><symbol><className>java.lang.Byte</className>2</symbol><index><className>java.lang.Integer</className>6</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>1</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="3"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-3.0037566140099474</value><symbol><className>java.lang.Byte</className>3</symbol><index><className>java.lang.Integer</className>7</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>1</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos></pars></treeElement>
+</root><firstParent><className>java.lang.Integer</className>-1</firstParent><firstChildren><className>[I</className><length>0</length></firstChildren></parameterTree>
+</pos><pos val="2"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameterTree</className><parameterTree>
+<pos><className>java.lang.Integer</className>2</pos><contextPoss><className>[I</className><length>0</length></contextPoss><root><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameterTree$TreeElement</className><treeElement>
+<contNum><className>java.lang.Integer</className>0</contNum><contextPos><className>java.lang.Integer</className>-1</contextPos><children>null</children><pars><className>[Lde.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter;</className><length>4</length><pos val="0"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-0.31188945615131514</value><symbol><className>java.lang.Byte</className>0</symbol><index><className>java.lang.Integer</className>8</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>2</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="1"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-1.6066576296875537</value><symbol><className>java.lang.Byte</className>1</symbol><index><className>java.lang.Integer</className>9</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>2</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="2"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-2.730887292275338</value><symbol><className>java.lang.Byte</className>2</symbol><index><className>java.lang.Integer</className>10</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>2</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="3"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-2.6732170295356927</value><symbol><className>java.lang.Byte</className>3</symbol><index><className>java.lang.Integer</className>11</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>2</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos></pars></treeElement>
+</root><firstParent><className>java.lang.Integer</className>-1</firstParent><firstChildren><className>[I</className><length>0</length></firstChildren></parameterTree>
+</pos><pos val="3"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameterTree</className><parameterTree>
+<pos><className>java.lang.Integer</className>3</pos><contextPoss><className>[I</className><length>0</length></contextPoss><root><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameterTree$TreeElement</className><treeElement>
+<contNum><className>java.lang.Integer</className>0</contNum><contextPos><className>java.lang.Integer</className>-1</contextPos><children>null</children><pars><className>[Lde.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter;</className><length>4</length><pos val="0"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-3.001513214238137</value><symbol><className>java.lang.Byte</className>0</symbol><index><className>java.lang.Integer</className>12</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>3</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="1"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-2.085566919294928</value><symbol><className>java.lang.Byte</className>1</symbol><index><className>java.lang.Integer</className>13</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>3</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="2"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-2.9231013926680576</value><symbol><className>java.lang.Byte</className>2</symbol><index><className>java.lang.Integer</className>14</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>3</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="3"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-0.21048803951371753</value><symbol><className>java.lang.Byte</className>3</symbol><index><className>java.lang.Integer</className>15</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>3</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos></pars></treeElement>
+</root><firstParent><className>java.lang.Integer</className>-1</firstParent><firstChildren><className>[I</className><length>0</length></firstChildren></parameterTree>
+</pos><pos val="4"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameterTree</className><parameterTree>
+<pos><className>java.lang.Integer</className>4</pos><contextPoss><className>[I</className><length>0</length></contextPoss><root><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameterTree$TreeElement</className><treeElement>
+<contNum><className>java.lang.Integer</className>0</contNum><contextPos><className>java.lang.Integer</className>-1</contextPos><children>null</children><pars><className>[Lde.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter;</className><length>4</length><pos val="0"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-2.8821327963137757</value><symbol><className>java.lang.Byte</className>0</symbol><index><className>java.lang.Integer</className>16</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>4</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="1"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-2.0159864932010403</value><symbol><className>java.lang.Byte</className>1</symbol><index><className>java.lang.Integer</className>17</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>4</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="2"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-3.198141984146207</value><symbol><className>java.lang.Byte</className>2</symbol><index><className>java.lang.Integer</className>18</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>4</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="3"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-0.22982042448197193</value><symbol><className>java.lang.Byte</className>3</symbol><index><className>java.lang.Integer</className>19</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>4</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos></pars></treeElement>
+</root><firstParent><className>java.lang.Integer</className>-1</firstParent><firstChildren><className>[I</className><length>0</length></firstChildren></parameterTree>
+</pos><pos val="5"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameterTree</className><parameterTree>
+<pos><className>java.lang.Integer</className>5</pos><contextPoss><className>[I</className><length>0</length></contextPoss><root><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameterTree$TreeElement</className><treeElement>
+<contNum><className>java.lang.Integer</className>0</contNum><contextPos><className>java.lang.Integer</className>-1</contextPos><children>null</children><pars><className>[Lde.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter;</className><length>4</length><pos val="0"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-0.34246698237242884</value><symbol><className>java.lang.Byte</className>0</symbol><index><className>java.lang.Integer</className>20</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>5</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="1"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-2.7005991646867735</value><symbol><className>java.lang.Byte</className>1</symbol><index><className>java.lang.Integer</className>21</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>5</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="2"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-2.8704352256363097</value><symbol><className>java.lang.Byte</className>2</symbol><index><className>java.lang.Integer</className>22</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>5</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="3"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-1.8031374642502886</value><symbol><className>java.lang.Byte</className>3</symbol><index><className>java.lang.Integer</className>23</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>5</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos></pars></treeElement>
+</root><firstParent><className>java.lang.Integer</className>-1</firstParent><firstChildren><className>[I</className><length>0</length></firstChildren></parameterTree>
+</pos><pos val="6"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameterTree</className><parameterTree>
+<pos><className>java.lang.Integer</className>6</pos><contextPoss><className>[I</className><length>0</length></contextPoss><root><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameterTree$TreeElement</className><treeElement>
+<contNum><className>java.lang.Integer</className>0</contNum><contextPos><className>java.lang.Integer</className>-1</contextPos><children>null</children><pars><className>[Lde.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter;</className><length>4</length><pos val="0"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-1.1813946371662982</value><symbol><className>java.lang.Byte</className>0</symbol><index><className>java.lang.Integer</className>24</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>6</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="1"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-2.5623116795403806</value><symbol><className>java.lang.Byte</className>1</symbol><index><className>java.lang.Integer</className>25</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>6</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="2"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-0.8967765906261282</value><symbol><className>java.lang.Byte</className>2</symbol><index><className>java.lang.Integer</className>26</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>6</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos><pos val="3"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.BNDiffSMParameter</className><parameter>
+<value><className>java.lang.Double</className>-1.7730354775995691</value><symbol><className>java.lang.Byte</className>3</symbol><index><className>java.lang.Integer</className>27</index><pseudoCount><className>java.lang.Double</className>1.0</pseudoCount><position><className>java.lang.Integer</className>6</position><context><className>[[I</className><length>0</length></context><count><className>java.lang.Double</className>1.0</count><free><className>java.lang.Boolean</className>true</free><z><className>java.lang.Double</className>0.0</z><t><className>java.lang.Double</className>0.0</t></parameter>
+</pos></pars></treeElement>
+</root><firstParent><className>java.lang.Integer</className>-1</firstParent><firstChildren><className>[I</className><length>0</length></firstChildren></parameterTree>
+</pos></trees><isTrained><className>java.lang.Boolean</className>true</isTrained><ess><className>java.lang.Double</className>4.0</ess><numFreePars><className>java.lang.Integer</className>28</numFreePars><nums><className>[I</className><length>28</length><pos val="0">0</pos><pos val="1">1</pos><pos val="2">2</pos><pos val="3">3</pos><pos val="4">4</pos><pos val="5">5</pos><pos val="6">6</pos><pos val="7">7</pos><pos val="8">8</pos><pos val="9">9</pos><pos val="10">10</pos><pos val="11">11</pos><pos val="12">12</pos><pos val="13">13</pos><pos val="14">14</pos><pos val="15">15</pos><pos val="16">16</pos><pos val="17">17</pos><pos val="18">18</pos><pos val="19">19</pos><pos val="20">20</pos><pos val="21">21</pos><pos val="22">22</pos><pos val="23">23</pos><pos val="24">24</pos><pos val="25">25</pos><pos val="26">26</pos><pos val="27">27</pos></nums><structureMeasure><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.structureLearning.measures.InhomogeneousMarkov</className><inhomogeneousMarkov>
+<parameters><className>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.structureLearning.measures.InhomogeneousMarkov$InhomogeneousMarkovParameterSet</className><instanceParameterSet>
+<superParameterSet>
+<parameterSet>
+<set>
+<numberOfParameters><className>java.lang.Integer</className>1</numberOfParameters><parameter><className>de.jstacs.parameters.SimpleParameter</className><simpleParameter>
+<name><className>java.lang.String</className>Order</name><comment><className>java.lang.String</className>The order of the Markov model.</comment><datatype><className>de.jstacs.DataType</className><name>INT</name></datatype><required><className>java.lang.Boolean</className>true</required><isSet><className>java.lang.Boolean</className>true</isSet><errorMessage><className>java.lang.String</className></errorMessage><isRangeable><className>java.lang.Boolean</className>true</isRangeable><validator>null</validator><defaultValue>null</defaultValue><value><className>java.lang.Integer</className>0</value></simpleParameter>
+</parameter></set>
+</parameterSet>
+</superParameterSet>
+<instanceClass><className>java.lang.Class</className><name>de.jstacs.sequenceScores.statisticalModels.differentiable.directedGraphicalModels.structureLearning.measures.InhomogeneousMarkov</name></instanceClass></instanceParameterSet>
+</parameters></inhomogeneousMarkov>
+</structureMeasure><plugInParameters><className>java.lang.Boolean</className>true</plugInParameters><order><className>[[I</className><length>7</length><pos val="0"><className>[I</className><length>2</length><pos val="0">0</pos><pos val="1">0</pos></pos><pos val="1"><className>[I</className><length>2</length><pos val="0">1</pos><pos val="1">1</pos></pos><pos val="2"><className>[I</className><length>2</length><pos val="0">2</pos><pos val="1">2</pos></pos><pos val="3"><className>[I</className><length>2</length><pos val="0">3</pos><pos val="1">3</pos></pos><pos val="4"><className>[I</className><length>2</length><pos val="0">4</pos><pos val="1">4</pos></pos><pos val="5"><className>[I</className><length>2</length><pos val="0">5</pos><pos val="1">5</pos></pos><pos val="6"><className>[I</className><length>2</length><pos val="0">6</pos><pos val="1">6</pos></pos></order><roots><className>[I</className><length>7</length><pos val="0">0</pos><pos val="1">1</pos><pos val="2">2</pos><pos val="3">3</pos><pos val="4">4</pos><pos val="5">5</pos><pos val="6">6</pos></roots><freeParams><className>java.lang.Boolean</className>false</freeParams></bayesianNetworkSF>
+<lengthPenalty>null</lengthPenalty></MarkovModelDiffSM>
+</pos></function><optimizeHidden><className>java.lang.Boolean</className>true</optimizeHidden><plugIn><className>java.lang.Boolean</className>true</plugIn><hiddenParameter><className>[D</className><length>2</length><pos val="0">0.9933095080065826</pos><pos val="1">-1.0769418964449786</pos></hiddenParameter><threshold><className>java.lang.Double</className>0.5</threshold></ThresholdedStrandChIPper>
+</pos><pos val="1"><className>de.jstacs.sequenceScores.statisticalModels.differentiable.homogeneous.UniformHomogeneousDiffSM</className><UniformHomogeneousDiffSM>
+<length><className>java.lang.Integer</className>0</length><alphabets><className>de.jstacs.data.alphabets.DNAAlphabetContainer</className></alphabets><ess><className>java.lang.Double</className>16.0</ess></UniformHomogeneousDiffSM>
+</pos></score><beta><className>[D</className><length>3</length><pos val="0">0.5</pos><pos val="1">0.0</pos><pos val="2">0.5</pos></beta><prior>
+<class><className>java.lang.Class</className><name>de.jstacs.classifiers.differentiableSequenceScoreBased.logPrior.CompositeLogPrior</name></class>	</prior>
+</gendismix-classifier>
+