diff options
| author | ziejd2 | 2018-09-13 23:59:20 -0500 |
|---|---|---|
| committer | ziejd2 | 2018-09-13 23:59:20 -0500 |
| commit | e3f7237ffcb19f19db3b68777b5a94b89e07f66a (patch) | |
| tree | 554a8013776ebeae3e2976074020c09c2d1af8b0 /sourcecodes | |
| parent | a7eb61ff7a09f39bee67014bf24b8919eaccfc19 (diff) | |
| download | BNW-e3f7237ffcb19f19db3b68777b5a94b89e07f66a.tar.gz | |
New parameter learning options
The main change here is in the parameter learning methods. The parameters that are learned at first (i.e., if there is no evidence) are the distributions that are found directly in the data. I had to create or significantly modify several BNT files for this. If there is evidence, the parameters are learned using a Dirichlet prior. This only required a couple of small changes to the BNW parameter learning files.
Diffstat (limited to 'sourcecodes')
78 files changed, 5510 insertions, 128 deletions
diff --git a/sourcecodes/BNW_workflow_net1.htm b/sourcecodes/BNW_workflow_net1.htm index d69ddf84..318dd5c2 100644 --- a/sourcecodes/BNW_workflow_net1.htm +++ b/sourcecodes/BNW_workflow_net1.htm @@ -294,7 +294,7 @@ ul line-height:115%;font-family:"Arial","sans-serif"'> **Recent updates to BNW may result in slight differences between what is described/shown below and what would currently be experienced in BNW.**<br><br> This tutorial provides -an overview of using BNW to build a Bayesian network model from a dataset and use the network to make predictions. The dataset used in this tutorial is a synthetic example of a genetic dataset that has a total of 8 variables. Two of the variables are genotypes labeled Geno1 and Geno2, and the remaining 6 variables are gene expression levels or other quantitative traits that are labeled Trait1 to Trait6. The dataset is available <a href="example_datasets/example_data_8nodes.txt">here</a>.<br><br>The data file is formatted according to the guidelines on the <a href=http://compbio.uthsc.edu/BNW_1.12/sourcecodes/help.php#file_format>BNW help page</a>. The first row of the file contains the names of the variables and the remaining rows contain the data for each sample of the dataset. The genotypes (Geno1 and Geno2), which are the only discrete variables in the network, are the leftmost variables in the input file and are integer values (1 and 2) for all of the samples. The quantitative traits are continuous variables, and, therefore, all contain a "." in at least one of the samples.<o:p></o:p></span></p> +an overview of using BNW to build a Bayesian network model from a dataset and use the network to make predictions. The dataset used in this tutorial is a synthetic example of a genetic dataset that has a total of 8 variables. Two of the variables are genotypes labeled Geno1 and Geno2, and the remaining 6 variables are gene expression levels or other quantitative traits that are labeled Trait1 to Trait6. The dataset is available <a href="example_datasets/example_data_8nodes.txt">here</a>.<br><br>The data file is formatted according to the guidelines on the <a href=http://compbio.uthsc.edu/BNW_1.2/sourcecodes/help.php#file_format>BNW help page</a>. The first row of the file contains the names of the variables and the remaining rows contain the data for each sample of the dataset. The genotypes (Geno1 and Geno2), which are the only discrete variables in the network, are the leftmost variables in the input file and are integer values (1 and 2) for all of the samples. The quantitative traits are continuous variables, and, therefore, all contain a "." in at least one of the samples.<o:p></o:p></span></p> <p class=MsoNormal style='margin-right:107.5pt'><b style='mso-bidi-font-weight: normal'><span style='font-size:14.0pt;line-height:115%;font-family:"Arial","sans-serif"'>1. Structure learning using default options<o:p></o:p></span></b></p> @@ -324,7 +324,7 @@ normal'><span style='font-size:14.0pt;line-height:115%;font-family:"Arial","sans <p class=MsoNormal style='margin-top:0in;margin-right:107.5pt;margin-bottom: 0in;margin-left:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt; -line-height:115%;font-family:"Arial","sans-serif";mso-no-proof:yes'>In order to test if edges present the single best scoring network are conserved across high scoring networks. We can modify the structure learning settings to get identify the structures of many high scoring networks and perform <a href=http://compbio.uthsc.edu/BNW_1.12/sourcecodes/help.php#learn_details>model averaging</a> over these structures. To do this, return to the BNW home page, select <u>Learn a network model from data</u>, and upload the datafile. Instead of using the default settings, select <u>Go to structure learning settings and the BNW structural constraint interface</u>. A more detailed overview of use of the structural constraint interface is provided in <a href=http://compbio.uthsc.edu/BNW_1.12/sourcecodes/BNW_workflow_2.htm>another tutorial</a>, but, here, we will investigate the impact of modifying some of the structure learning settings shown below:<br><o:p></o:p></span></p><br> +line-height:115%;font-family:"Arial","sans-serif";mso-no-proof:yes'>In order to test if edges present the single best scoring network are conserved across high scoring networks. We can modify the structure learning settings to get identify the structures of many high scoring networks and perform <a href=http://compbio.uthsc.edu/BNW_1.2/sourcecodes/help.php#learn_details>model averaging</a> over these structures. To do this, return to the BNW home page, select <u>Learn a network model from data</u>, and upload the datafile. Instead of using the default settings, select <u>Go to structure learning settings and the BNW structural constraint interface</u>. A more detailed overview of use of the structural constraint interface is provided in <a href=http://compbio.uthsc.edu/BNW_1.2/sourcecodes/BNW_workflow_2.htm>another tutorial</a>, but, here, we will investigate the impact of modifying some of the structure learning settings shown below:<br><o:p></o:p></span></p><br> <p class=MsoNormal style='margin-right:107.5pt'><span style='font-size:12.0pt; line-height:115%;font-family:"Arial","sans-serif";mso-no-proof:yes'> @@ -358,7 +358,7 @@ normal'><span style='font-size:14.0pt;line-height:115%;font-family:"Arial","sans <p class=MsoNormal style='margin-top:0in;margin-right:107.5pt;margin-bottom: 0in;margin-left:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt; -line-height:115%;font-family:"Arial","sans-serif";mso-no-proof:yes'><br>To make predictions with the network, we will use the structure learned after model averaging of the top 100 highest scoring networks. First, we will use the model to compare the expected values for nodes in the network based on observed genotypes. For these predictions, we will keep the prediction in evidence mode. The difference between evidence and intervention modes is discussed in the <a href=http://compbio.uthsc.edu/BNW_1.12/sourcecodes/faq.php#evid_inter>BNW FAQ page</a>. To use the model to make predictions based on Geno1, click on one of the blue bars in the Geno1 node and enter 1 or 2 to indicate which genotype value should be used to predict the values of the other network nodes. In the figure below, Geno1 is outlined in red and state 2 has a 100% probability, indicating that the value of this node has been entered as evidence. The red lines in the figure show the predicted distributions of the nodes after this evidence is known and can be compared with the blue lines which show the distributions for variables using the original data.<o:p></o:p></span></p><br> +line-height:115%;font-family:"Arial","sans-serif";mso-no-proof:yes'><br>To make predictions with the network, we will use the structure learned after model averaging of the top 100 highest scoring networks. First, we will use the model to compare the expected values for nodes in the network based on observed genotypes. For these predictions, we will keep the prediction in evidence mode. The difference between evidence and intervention modes is discussed in the <a href=http://compbio.uthsc.edu/BNW_1.2/sourcecodes/faq.php#evid_inter>BNW FAQ page</a>. To use the model to make predictions based on Geno1, click on one of the blue bars in the Geno1 node and enter 1 or 2 to indicate which genotype value should be used to predict the values of the other network nodes. In the figure below, Geno1 is outlined in red and state 2 has a 100% probability, indicating that the value of this node has been entered as evidence. The red lines in the figure show the predicted distributions of the nodes after this evidence is known and can be compared with the blue lines which show the distributions for variables using the original data.<o:p></o:p></span></p><br> <p class=MsoNormal style='margin-right:107.5pt'><span style='font-size:12.0pt; line-height:115%;font-family:"Arial","sans-serif";mso-no-proof:yes'> diff --git a/sourcecodes/add_evd.php b/sourcecodes/add_evd.php index 92aca69f..346aba04 100644 --- a/sourcecodes/add_evd.php +++ b/sourcecodes/add_evd.php @@ -1,6 +1,6 @@ <?php - -$keyval=trim($_GET['My_key']); +include("input_validate.php"); +$keyval=valid_keyval(trim($_GET['My_key'])); //include("restructuremap.php"); @@ -76,10 +76,13 @@ $sym=trim($_GET['name']); $textdata=$_GET['evidence']; $ft=$dir.$keyval."var.txt"; $fpvar = file_get_contents("$ft"); +$fpvar = trim("$fpvar"); $ft=$dir.$keyval."vardata.txt"; $fpdata = file_get_contents("$ft"); +$fpdata = trim("$fpdata"); $ft=$dir.$keyval."varname.txt"; $fpvarname = file_get_contents("$ft"); +$fpvarname = trim("$fpvarname"); $vriable=mapid($sym,$keyval); @@ -187,14 +190,8 @@ else } -// $file1="./data/".$keyval."run_evidencemodified.sh"; -// $initiallines=file_get_contents("./data/temp_evidence_file"); -// $all_lines="$initiallines"."$keyval\nfi\nexit"; - -// $fp = fopen($file1,"w"); -// fwrite($fp, "$all_lines\n"); -// fclose($fp); //execute shell script for matlab + $keyval = valid_keyval($keyval); shell_exec('./run_octave_evd '.$keyval); ?> diff --git a/sourcecodes/add_evd_example.php b/sourcecodes/add_evd_example.php index a38d4474..29465fae 100644 --- a/sourcecodes/add_evd_example.php +++ b/sourcecodes/add_evd_example.php @@ -1,6 +1,6 @@ <?php - -$keyval=trim($_GET['My_key']); +include("input_validate.php"); +$keyval=valid_keyval(trim($_GET['My_key'])); //include("restructuremap.php"); @@ -185,14 +185,8 @@ else } -// $file1="./data/".$keyval."run_evidencemodified.sh"; -// $initiallines=file_get_contents("./data/temp_evidence_file"); -// $all_lines="$initiallines"."$keyval\nfi\nexit"; - -// $fp = fopen($file1,"w"); -// fwrite($fp, "$all_lines\n"); -// fclose($fp); //execute shell script for matlab + $keyval = valid_keyval($keyval); shell_exec('./run_octave_evd '.$keyval); ?> diff --git a/sourcecodes/add_inv.php b/sourcecodes/add_inv.php index c2953f85..25b7b7ba 100644 --- a/sourcecodes/add_inv.php +++ b/sourcecodes/add_inv.php @@ -1,6 +1,7 @@ <?php //include("restructuremap.php"); -$keyval=$_GET["My_key"]; +include("input_validate.php"); +$keyval=valid_keyval($_GET["My_key"]); function discretemap($textdata,$sym,$dmapdata) { @@ -181,6 +182,7 @@ else } include("mat_structure.php"); +$keyval = valid_keyval($keyval); structure_change($keyval); @@ -197,6 +199,7 @@ structure_change($keyval); //execute shell script for matlab // $cmd="./runmat_inv.sh $keyval"; // system($cmd); + shell_exec('./run_octave_inv '.$keyval); diff --git a/sourcecodes/add_inv_example.php b/sourcecodes/add_inv_example.php index 0a7ea200..a3e0f87d 100644 --- a/sourcecodes/add_inv_example.php +++ b/sourcecodes/add_inv_example.php @@ -1,6 +1,7 @@ <?php //include("restructuremap.php"); -$keyval=$_GET["My_key"]; +include("input_validate.php"); +$keyval=valid_keyval($_GET["My_key"]); function discretemap($textdata,$sym,$dmapdata) { @@ -183,6 +184,7 @@ else } include("mat_structure.php"); +$keyval = valid_keyval($keyval); structure_change($keyval); diff --git a/sourcecodes/bn_file_load_gom.php b/sourcecodes/bn_file_load_gom.php index 21020152..eb3ac454 100644 --- a/sourcecodes/bn_file_load_gom.php +++ b/sourcecodes/bn_file_load_gom.php @@ -6,6 +6,7 @@ include("header_new.inc"); include("header_batchsearch.inc"); include("runtime_check.php"); +include("input_validate.php"); $searchID=""; $UploadValue="NO"; $TextFile=$HTTP_POST_FILES["MyFile"]["name"]; @@ -25,7 +26,7 @@ $keyval=$alpha; if($_POST["My_key"]!="") $keyval=$_POST["My_key"]; - + $keyval=valid_keyval($keyval); $sid=$keyval."continuous_input"; $dir="./data/"; @@ -60,6 +61,7 @@ if(isset($HTTP_POST_VARS["MyUpload"])) { if($TextFile!="") { + $TextFile = valid_input($TextFile); $sta=move_uploaded_file($HTTP_POST_FILES['MyFile']['tmp_name'],$TextinFile); if(!$sta) { @@ -145,6 +147,7 @@ if($searchID!="") $fpdata = fopen($dir.$keyval."continuous_input_orig.txt","w"); fwrite($fpdata,$searchID); } + $keyval = valid_keyval($keyval); shell_exec('./run_prep_input '.$keyval); $parent_number=4; $k_number=1; diff --git a/sourcecodes/bnt-master/BNT/CPDs/@discrete_CPD/convert_to_pot_orig.m b/sourcecodes/bnt-master/BNT/CPDs/@discrete_CPD/convert_to_pot_orig.m new file mode 100644 index 00000000..dadcb033 --- /dev/null +++ b/sourcecodes/bnt-master/BNT/CPDs/@discrete_CPD/convert_to_pot_orig.m @@ -0,0 +1,62 @@ +function pot = convert_to_pot_orig(CPD, pot_type, domain, evidence, n, ns_current) +% CONVERT_TO_POT Convert discrete CPD with original distribution to a potential +% pot = convert_to_pot_orig(CPD, pot_type, domain, evidence, n, ns_current) +% +% pots = CPD evaluated using evidence(domain) + +ncases = size(domain,2); +assert(ncases==1); % not yet vectorized + +sz = dom_sizes(CPD); +ns = zeros(1, max(domain)); +ns(domain) = sz; + +CPT1 = CPD_to_CPT(CPD); +spar = issparse(CPT1); +odom = domain(~isemptycell(evidence(domain))); +if spar + T = convert_to_sparse_table(CPD, domain, evidence); +else + T = convert_to_table(CPD, domain, evidence); +end + +switch pot_type + case 'u', + pot = upot(domain, sz, T, 0*myones(sz)); + case 'd', + CPT_orig = CPD_to_CPT_orig(CPD); + pot = dpot(n, ns_current, CPT_orig); + case {'c','g'}, + % Since we want the output to be a Gaussian, the whole family must be observed. + % In other words, the potential is really just a constant. + p = T; + %p = prob_node(CPD, evidence(domain(end)), evidence(domain(1:end-1))); + ns(domain) = 0; + pot = cpot(domain, ns(domain), log(p)); + + case 'cg', + T = T(:); + ns(odom) = 1; + can = cell(1, length(T)); + for i=1:length(T) + if T(i) == 0 + can{i} = cpot([], [], -Inf); % bug fix by Bob Welch 20/2/04 + else + can{i} = cpot([], [], log(T(i))); + end; + end + pot = cgpot(domain, [], ns, can); + + case 'scg' + T = T(:); + ns(odom) = 1; + pot_array = cell(1, length(T)); + for i=1:length(T) + pot_array{i} = scgcpot([], [], T(i)); + end + pot = scgpot(domain, [], [], ns, pot_array); + + otherwise, + error(['unrecognized pot type ' pot_type]) +end + diff --git a/sourcecodes/bnt-master/BNT/CPDs/@discrete_CPD/convert_to_pot_orig.m~ b/sourcecodes/bnt-master/BNT/CPDs/@discrete_CPD/convert_to_pot_orig.m~ new file mode 100644 index 00000000..ecc57d49 --- /dev/null +++ b/sourcecodes/bnt-master/BNT/CPDs/@discrete_CPD/convert_to_pot_orig.m~ @@ -0,0 +1,62 @@ +function pot = convert_to_pot(CPD, pot_type, domain, evidence) +% CONVERT_TO_POT Convert a discrete CPD to a potential +% pot = convert_to_pot(CPD, pot_type, domain, evidence) +% +% pots = CPD evaluated using evidence(domain) + +ncases = size(domain,2); +assert(ncases==1); % not yet vectorized + +sz = dom_sizes(CPD); +ns = zeros(1, max(domain)); +ns(domain) = sz; + +CPT1 = CPD_to_CPT(CPD); +spar = issparse(CPT1); +odom = domain(~isemptycell(evidence(domain))); +if spar + T = convert_to_sparse_table(CPD, domain, evidence); +else + T = convert_to_table(CPD, domain, evidence); +end + +switch pot_type + case 'u', + pot = upot(domain, sz, T, 0*myones(sz)); + case 'd', + ns(odom) = 1; + pot = dpot(domain, ns(domain), T); + case {'c','g'}, + % Since we want the output to be a Gaussian, the whole family must be observed. + % In other words, the potential is really just a constant. + p = T; + %p = prob_node(CPD, evidence(domain(end)), evidence(domain(1:end-1))); + ns(domain) = 0; + pot = cpot(domain, ns(domain), log(p)); + + case 'cg', + T = T(:); + ns(odom) = 1; + can = cell(1, length(T)); + for i=1:length(T) + if T(i) == 0 + can{i} = cpot([], [], -Inf); % bug fix by Bob Welch 20/2/04 + else + can{i} = cpot([], [], log(T(i))); + end; + end + pot = cgpot(domain, [], ns, can); + + case 'scg' + T = T(:); + ns(odom) = 1; + pot_array = cell(1, length(T)); + for i=1:length(T) + pot_array{i} = scgcpot([], [], T(i)); + end + pot = scgpot(domain, [], [], ns, pot_array); + + otherwise, + error(['unrecognized pot type ' pot_type]) +end + diff --git a/sourcecodes/bnt-master/BNT/CPDs/@discrete_CPD/convert_to_table_orig.m b/sourcecodes/bnt-master/BNT/CPDs/@discrete_CPD/convert_to_table_orig.m new file mode 100644 index 00000000..92aacc0d --- /dev/null +++ b/sourcecodes/bnt-master/BNT/CPDs/@discrete_CPD/convert_to_table_orig.m @@ -0,0 +1,15 @@ +function T = convert_to_table(CPD, domain, evidence) +% CONVERT_TO_TABLE Convert a discrete CPD to a table with original distribution +% T = convert_to_table(CPD, domain, evidence) +% +% We convert the CPD to a CPT, and then lookup the evidence on the discrete parents. +% The resulting table can easily be converted to a potential. + +domain = domain(:); +CPT = CPD_to_CPT_orig(CPD); +odom = domain(~isemptycell(evidence(domain))); +vals = cat(1, evidence{odom}); +map = find_equiv_posns(odom, domain); +index = mk_multi_index(length(domain), map, vals); +T = CPT(index{:}); +T = T(:); diff --git a/sourcecodes/bnt-master/BNT/CPDs/@discrete_CPD/convert_to_table_orig.m~ b/sourcecodes/bnt-master/BNT/CPDs/@discrete_CPD/convert_to_table_orig.m~ new file mode 100644 index 00000000..dc5bcd40 --- /dev/null +++ b/sourcecodes/bnt-master/BNT/CPDs/@discrete_CPD/convert_to_table_orig.m~ @@ -0,0 +1,15 @@ +function T = convert_to_table(CPD, domain, evidence) +% CONVERT_TO_TABLE Convert a discrete CPD to a table +% T = convert_to_table(CPD, domain, evidence) +% +% We convert the CPD to a CPT, and then lookup the evidence on the discrete parents. +% The resulting table can easily be converted to a potential. + +domain = domain(:); +CPT = CPD_to_CPT(CPD); +odom = domain(~isemptycell(evidence(domain))); +vals = cat(1, evidence{odom}); +map = find_equiv_posns(odom, domain); +index = mk_multi_index(length(domain), map, vals); +T = CPT(index{:}); +T = T(:); diff --git a/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/CPD_to_CPT_orig.m b/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/CPD_to_CPT_orig.m new file mode 100644 index 00000000..707de900 --- /dev/null +++ b/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/CPD_to_CPT_orig.m @@ -0,0 +1,5 @@ +function CPT = CPD_to_CPT_orig(CPD) +% CPD_TO_CPT Convert the discrete CPD to tabular form (tabular) +% CPT = CPD_to_CPT_orig(CPD) + +CPT = CPD.CPT_orig; diff --git a/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/CPD_to_CPT_orig.m~ b/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/CPD_to_CPT_orig.m~ new file mode 100644 index 00000000..351f103c --- /dev/null +++ b/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/CPD_to_CPT_orig.m~ @@ -0,0 +1,5 @@ +function CPT = CPD_to_CPT(CPD) +% CPD_TO_CPT Convert the discrete CPD to tabular form (tabular) +% CPT = CPD_to_CPT(CPD) + +CPT = CPD.CPT; diff --git a/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/get_field.m b/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/get_field.m index ba233db9..5812330d 100644 --- a/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/get_field.m +++ b/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/get_field.m @@ -10,6 +10,7 @@ function val = get_field(CPD, name) switch name case 'cpt', val = CPD.CPT; + case 'cpt_orig', val = CPD.CPT_orig; case 'counts', val = CPD.counts; otherwise, error(['invalid argument name ' name]); diff --git a/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/learn_params_orig.m b/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/learn_params_orig.m new file mode 100644 index 00000000..c0948566 --- /dev/null +++ b/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/learn_params_orig.m @@ -0,0 +1,20 @@ +function CPD = learn_params_orig(CPD,j,data,ns,cnodes) +% LEARN_PARAMS_ORIG +% Calculate the original distributions of the data. +% The original distributions are just the percentages of states in the +% data file. + +local_data = data(j, :); +nobs = size(local_data,2); +if iscell(local_data) + local_data = cell2num(local_data); +end +counts = compute_counts(local_data,ns(j)); +counts = counts/nobs; +switch CPD.prior_type + case 'none', CPD.CPT_orig = counts; +% case 'dirichlet', CPD.CPT = mk_stochastic(counts + CPD.dirichlet); +% I will use 'dirichlet' priors incorrectly here. + case 'dirichlet', CPD.CPT_orig = counts; + otherwise, error(['unrecognized prior ' CPD.prior_type]) +end diff --git a/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/learn_params_orig.m~ b/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/learn_params_orig.m~ new file mode 100644 index 00000000..7a19a42d --- /dev/null +++ b/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/learn_params_orig.m~ @@ -0,0 +1,20 @@ +function CPD = learn_params_orig(CPD,j,data,data,ns,cnodes) +% LEARN_PARAMS_ORIG +% Calculate the original distributions of the data. +% The original distributions are just the percentages of states in the +% data file. + +local_data = data(j, :); +nobs = size(local_data,2); +if iscell(local_data) + local_data = cell2num(local_data); +end +counts = compute_counts(local_data,ns(j)); +counts = counts/nobs; +switch CPD.prior_type + case 'none', CPD.CPT_orig = counts; +% case 'dirichlet', CPD.CPT = mk_stochastic(counts + CPD.dirichlet); +% I will use 'dirichlet' priors incorrectly here. + case 'dirichlet', CPD.CPT_orig = counts; + otherwise, error(['unrecognized prior ' CPD.prior_type]) +end diff --git a/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/tabular_CPD.m b/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/tabular_CPD.m index 728302d4..a41a23d9 100644 --- a/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/tabular_CPD.m +++ b/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/tabular_CPD.m @@ -9,6 +9,7 @@ function CPD = tabular_CPD(bnet, self, varargin) % - T means use table T; it will be reshaped to the size of node's family. % - 'rnd' creates rnd params (drawn from uniform) % - 'unif' creates a uniform distribution +% CPT_orig - specifies the distribution based on original data % adjustable - 0 means don't adjust the parameters during learning [1] % prior_type - defines type of prior ['none'] % - 'none' means do ML estimation @@ -60,6 +61,7 @@ CPD.sparse = 0; % set defaults CPD.CPT = mk_stochastic(myrand(fam_sz)); +CPD.CPT_orig = mk_stochastic(myrand(ns([self]))); CPD.adjustable = 1; CPD.prior_type = 'none'; dirichlet_type = 'BDeu'; @@ -158,6 +160,7 @@ function CPD = init_fields() % or create it from scratch. (Matlab requires this.) CPD.CPT = []; +CPD.CPT_orig = []; CPD.sizes = []; CPD.prior_type = []; CPD.dirichlet = []; diff --git a/sourcecodes/bnt-master/BNT/inference/static/@jtree_inf_engine/marginal_nodes_no_ev.m b/sourcecodes/bnt-master/BNT/inference/static/@jtree_inf_engine/marginal_nodes_no_ev.m new file mode 100644 index 00000000..220690ce --- /dev/null +++ b/sourcecodes/bnt-master/BNT/inference/static/@jtree_inf_engine/marginal_nodes_no_ev.m @@ -0,0 +1,18 @@ +function marginal = marginal_nodes_no_ev(bnet,engine, query) +% MARGINAL_NODES Get original distribution of the specified query nodes (jtree) +% marginal = marginal_nodes(bnet, engine, query) +% + +if ismember(query,bnet.dnodes) + marginal.domain = query; + marginal.T = CPD_to_CPT_orig(bnet.CPD{query}); + marginal.mu = []; + marginal.Sigma = []; +else + c = clq_containing_nodes(engine, query); + if c == -1 + error(['no clique contains ' num2str(query)]); + end + marginal = pot_to_marginal(marginalize_pot(engine.clpot{c}, query, engine.maximize)); +end + diff --git a/sourcecodes/bnt-master/BNT/inference/static/@jtree_inf_engine/marginal_nodes_no_ev.m~ b/sourcecodes/bnt-master/BNT/inference/static/@jtree_inf_engine/marginal_nodes_no_ev.m~ new file mode 100644 index 00000000..220690ce --- /dev/null +++ b/sourcecodes/bnt-master/BNT/inference/static/@jtree_inf_engine/marginal_nodes_no_ev.m~ @@ -0,0 +1,18 @@ +function marginal = marginal_nodes_no_ev(bnet,engine, query) +% MARGINAL_NODES Get original distribution of the specified query nodes (jtree) +% marginal = marginal_nodes(bnet, engine, query) +% + +if ismember(query,bnet.dnodes) + marginal.domain = query; + marginal.T = CPD_to_CPT_orig(bnet.CPD{query}); + marginal.mu = []; + marginal.Sigma = []; +else + c = clq_containing_nodes(engine, query); + if c == -1 + error(['no clique contains ' num2str(query)]); + end + marginal = pot_to_marginal(marginalize_pot(engine.clpot{c}, query, engine.maximize)); +end + diff --git a/sourcecodes/bnt-master/BNT/learning/learn_params.m b/sourcecodes/bnt-master/BNT/learning/learn_params.m index 1bf9c843..3d7ba847 100644 --- a/sourcecodes/bnt-master/BNT/learning/learn_params.m +++ b/sourcecodes/bnt-master/BNT/learning/learn_params.m @@ -21,6 +21,9 @@ for j=1:n fam = family(bnet.dag,j); %bnet.CPD{j} = learn_params(bnet.CPD{j}, data(fam,:)); bnet.CPD{j} = learn_params(bnet.CPD{j}, fam, data, bnet.node_sizes, bnet.cnodes); + if ismember(e,bnet.dnodes) + bnet.CPD{j} = learn_params_orig(bnet.CPD{j}, j, data, bnet.node_sizes, bnet.cnodes); + end end end diff --git a/sourcecodes/clear.php b/sourcecodes/clear.php index 8d8f8344..b06c9bc1 100644 --- a/sourcecodes/clear.php +++ b/sourcecodes/clear.php @@ -1,6 +1,13 @@ <?php +include("input_validate.php"); +$oldkeyval=valid_keyval($_GET["My_key"]); + +//if (preg_match('/[^A-Za-z]/',$oldkeyval)) { +// echo "Key value must contain only uppercase or lowercase letters."; +// $oldkeyval=''; +//} + -$oldkeyval=$_GET["My_key"]; /////////////Generate a random key///////////////////// $alphas=array(); @@ -11,7 +18,7 @@ $al2=rand(0,51); $al3=rand(0,51); $alpha="$alphas[$al1]"."$alphas[$al2]"."$alphas[$al3]"; -$keyval=$alpha; +$keyval=valid_keyval($alpha); shell_exec('./filecopy.sh '.$oldkeyval.' '.$keyval); ?> diff --git a/sourcecodes/clear_example.php b/sourcecodes/clear_example.php index 4b0a8315..c01a6f7e 100644 --- a/sourcecodes/clear_example.php +++ b/sourcecodes/clear_example.php @@ -1,6 +1,10 @@ <?php - -$oldkeyval=$_GET["My_key"]; +include("input_validate.php"); +$oldkeyval=valid_keyval($_GET["My_key"]); +//if (preg_match('/[^A-Za-z]/',$oldkeyval)) { +// echo "Key value must contain only uppercase or lowercase letters."; +// $oldkeyval=''; +//} /////////////Generate a random key///////////////////// $alphas=array(); @@ -12,6 +16,7 @@ $al3=rand(0,51); $alpha="$alphas[$al1]"."$alphas[$al2]"."$alphas[$al3]"; $keyval=$alpha; +$keyval=valid_keyval($keyval); shell_exec('./filecopy.sh '.$oldkeyval.' '.$keyval); ?> diff --git a/sourcecodes/create_tiers_gom.php b/sourcecodes/create_tiers_gom.php index be8e2fc2..b830f529 100644 --- a/sourcecodes/create_tiers_gom.php +++ b/sourcecodes/create_tiers_gom.php @@ -4,7 +4,7 @@ include("header_new.inc"); include("runtime_check.php"); - +include("input_validate.php"); $keyval=$_GET["My_key"]; $dir="./data/"; @@ -41,6 +41,7 @@ $structure_thr=trim($type_n[3]); if($keyval=="") $keyval=$type_n[4]; + if($parent_number=="") { $parent_number=4; @@ -81,7 +82,8 @@ $thrfile=$dir.$keyval."thr.txt"; $kf=fopen($thrfile,"w"); fwrite($kf,"$structure_thr\n"); -//////////////////Check execution time/////////////////////////////////////////////// +//////////////////Check execution time////////////////////////////////////////////// +$keyval=valid_keyval($keyval); $runtime=exe_time($keyval,$parent_number,$k_number); //print("Runtime is $runtime"); diff --git a/sourcecodes/cross_valid.php b/sourcecodes/cross_valid.php new file mode 100644 index 00000000..8c402283 --- /dev/null +++ b/sourcecodes/cross_valid.php @@ -0,0 +1,125 @@ +<?php +include("header_new.inc"); +include("input_validate.php"); +$keyval=$_GET["My_key"]; +if($keyval!='') { + $keyval = valid_keyval($keyval); +} +?> + +<?php +$varName = ""; +$varNameErr = ""; + +if ($_SERVER["REQUEST_METHOD"] == "POST") { + $keyval=$_POST["My_key"]; + if($keyval!='') { + $keyval = valid_keyval($keyval); + } + if (empty($_POST["varName"])) { + $varNameErr = "Entering a variable name is required"; + } else { + // $varName = test_input($_POST["varName"]); + $varName = valid_input($_POST["varName"]); + $varNameErr = "1"; + // check if name only contains letters and whitespace + //if (!preg_match("/^[\w]*$/",$varName)) { + // $varNameErr = "The input string contains characters that are not allowed"; + //} + } +} + + +function test_input($data) { + $data = trim($data); + $data = stripslashes($data); + $data = htmlspecialchars($data); + return $data; +} +?> + + +<!-- Site navigation menu --> +<ul class="navbar2"> + <li><p>Network ID:<br><?php print($keyval);?></p></li> +</ul> +<ul class="navbar"> + <li><a href="javascript:void(0);" + NAME="Network" title="Network" onClick=window.open("layout.php?My_key=<?php print($keyval);?>","_self");>Return to network</a> + <li><a href="javascript:void(0);" + NAME="CV_predictions" title="CV_pred" onClick=window.open("cv_predictions.php?My_key=<?php print($keyval);?>","_self");>Return to validation and predictions menu</a> + <li><a href="help.php">Help</a> + <li><a href="home.php">Home</a> +</ul> + + +<!-- Main content --> +<div id="outer"> + +<?php + $filename1="./data/".$keyval."looCV.txt"; + $filename2="./data/".$keyval."looCV_temp.txt"; +if(file_exists($filename2)) + {?> +<br> + <h2> Leave-one-out cross-validation results are being calculated</h2> +<br> + <a href=<?php $ref="cv_predictions.php?".$keyval; print($ref);?>Refresh to update status</a> +<br> +<?php + } + else if(file_exists($filename1)) + {?> +<br> + <h2> <a href=<?php $d="./data/".$keyval."looCV.txt"; print($d);?>>View cross-validation results</a></h2> +<br> +<h3>Perform leave-one-out cross-validation of another network variable<br></h3> +<p align="justify"> + Enter the name of another variable below to validate predictions of that variable. +<br> +<p><span class="error"></span></p> +<FORM METHOD="post" ACTION="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> + Variable Name:<INPUT TYPE="text" name="varName" value="<?php echo $varName;?>" style="padding: 2px 5px; border: 2px solid; border-color: black black black black; font-family: Georgia, ..., serif; font-size: 18px; +display: block; height: 30px; width: 300px;"><span class="error"> <?php if($varNameErr!="1") {echo $varNameErr;};?></span> +<input type='hidden' name='My_key' value='<?php print($keyval)?>'> +<br><input type="submit" name="submit" value="Submit" style="display: block; height: 30px; width:100px; font-family: Georgia, ..., serif; font-size: 16px;"> +</FORM> +</p> +<br> +<?php + } else { +?> +<h2>Perform leave-one-out cross-validation of network</h2> +<p align="justify"> + To perform cross-validation, enter the name of the variable that you want to test the predictions of below. +<br> +<p><span class="error"></span></p> +<FORM METHOD="post" ACTION="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> + Variable Name:<INPUT TYPE="text" name="varName" value="<?php echo $varName;?>" style="padding: 2px 5px; border: 2px solid; border-color: black black black black; font-family: Georgia, ..., serif; font-size: 18px; +display: block; height: 30px; width: 300px;"><span class="error"> <?php if($varNameErr!="1") {echo $varNameErr;};?></span> +<input type='hidden' name='My_key' value='<?php print($keyval)?>'> +<br><input type="submit" name="submit" value="Submit" style="display: block; height: 30px; width:100px; font-family: Georgia, ..., serif; font-size: 16px;"> +</FORM> +</p> +<br> + +<?php +} + +if($varNameErr=="1") +{ + $command = './run_loo '.$keyval.' '.$varName; + $output = shell_exec("$command > /dev/null 2 > /dev/null &"); + $pred_link='cv_predictions.php?My_key='.$keyval; + sleep(1); + echo "<br>"; + echo "Calculation submitted"; + echo "<br>"; + echo "<a href=$pred_link>Click to return to cross-validation and predictions menu</a>"; +} +?> + +</div> +</body> + + diff --git a/sourcecodes/cross_valid_example.php b/sourcecodes/cross_valid_example.php new file mode 100644 index 00000000..a4bbe043 --- /dev/null +++ b/sourcecodes/cross_valid_example.php @@ -0,0 +1,125 @@ +<?php +include("header_new.inc"); +include("input_validate.php"); +$keyval=$_GET["My_key"]; +if($keyval!='') { + $keyval = valid_keyval($keyval); +} +?> + +<?php +$varName = ""; +$varNameErr = ""; + +if ($_SERVER["REQUEST_METHOD"] == "POST") { + $keyval=$_POST["My_key"]; + if($keyval!='') { + $keyval = valid_keyval($keyval); + } + if (empty($_POST["varName"])) { + $varNameErr = "Entering a variable name is required"; + } else { + // $varName = test_input($_POST["varName"]); + $varName = valid_input($_POST["varName"]); + $varNameErr = "1"; + // check if name only contains letters and whitespace + //if (!preg_match("/^[\w]*$/",$varName)) { + // $varNameErr = "The input string contains characters that are not allowed"; + //} + } +} + + +function test_input($data) { + $data = trim($data); + $data = stripslashes($data); + $data = htmlspecialchars($data); + return $data; +} +?> + + +<!-- Site navigation menu --> +<ul class="navbar2"> + <li><p>Network ID:<br><?php print($keyval);?></p></li> +</ul> +<ul class="navbar"> + <li><a href="javascript:void(0);" + NAME="Network" title="Network" onClick=window.open("layout_example.php?My_key=<?php print($keyval);?>","_self");>Return to network</a> + <li><a href="javascript:void(0);" + NAME="CV_predictions" title="CV_pred" onClick=window.open("cv_predictions_example.php?My_key=<?php print($keyval);?>","_self");>Return to validation and predictions menu</a> + <li><a href="help.php">Help</a> + <li><a href="home.php">Home</a> +</ul> + + +<!-- Main content --> +<div id="outer"> + +<?php + $filename1="./data/".$keyval."looCV.txt"; + $filename2="./data/".$keyval."looCV_temp.txt"; +if(file_exists($filename2)) + {?> +<br> + <h2> Leave-one-out cross-validation results are being calculated</h2> +<br> + <a href=<?php $ref="cv_predictions_example.php?".$keyval; print($ref);?>Refresh to update status</a> +<br> +<?php + } + else if(file_exists($filename1)) + {?> +<br> + <h2> <a href=<?php $d="./data/".$keyval."looCV.txt"; print($d);?>>View cross-validation results</a></h2> +<br> +<h3>Perform leave-one-out cross-validation of another network variable<br></h3> +<p align="justify"> + Enter the name of another variable below to validate predictions of that variable. +<br> +<p><span class="error"></span></p> +<FORM METHOD="post" ACTION="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> + Variable Name:<INPUT TYPE="text" name="varName" value="<?php echo $varName;?>" style="padding: 2px 5px; border: 2px solid; border-color: black black black black; font-family: Georgia, ..., serif; font-size: 18px; +display: block; height: 30px; width: 300px;"><span class="error"> <?php if($varNameErr!="1") {echo $varNameErr;};?></span> +<input type='hidden' name='My_key' value='<?php print($keyval)?>'> +<br><input type="submit" name="submit" value="Submit" style="display: block; height: 30px; width:100px; font-family: Georgia, ..., serif; font-size: 16px;"> +</FORM> +</p> +<br> +<?php + } else { +?> +<h2>Perform leave-one-out cross-validation of network</h2> +<p align="justify"> + To perform cross-validation, enter the name of the variable that you want to test the predictions of below. +<br> +<p><span class="error"></span></p> +<FORM METHOD="post" ACTION="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> + Variable Name:<INPUT TYPE="text" name="varName" value="<?php echo $varName;?>" style="padding: 2px 5px; border: 2px solid; border-color: black black black black; font-family: Georgia, ..., serif; font-size: 18px; +display: block; height: 30px; width: 300px;"><span class="error"> <?php if($varNameErr!="1") {echo $varNameErr;};?></span> +<input type='hidden' name='My_key' value='<?php print($keyval)?>'> +<br><input type="submit" name="submit" value="Submit" style="display: block; height: 30px; width:100px; font-family: Georgia, ..., serif; font-size: 16px;"> +</FORM> +</p> +<br> + +<?php +} + +if($varNameErr=="1") +{ + $command = './run_loo '.$keyval.' '.$varName; + $output = shell_exec("$command > /dev/null 2 > /dev/null &"); + $pred_link='cv_predictions_example.php?My_key='.$keyval; + sleep(1); + echo "<br>"; + echo "Calculation submitted"; + echo "<br>"; + echo "<a href=$pred_link>Click to return to cross-validation and predictions menu</a>"; +} +?> + +</div> +</body> + + diff --git a/sourcecodes/cv_predictions.php b/sourcecodes/cv_predictions.php new file mode 100644 index 00000000..811f0c35 --- /dev/null +++ b/sourcecodes/cv_predictions.php @@ -0,0 +1,94 @@ +<?php + +include("header_new.inc"); +include("input_validate.php"); + +$keyval=valid_keyval($_GET["My_key"]); + +?> + +<!-- Site navigation menu --> +<ul class="navbar2"> + <li><p>Network ID:<br><?php print($keyval);?></p></li> +</ul> +<ul class="navbar"> + <li><a href="javascript:void(0);" + NAME="Network" title="Network" onClick=window.open("layout.php?My_key=<?php print($keyval);?>","_self");>Return to network</a> + <li><a href="help.php">Help</a> + <li><a href="home.php">Home</a> + + +</ul> + + +<!-- Main content --> +<div id="outer"> +<h1>Cross-validation and predictions</h1> +<br> +<p align="justify"> +<ul class="listbar"> +<?php + $loo_file1="./data/".$keyval."looCV_temp.txt"; + $loo_file2="./data/".$keyval."looCV.txt"; +if(file_exists($loo_file1)) + {?> +<li>1: Leave-one-out cross-validation predictions are being calculated. + <a href="cv_predictions.php?My_key=<?php print($keyval);?>">Refresh and update status</a> +<br> +</li> + <?php + } else if(file_exists($loo_file2)) { + ?> +<li>1: <a href="cross_valid.php?My_key=<?php print($keyval);?>" target='_self'>Leave-one-out cross-validation results are available.</a></li> + <?php + } else { + ?> + <li>1: <a href="cross_valid.php?My_key=<?php print($keyval);?>" target='_self'>Perform leave-one-out cross-validation</a></li> + <?php + } + ?> +<?php + $kfold_file1="./data/".$keyval."kfoldCV_temp.txt"; + $kfold_file2="./data/".$keyval."kfoldCV.txt"; +if(file_exists($kfold_file1)) + {?> +<li>2: k-fold cross-validation predictions are being calculated. + <a href="cv_predictions.php?My_key=<?php print($keyval);?>">Refresh and update status</a> +<br> +</li> + <?php + } else if(file_exists($kfold_file2)) { + ?> +<li>2: <a href="kfold_cv.php?My_key=<?php print($keyval);?>" target='_self'>k-fold cross-validation results are available</a></li> + <?php + } else { + ?> + <li>2: <a href="kfold_cv.php?My_key=<?php print($keyval);?>" target='_self'>Perform k-fold cross-validation</a></li> + <?php + } + ?> +<?php + $ts_file1="./data/".$keyval."ts_upload.txt"; + $ts_file2="./data/".$keyval."ts_output.txt"; +if(file_exists($ts_file1)) + {?> +<li>3: Test set predictions are being calculated. + <a href="cv_predictions.php?My_key=<?php print($keyval);?>">Refresh and update status</a> +<br> +</li> + <?php + } else if(file_exists($ts_file2)) { + ?> +<li>3: <a href="test_set_predictions.php?My_key=<?php print($keyval);?>" target='_self'>Test set predictions are available</a></li> + <?php + } else { + ?> + <li>3: <a href="test_set_predictions.php?My_key=<?php print($keyval);?>" target='_self'>Make predictions using a test data set</a></li> + <?php + } + ?> +</ul> +</p> +</div> +</body> +</html> diff --git a/sourcecodes/cv_predictions_example.php b/sourcecodes/cv_predictions_example.php new file mode 100644 index 00000000..10487de8 --- /dev/null +++ b/sourcecodes/cv_predictions_example.php @@ -0,0 +1,94 @@ +<?php + +include("header_new.inc"); +include("input_validate.php"); + +$keyval=valid_keyval($_GET["My_key"]); + +?> + +<!-- Site navigation menu --> +<ul class="navbar2"> + <li><p>Network ID:<br><?php print($keyval);?></p></li> +</ul> +<ul class="navbar"> + <li><a href="javascript:void(0);" + NAME="Network" title="Network" onClick=window.open("layout_example.php?My_key=<?php print($keyval);?>","_self");>Return to network</a> + <li><a href="help.php">Help</a> + <li><a href="home.php">Home</a> + + +</ul> + + +<!-- Main content --> +<div id="outer"> +<h1>Cross-validation and predictions</h1> +<br> +<p align="justify"> +<ul class="listbar"> +<?php + $loo_file1="./data/".$keyval."looCV_temp.txt"; + $loo_file2="./data/".$keyval."looCV.txt"; +if(file_exists($loo_file1)) + {?> +<li>1: Leave-one-out cross-validation predictions are being calculated. + <a href="cv_predictions_example.php?My_key=<?php print($keyval);?>">Refresh to update status</a> +<br> +</li> + <?php + } else if(file_exists($loo_file2)) { + ?> +<li>1: <a href="cross_valid_example.php?My_key=<?php print($keyval);?>" target='_self'>Leave-one-out cross-validation results are available.</a></li> + <?php + } else { + ?> + <li>1: <a href="cross_valid_example.php?My_key=<?php print($keyval);?>" target='_self'>Perform leave-one-out cross-validation</a></li> + <?php + } + ?> +<?php + $kfold_file1="./data/".$keyval."kfoldCV_temp.txt"; + $kfold_file2="./data/".$keyval."kfoldCV.txt"; +if(file_exists($kfold_file1)) + {?> +<li>2: k-fold cross-validation predictions are being calculated. + <a href="cv_predictions_example.php?My_key=<?php print($keyval);?>">Refresh to update status</a> +<br> +</li> + <?php + } else if(file_exists($kfold_file2)) { + ?> +<li>2: <a href="kfold_cv_example.php?My_key=<?php print($keyval);?>" target='_self'>k-fold cross-validation results are available</a></li> + <?php + } else { + ?> + <li>2: <a href="kfold_cv_example.php?My_key=<?php print($keyval);?>" target='_self'>Perform k-fold cross-validation</a></li> + <?php + } + ?> +<?php + $ts_file1="./data/".$keyval."ts_upload.txt"; + $ts_file2="./data/".$keyval."ts_output.txt"; +if(file_exists($ts_file1)) + {?> +<li>3: Test set predictions are being calculated. + <a href="cv_predictions_example.php?My_key=<?php print($keyval);?>">Refresh to update status</a> +<br> +</li> + <?php + } else if(file_exists($ts_file2)) { + ?> +<li>3: <a href="test_set_predictions_example.php?My_key=<?php print($keyval);?>" target='_self'>Test set predictions are available</a></li> + <?php + } else { + ?> + <li>3: <a href="test_set_predictions_example.php?My_key=<?php print($keyval);?>" target='_self'>Make predictions using a test data set</a></li> + <?php + } + ?> +</ul> +</p> +</div> +</body> +</html> diff --git a/sourcecodes/data/example1/Bqxcontinuous_input_orig.txt b/sourcecodes/data/example1/Bqxcontinuous_input_orig.txt new file mode 100644 index 00000000..11f30f63 --- /dev/null +++ b/sourcecodes/data/example1/Bqxcontinuous_input_orig.txt @@ -0,0 +1,201 @@ +Geno1 Geno2 Trait1 Trait2 Trait3 Trait4 Trait5 Trait6 +2 2 0.46259 1.2692 -1.3164 -0.44096 0.5929 -0.75422 +1 1 -0.10011 -0.88834 1.6407 0.99972 0.31288 0.65602 +1 1 -1.0533 -0.55296 1.2715 1.3686 -0.19153 0.37361 +1 2 0.042371 0.13573 -0.72659 -0.66133 0.43157 -1.6715 +1 2 -0.68686 -1.6152 -0.95019 -1.2239 0.12319 -0.79155 +1 1 -0.4558 0.090877 0.94224 1.2354 -0.36356 0.34937 +1 1 0.237 -0.49002 1.8939 1.4399 0.033059 1.3229 +1 2 0.070265 0.22547 -1.4903 -0.069341 -0.16148 -0.01449 +1 1 -0.69146 -0.43461 1.1501 0.21205 -0.18087 0.32746 +1 1 0.31535 -0.9858 0.57816 0.35924 0.12866 1.0553 +2 1 1.2718 0.39314 0.6669 0.90002 -0.30206 1.3376 +1 1 1.1871 -0.45611 0.87227 0.31014 -0.092846 0.81278 +2 1 -1.0168 -0.44286 1.6933 0.72968 0.038808 0.81906 +2 2 -0.25313 0.52468 0.02823 -0.20984 -0.075809 -1.3591 +1 2 -0.58108 -0.3967 -0.11925 -0.61288 0.46778 0.090941 +1 2 -0.88043 -0.28187 -1.1645 -1.2543 -0.28951 -1.039 +1 2 0.54121 0.24395 -1.0043 -1.4483 -0.19839 -2.5407 +2 1 0.47375 1.1319 0.68553 1.035 0.44043 1.3011 +2 1 0.57785 0.69093 1.5941 1.6735 0.19981 0.50708 +1 2 -0.43989 0.0024131 -1.5405 -1.2304 -0.15382 -1.1058 +2 1 0.38035 -0.063535 1.1606 1.3124 -0.38043 0.6277 +1 2 0.70114 -0.41044 -0.39767 -1.5424 0.27477 -0.76183 +1 1 -0.9406 -0.20526 1.3302 1.097 0.16006 1.2988 +1 2 0.52122 0.064793 -0.031492 0.21696 -0.41979 -0.79123 +1 2 -0.53387 -0.71043 -0.52344 -1.5584 -0.09538 -1.5781 +1 1 0.49563 -0.58126 0.7747 1.274 0.19196 0.10624 +2 2 1.1499 1.879 0.43595 0.73474 0.045381 -0.88645 +1 2 0.40705 -0.37647 -0.19815 -1.5366 0.37167 -0.10553 +2 2 0.62526 0.043371 -0.64449 -0.44076 -0.4318 -0.91807 +1 1 -0.61788 -0.62414 0.3169 0.85091 -0.10135 0.79065 +1 1 0.18491 -1.5226 1.1149 0.75046 0.25948 0.42431 +2 2 0.86063 0.92883 -1.1584 -0.099858 -0.55095 -0.064129 +1 2 -0.28946 0.0057533 -0.95703 -0.44018 0.084268 -0.23718 +1 1 -0.073096 0.16452 1.4444 1.1452 0.46025 0.30452 +1 1 0.15637 -0.73137 0.585 -0.046911 0.43881 1.2888 +1 2 0.081142 -0.63691 -0.14883 0.66593 -0.13479 -0.22207 +1 1 0.10876 -0.23383 1.8314 1.3282 0.4362 0.90139 +1 2 -1.0582 -0.97152 -0.57118 -1.2617 0.17115 -0.060679 +2 2 -0.47421 -0.56819 -0.38775 0.035215 0.51982 -1.6309 +2 2 -0.10242 0.8127 0.41773 -1.1308 -0.30719 -0.80758 +1 1 -0.083462 -0.4565 1.1556 0.3299 0.087362 0.31349 +1 2 -0.98158 0.01727 -1.3281 -1.4474 0.54555 -0.10096 +1 1 -0.80604 -0.19415 1.4986 1.3386 -0.16367 0.68271 +1 1 0.80082 -0.57853 1.0716 0.94015 -0.54114 0.032172 +2 2 2.0456 0.97954 -0.45536 -0.14332 -0.25819 -1.0833 +1 1 -0.30148 0.20623 0.64194 0.76414 -0.59067 0.64326 +1 1 -0.55625 -0.26957 1.8447 1.6568 -0.38077 0.58831 +1 2 0.11898 0.80706 -0.025844 -0.57984 -0.23395 -1.1554 +1 2 -0.095497 -1.0637 -0.92583 -0.57928 0.23695 -0.42992 +2 2 0.066154 0.73037 -0.73622 -0.57047 0.39169 0.40928 +1 1 0.81522 0.11381 0.68971 0.29219 0.037792 0.81502 +1 1 -0.65356 -0.20182 0.92089 0.92298 -0.5417 0.49215 +1 1 -0.90826 -0.10979 1.3847 0.75954 -0.20255 0.32975 +1 2 -0.25671 -1.1903 -1.4241 -1.6058 -0.062549 -1.3981 +2 2 -1.8038 -1.4801 -0.94121 -1.6244 0.4817 -0.0029469 +1 2 0.12651 0.028719 -1.5818 -1.0266 0.19779 -0.36357 +1 1 -1.0658 -0.58443 0.68956 0.35467 0.11177 1.5243 +1 2 0.14729 -0.15111 -0.027639 -0.2899 0.11533 -0.60305 +2 2 -0.76889 0.87161 -0.83556 -1.1777 -0.21878 -0.98527 +2 2 0.12252 0.49068 -0.2557 -1.5816 0.25332 -0.78715 +1 1 -0.40287 0.26456 0.62208 0.60909 0.36074 0.092703 +2 1 -0.78301 1.4641 1.3162 1.9448 -0.10841 0.9618 +1 2 -0.25018 -0.32797 -1.113 -1.6123 0.6272 -1.2718 +2 1 0.15804 -0.18147 2.4571 0.59504 -0.34056 0.8691 +2 1 -0.582 0.25738 1.4075 0.92251 -0.40889 0.66381 +1 1 -0.26827 0.58632 0.51883 1.5745 -0.13818 1.0526 +1 2 0.13453 0.18218 -0.51676 -0.54166 -0.36636 -1.206 +2 1 1.1502 0.36164 1.9983 1.0809 0.11272 0.67683 +1 2 0.27812 0.46559 -1.6109 -0.91039 0.3803 -0.71802 +2 1 0.15292 0.61921 0.71009 1.3063 -0.35819 0.8661 +1 2 0.19902 0.48986 -1.4026 -0.8495 0.47158 0.0622 +2 1 0.4838 1.1096 1.4392 1.1438 0.34739 0.084004 +1 1 -0.63609 -0.35105 0.63581 1.1939 -0.062938 0.91353 +1 2 0.64203 -0.5095 -1.7792 -0.88803 0.43482 -0.66314 +1 1 -0.18434 -0.48157 0.69942 0.56942 -0.019967 0.50506 +1 1 0.10168 -1.0928 1.2144 0.28313 0.22159 0.54058 +1 1 -0.18578 -0.45336 1.5468 0.99679 0.11821 1.0476 +1 2 -0.60607 -1.1275 -0.90963 -0.69014 -0.33163 -1.2734 +1 1 -0.35353 -0.42708 0.78989 0.14094 -0.056632 0.80598 +1 1 -0.020221 -1.1235 1.9782 -0.041281 0.19857 1.2488 +1 1 1.2346 -0.37121 1.3325 1.1237 -0.027458 1.0044 +2 2 -0.54489 1.6812 -0.59836 -0.012441 0.41243 -0.58835 +2 1 -0.029577 2.1707 1.3285 1.2109 0.29684 0.90646 +2 2 0.70774 1.0606 -1.3996 -0.020914 -0.60955 -1.2187 +2 1 0.07926 0.52862 1.3994 0.54549 0.55303 0.16155 +1 1 0.041856 -0.92023 0.87269 -0.66601 -0.15945 0.1004 +1 2 0.17665 0.31945 -1.7756 -0.60442 0.020525 -1.0625 +1 1 -0.090238 -0.65111 0.56993 -0.4117 -0.19486 -0.18849 +1 2 0.059166 -0.47194 -0.69068 -0.41022 0.25867 -0.057175 +1 2 0.10473 0.66887 0.082035 -0.55975 -0.28439 -1.468 +1 1 -0.20937 -0.36621 0.09609 0.28164 0.24673 -0.11107 +1 2 -1.2678 0.22369 -0.42201 -0.70103 0.075915 -1.3347 +1 2 -0.35467 0.11166 -0.42144 -0.095223 -0.29936 -0.68322 +2 2 0.84875 1.24 -0.81217 0.084034 -0.32224 -1.6241 +2 1 -0.45939 1.3208 0.97993 1.2991 -0.015791 1.487 +1 2 -0.42254 -0.57928 -0.58529 -2.2375 0.51999 -0.79909 +2 1 0.32092 -0.13796 0.67098 0.24639 -0.36066 -0.032948 +1 2 -1.2408 -0.94836 0.026276 -0.37981 -0.02237 -0.38777 +2 2 0.20959 2.1466 -1.7027 -1.3169 -0.16515 -1.046 +2 2 -0.10482 1.3773 -1.2998 -0.014223 0.34065 -0.35362 +1 2 -0.66188 -1.2477 -0.62084 0.27682 0.1674 -0.8918 +1 1 -0.97246 -0.73017 1.3843 1.5549 0.1067 0.85754 +1 1 0.74567 -0.032694 1.1153 0.97318 -0.0033905 0.85059 +2 2 0.29324 -0.090608 -0.4945 -1.0484 -0.14987 -1.0141 +2 1 -0.86818 0.44948 1.8531 0.51896 -0.021141 1.8486 +1 2 0.362 -0.29749 -0.66525 0.21709 -0.15594 -1.4087 +1 2 -0.17675 0.36465 -0.45423 -1.262 0.22968 -1.246 +1 2 -0.34633 -0.16067 -1.2216 -1.3019 -0.040891 -1.2935 +1 2 0.44608 -0.57732 0.25606 -1.1664 0.54705 -0.19859 +1 2 0.45398 -0.55214 -0.33433 -0.085418 -0.10094 -0.48509 +1 2 0.12407 0.022419 -1.0312 -0.47727 0.20924 -1.2961 +1 1 -0.76644 -1.1794 1.2345 0.84756 0.1532 0.77648 +1 2 -0.10329 -0.53768 -0.67677 -0.58708 -0.014634 -0.036347 +1 1 0.2378 0.15372 0.49652 0.29193 0.19047 1.152 +1 2 0.024605 -0.38937 -0.89907 -0.42106 0.16921 -0.80893 +1 2 0.28812 0.26265 -0.94234 -0.88527 -0.49803 0.48254 +1 1 0.85086 0.11783 1.5014 1.2382 0.24441 1.3649 +2 2 0.86172 0.14894 -0.4846 -1.3488 -0.41844 -1.1372 +1 2 0.67971 -0.27488 -0.50687 -0.79153 -0.093399 -1.391 +1 1 -0.91977 -0.66099 0.5801 0.46587 -0.2263 1.43 +1 2 0.88213 -0.48674 -0.42406 -1.2762 0.28981 -1.0813 +2 1 -0.36583 0.51518 1.4491 1.4995 -0.073755 1.1218 +1 1 -0.54006 -0.59443 0.81263 0.65809 -0.15621 1.2508 +2 2 1.2125 -0.012648 -0.92657 -0.81972 -0.1536 -1.0176 +1 2 0.42493 0.34558 -1.7672 -1.3503 -0.045928 0.37449 +1 1 0.17097 -0.86593 -0.13424 1.0257 0.058014 0.91044 +2 1 -1.393 0.5338 1.8514 2.291 0.15305 0.30028 +1 1 -0.58552 -1.5337 1.5133 0.9976 0.64638 1.4428 +1 2 0.046272 -0.56387 -0.86063 -1.0462 0.014457 -1.3038 +1 2 0.34933 -0.16796 -0.27854 -0.27327 -0.0040928 -0.17912 +1 1 -1.0672 0.3979 1.208 0.50111 -0.013978 0.015097 +1 2 0.31052 -0.46723 -1.1237 0.59267 0.30978 -1.0169 +1 2 -0.55337 -0.42776 -0.12612 -0.41838 -0.56558 -0.58189 +2 2 0.3925 0.15644 -0.72963 -0.66601 -0.10837 -0.27787 +1 2 -0.48513 -1.4119 -0.16889 -0.19646 -0.068098 -0.084247 +2 2 0.16692 1.5447 -1.3064 -1.3338 -0.25668 -0.48832 +1 2 -0.36092 0.31518 -0.44815 -1.4019 -0.47505 -0.37187 +1 1 -1.8192 -0.57745 1.1304 0.262 -0.3595 0.58577 +1 1 -0.065383 0.07156 1.4931 2.3215 0.85149 1.4585 +2 1 -1.119 0.70896 1.0498 0.74334 0.75838 1.6107 +2 2 -0.17682 -0.21029 -0.74465 -0.83806 0.10827 -1.2829 +1 2 0.69834 -0.082402 0.64008 -0.83119 -0.26766 0.36961 +2 2 -0.28266 1.1929 -0.15174 0.098554 -0.33989 -0.6376 +2 2 1.5369 1.8434 0.0030761 -0.59703 0.14497 -1.5165 +1 2 0.35023 -0.28475 -0.93594 -1.0937 -0.46614 -2.188 +2 1 0.62308 1.0873 -0.0037182 0.86847 -0.48699 -0.10105 +1 1 -1.0408 -0.99866 2.0799 1.1634 0.092516 0.30401 +1 1 -0.87125 -0.88987 1.0278 1.0157 -0.23725 1.2377 +1 2 -0.020591 -0.03398 -0.024834 -1.3588 -0.045961 -0.89693 +1 1 0.9213 -0.57037 1.044 1.2994 0.046517 0.66563 +1 2 -0.87288 -0.96382 -0.704 -1.2184 0.046903 -0.30008 +1 2 0.77586 -0.34168 -0.09867 -0.37744 -0.24309 -0.13441 +2 1 0.19521 0.67595 1.4533 1.5115 0.19553 0.79596 +2 1 -1.3273 1.0891 1.2544 0.98928 0.045725 0.54963 +2 2 0.59176 0.65915 -0.84578 -0.080229 -0.26961 0.24045 +1 2 -0.66958 -1.042 -1.2138 -0.7612 -0.22775 -0.40062 +1 2 1.1154 -0.57069 -0.6592 -2.1961 -0.013175 0.46007 +1 2 -0.5254 0.0031225 -0.77758 0.8169 0.13224 -0.65572 +2 1 0.24551 1.5078 0.10719 1.1454 0.70578 0.59051 +1 2 0.29875 -0.11455 -1.0497 -0.77881 0.080708 -0.48337 +1 1 -0.1047 0.011628 1.2504 0.41776 -0.20102 1.2252 +1 2 0.44808 -0.8165 -0.080134 -0.49618 0.051011 -0.71722 +2 1 2.0365 1.5592 1.3257 1.2472 -0.47899 0.10943 +1 1 -0.16507 -0.66011 0.98739 0.58519 0.245 -0.43277 +1 2 -0.028366 -0.16961 -1.3266 0.14248 -0.24634 -1.1154 +2 1 0.92842 1.8842 1.3169 1.0358 -0.20988 0.88021 +2 2 0.33158 0.32463 -0.50924 0.40233 0.54391 -0.24309 +1 2 1.2555 0.1928 -0.487 0.048779 -0.23483 -1.477 +2 1 0.75021 0.85943 -0.2323 0.10748 -0.68906 0.84276 +2 2 0.6297 1.7397 -1.6136 -0.43268 -0.21442 -0.77462 +2 1 0.53168 1.0807 1.0853 0.62304 0.44036 0.48087 +1 2 -0.31256 -0.69771 -0.88556 -1.333 0.038614 -1.5744 +1 2 -0.039695 -0.52447 0.91401 -0.93272 0.53434 -0.080746 +2 1 -0.16596 0.56821 0.76008 0.45442 0.10286 0.6539 +1 2 -0.4331 -0.89669 -1.3097 -1.2157 0.1065 -0.8512 +1 2 -0.34708 -0.51457 -1.012 -0.39437 -0.55374 -1.144 +2 2 0.024082 0.7128 -1.3702 -1.4492 -0.10228 -0.59071 +1 2 -0.0037109 -0.68845 -0.649 -0.91581 0.066805 -0.98583 +2 1 0.68706 0.067424 0.87139 0.7938 -0.099645 1.529 +2 2 -0.31183 0.57814 -0.80815 -0.66724 -0.31919 -0.61319 +1 2 -0.11153 -0.6246 -0.27979 -0.18363 0.83639 0.014919 +2 2 0.20406 1.5838 -0.96334 -1.1228 -0.17808 -1.2123 +2 2 -0.1134 0.63358 -0.53321 -0.84276 -0.27657 -0.36992 +1 2 0.25517 0.67006 -0.1349 0.18275 0.40982 -0.62487 +1 1 -1.2684 0.31042 0.91155 0.66143 0.2483 -0.12434 +1 1 -0.97542 -0.85419 0.7663 0.16362 -0.18737 0.67266 +1 2 -0.043882 -0.62746 -0.82816 -0.40626 -0.051048 -0.61297 +1 1 0.59605 -0.45852 1.2962 0.78156 -0.48154 0.17778 +2 2 -0.06266 1.1144 -0.80524 -0.3189 -0.16038 -0.96372 +1 2 -1.1821 1.0798 -1.3407 -0.52643 0.12458 -0.7871 +2 2 0.59446 0.89186 -0.97856 -0.64658 0.2712 -1.5538 +1 2 0.15067 0.41827 -1.0487 -1.0551 0.19143 -1.4537 +1 2 -1.073 0.022587 -1.7088 -1.3777 0.1964 -0.84025 +2 1 0.20928 1.8026 1.2073 2.78 0.15131 0.3448 +1 2 -1.1317 -0.6359 -0.70457 -1.676 -0.22886 -0.58769 +1 1 -0.039428 -0.58746 0.56 0.7896 -0.052581 0.99511 +1 2 0.55023 -0.20403 0.138 -0.70518 0.66927 -0.28861 +2 2 0.57423 1.1886 0.092876 0.025677 -0.41099 -1.2858 +2 2 -0.14179 1.5827 -0.94328 0.7703 -0.43967 -0.50448 +2 2 0.14666 1.0492 -0.0030259 -0.62418 -0.087515 -0.048386 diff --git a/sourcecodes/data/example2/hQGcontinuous_input_orig.txt b/sourcecodes/data/example2/hQGcontinuous_input_orig.txt new file mode 100644 index 00000000..11f30f63 --- /dev/null +++ b/sourcecodes/data/example2/hQGcontinuous_input_orig.txt @@ -0,0 +1,201 @@ +Geno1 Geno2 Trait1 Trait2 Trait3 Trait4 Trait5 Trait6 +2 2 0.46259 1.2692 -1.3164 -0.44096 0.5929 -0.75422 +1 1 -0.10011 -0.88834 1.6407 0.99972 0.31288 0.65602 +1 1 -1.0533 -0.55296 1.2715 1.3686 -0.19153 0.37361 +1 2 0.042371 0.13573 -0.72659 -0.66133 0.43157 -1.6715 +1 2 -0.68686 -1.6152 -0.95019 -1.2239 0.12319 -0.79155 +1 1 -0.4558 0.090877 0.94224 1.2354 -0.36356 0.34937 +1 1 0.237 -0.49002 1.8939 1.4399 0.033059 1.3229 +1 2 0.070265 0.22547 -1.4903 -0.069341 -0.16148 -0.01449 +1 1 -0.69146 -0.43461 1.1501 0.21205 -0.18087 0.32746 +1 1 0.31535 -0.9858 0.57816 0.35924 0.12866 1.0553 +2 1 1.2718 0.39314 0.6669 0.90002 -0.30206 1.3376 +1 1 1.1871 -0.45611 0.87227 0.31014 -0.092846 0.81278 +2 1 -1.0168 -0.44286 1.6933 0.72968 0.038808 0.81906 +2 2 -0.25313 0.52468 0.02823 -0.20984 -0.075809 -1.3591 +1 2 -0.58108 -0.3967 -0.11925 -0.61288 0.46778 0.090941 +1 2 -0.88043 -0.28187 -1.1645 -1.2543 -0.28951 -1.039 +1 2 0.54121 0.24395 -1.0043 -1.4483 -0.19839 -2.5407 +2 1 0.47375 1.1319 0.68553 1.035 0.44043 1.3011 +2 1 0.57785 0.69093 1.5941 1.6735 0.19981 0.50708 +1 2 -0.43989 0.0024131 -1.5405 -1.2304 -0.15382 -1.1058 +2 1 0.38035 -0.063535 1.1606 1.3124 -0.38043 0.6277 +1 2 0.70114 -0.41044 -0.39767 -1.5424 0.27477 -0.76183 +1 1 -0.9406 -0.20526 1.3302 1.097 0.16006 1.2988 +1 2 0.52122 0.064793 -0.031492 0.21696 -0.41979 -0.79123 +1 2 -0.53387 -0.71043 -0.52344 -1.5584 -0.09538 -1.5781 +1 1 0.49563 -0.58126 0.7747 1.274 0.19196 0.10624 +2 2 1.1499 1.879 0.43595 0.73474 0.045381 -0.88645 +1 2 0.40705 -0.37647 -0.19815 -1.5366 0.37167 -0.10553 +2 2 0.62526 0.043371 -0.64449 -0.44076 -0.4318 -0.91807 +1 1 -0.61788 -0.62414 0.3169 0.85091 -0.10135 0.79065 +1 1 0.18491 -1.5226 1.1149 0.75046 0.25948 0.42431 +2 2 0.86063 0.92883 -1.1584 -0.099858 -0.55095 -0.064129 +1 2 -0.28946 0.0057533 -0.95703 -0.44018 0.084268 -0.23718 +1 1 -0.073096 0.16452 1.4444 1.1452 0.46025 0.30452 +1 1 0.15637 -0.73137 0.585 -0.046911 0.43881 1.2888 +1 2 0.081142 -0.63691 -0.14883 0.66593 -0.13479 -0.22207 +1 1 0.10876 -0.23383 1.8314 1.3282 0.4362 0.90139 +1 2 -1.0582 -0.97152 -0.57118 -1.2617 0.17115 -0.060679 +2 2 -0.47421 -0.56819 -0.38775 0.035215 0.51982 -1.6309 +2 2 -0.10242 0.8127 0.41773 -1.1308 -0.30719 -0.80758 +1 1 -0.083462 -0.4565 1.1556 0.3299 0.087362 0.31349 +1 2 -0.98158 0.01727 -1.3281 -1.4474 0.54555 -0.10096 +1 1 -0.80604 -0.19415 1.4986 1.3386 -0.16367 0.68271 +1 1 0.80082 -0.57853 1.0716 0.94015 -0.54114 0.032172 +2 2 2.0456 0.97954 -0.45536 -0.14332 -0.25819 -1.0833 +1 1 -0.30148 0.20623 0.64194 0.76414 -0.59067 0.64326 +1 1 -0.55625 -0.26957 1.8447 1.6568 -0.38077 0.58831 +1 2 0.11898 0.80706 -0.025844 -0.57984 -0.23395 -1.1554 +1 2 -0.095497 -1.0637 -0.92583 -0.57928 0.23695 -0.42992 +2 2 0.066154 0.73037 -0.73622 -0.57047 0.39169 0.40928 +1 1 0.81522 0.11381 0.68971 0.29219 0.037792 0.81502 +1 1 -0.65356 -0.20182 0.92089 0.92298 -0.5417 0.49215 +1 1 -0.90826 -0.10979 1.3847 0.75954 -0.20255 0.32975 +1 2 -0.25671 -1.1903 -1.4241 -1.6058 -0.062549 -1.3981 +2 2 -1.8038 -1.4801 -0.94121 -1.6244 0.4817 -0.0029469 +1 2 0.12651 0.028719 -1.5818 -1.0266 0.19779 -0.36357 +1 1 -1.0658 -0.58443 0.68956 0.35467 0.11177 1.5243 +1 2 0.14729 -0.15111 -0.027639 -0.2899 0.11533 -0.60305 +2 2 -0.76889 0.87161 -0.83556 -1.1777 -0.21878 -0.98527 +2 2 0.12252 0.49068 -0.2557 -1.5816 0.25332 -0.78715 +1 1 -0.40287 0.26456 0.62208 0.60909 0.36074 0.092703 +2 1 -0.78301 1.4641 1.3162 1.9448 -0.10841 0.9618 +1 2 -0.25018 -0.32797 -1.113 -1.6123 0.6272 -1.2718 +2 1 0.15804 -0.18147 2.4571 0.59504 -0.34056 0.8691 +2 1 -0.582 0.25738 1.4075 0.92251 -0.40889 0.66381 +1 1 -0.26827 0.58632 0.51883 1.5745 -0.13818 1.0526 +1 2 0.13453 0.18218 -0.51676 -0.54166 -0.36636 -1.206 +2 1 1.1502 0.36164 1.9983 1.0809 0.11272 0.67683 +1 2 0.27812 0.46559 -1.6109 -0.91039 0.3803 -0.71802 +2 1 0.15292 0.61921 0.71009 1.3063 -0.35819 0.8661 +1 2 0.19902 0.48986 -1.4026 -0.8495 0.47158 0.0622 +2 1 0.4838 1.1096 1.4392 1.1438 0.34739 0.084004 +1 1 -0.63609 -0.35105 0.63581 1.1939 -0.062938 0.91353 +1 2 0.64203 -0.5095 -1.7792 -0.88803 0.43482 -0.66314 +1 1 -0.18434 -0.48157 0.69942 0.56942 -0.019967 0.50506 +1 1 0.10168 -1.0928 1.2144 0.28313 0.22159 0.54058 +1 1 -0.18578 -0.45336 1.5468 0.99679 0.11821 1.0476 +1 2 -0.60607 -1.1275 -0.90963 -0.69014 -0.33163 -1.2734 +1 1 -0.35353 -0.42708 0.78989 0.14094 -0.056632 0.80598 +1 1 -0.020221 -1.1235 1.9782 -0.041281 0.19857 1.2488 +1 1 1.2346 -0.37121 1.3325 1.1237 -0.027458 1.0044 +2 2 -0.54489 1.6812 -0.59836 -0.012441 0.41243 -0.58835 +2 1 -0.029577 2.1707 1.3285 1.2109 0.29684 0.90646 +2 2 0.70774 1.0606 -1.3996 -0.020914 -0.60955 -1.2187 +2 1 0.07926 0.52862 1.3994 0.54549 0.55303 0.16155 +1 1 0.041856 -0.92023 0.87269 -0.66601 -0.15945 0.1004 +1 2 0.17665 0.31945 -1.7756 -0.60442 0.020525 -1.0625 +1 1 -0.090238 -0.65111 0.56993 -0.4117 -0.19486 -0.18849 +1 2 0.059166 -0.47194 -0.69068 -0.41022 0.25867 -0.057175 +1 2 0.10473 0.66887 0.082035 -0.55975 -0.28439 -1.468 +1 1 -0.20937 -0.36621 0.09609 0.28164 0.24673 -0.11107 +1 2 -1.2678 0.22369 -0.42201 -0.70103 0.075915 -1.3347 +1 2 -0.35467 0.11166 -0.42144 -0.095223 -0.29936 -0.68322 +2 2 0.84875 1.24 -0.81217 0.084034 -0.32224 -1.6241 +2 1 -0.45939 1.3208 0.97993 1.2991 -0.015791 1.487 +1 2 -0.42254 -0.57928 -0.58529 -2.2375 0.51999 -0.79909 +2 1 0.32092 -0.13796 0.67098 0.24639 -0.36066 -0.032948 +1 2 -1.2408 -0.94836 0.026276 -0.37981 -0.02237 -0.38777 +2 2 0.20959 2.1466 -1.7027 -1.3169 -0.16515 -1.046 +2 2 -0.10482 1.3773 -1.2998 -0.014223 0.34065 -0.35362 +1 2 -0.66188 -1.2477 -0.62084 0.27682 0.1674 -0.8918 +1 1 -0.97246 -0.73017 1.3843 1.5549 0.1067 0.85754 +1 1 0.74567 -0.032694 1.1153 0.97318 -0.0033905 0.85059 +2 2 0.29324 -0.090608 -0.4945 -1.0484 -0.14987 -1.0141 +2 1 -0.86818 0.44948 1.8531 0.51896 -0.021141 1.8486 +1 2 0.362 -0.29749 -0.66525 0.21709 -0.15594 -1.4087 +1 2 -0.17675 0.36465 -0.45423 -1.262 0.22968 -1.246 +1 2 -0.34633 -0.16067 -1.2216 -1.3019 -0.040891 -1.2935 +1 2 0.44608 -0.57732 0.25606 -1.1664 0.54705 -0.19859 +1 2 0.45398 -0.55214 -0.33433 -0.085418 -0.10094 -0.48509 +1 2 0.12407 0.022419 -1.0312 -0.47727 0.20924 -1.2961 +1 1 -0.76644 -1.1794 1.2345 0.84756 0.1532 0.77648 +1 2 -0.10329 -0.53768 -0.67677 -0.58708 -0.014634 -0.036347 +1 1 0.2378 0.15372 0.49652 0.29193 0.19047 1.152 +1 2 0.024605 -0.38937 -0.89907 -0.42106 0.16921 -0.80893 +1 2 0.28812 0.26265 -0.94234 -0.88527 -0.49803 0.48254 +1 1 0.85086 0.11783 1.5014 1.2382 0.24441 1.3649 +2 2 0.86172 0.14894 -0.4846 -1.3488 -0.41844 -1.1372 +1 2 0.67971 -0.27488 -0.50687 -0.79153 -0.093399 -1.391 +1 1 -0.91977 -0.66099 0.5801 0.46587 -0.2263 1.43 +1 2 0.88213 -0.48674 -0.42406 -1.2762 0.28981 -1.0813 +2 1 -0.36583 0.51518 1.4491 1.4995 -0.073755 1.1218 +1 1 -0.54006 -0.59443 0.81263 0.65809 -0.15621 1.2508 +2 2 1.2125 -0.012648 -0.92657 -0.81972 -0.1536 -1.0176 +1 2 0.42493 0.34558 -1.7672 -1.3503 -0.045928 0.37449 +1 1 0.17097 -0.86593 -0.13424 1.0257 0.058014 0.91044 +2 1 -1.393 0.5338 1.8514 2.291 0.15305 0.30028 +1 1 -0.58552 -1.5337 1.5133 0.9976 0.64638 1.4428 +1 2 0.046272 -0.56387 -0.86063 -1.0462 0.014457 -1.3038 +1 2 0.34933 -0.16796 -0.27854 -0.27327 -0.0040928 -0.17912 +1 1 -1.0672 0.3979 1.208 0.50111 -0.013978 0.015097 +1 2 0.31052 -0.46723 -1.1237 0.59267 0.30978 -1.0169 +1 2 -0.55337 -0.42776 -0.12612 -0.41838 -0.56558 -0.58189 +2 2 0.3925 0.15644 -0.72963 -0.66601 -0.10837 -0.27787 +1 2 -0.48513 -1.4119 -0.16889 -0.19646 -0.068098 -0.084247 +2 2 0.16692 1.5447 -1.3064 -1.3338 -0.25668 -0.48832 +1 2 -0.36092 0.31518 -0.44815 -1.4019 -0.47505 -0.37187 +1 1 -1.8192 -0.57745 1.1304 0.262 -0.3595 0.58577 +1 1 -0.065383 0.07156 1.4931 2.3215 0.85149 1.4585 +2 1 -1.119 0.70896 1.0498 0.74334 0.75838 1.6107 +2 2 -0.17682 -0.21029 -0.74465 -0.83806 0.10827 -1.2829 +1 2 0.69834 -0.082402 0.64008 -0.83119 -0.26766 0.36961 +2 2 -0.28266 1.1929 -0.15174 0.098554 -0.33989 -0.6376 +2 2 1.5369 1.8434 0.0030761 -0.59703 0.14497 -1.5165 +1 2 0.35023 -0.28475 -0.93594 -1.0937 -0.46614 -2.188 +2 1 0.62308 1.0873 -0.0037182 0.86847 -0.48699 -0.10105 +1 1 -1.0408 -0.99866 2.0799 1.1634 0.092516 0.30401 +1 1 -0.87125 -0.88987 1.0278 1.0157 -0.23725 1.2377 +1 2 -0.020591 -0.03398 -0.024834 -1.3588 -0.045961 -0.89693 +1 1 0.9213 -0.57037 1.044 1.2994 0.046517 0.66563 +1 2 -0.87288 -0.96382 -0.704 -1.2184 0.046903 -0.30008 +1 2 0.77586 -0.34168 -0.09867 -0.37744 -0.24309 -0.13441 +2 1 0.19521 0.67595 1.4533 1.5115 0.19553 0.79596 +2 1 -1.3273 1.0891 1.2544 0.98928 0.045725 0.54963 +2 2 0.59176 0.65915 -0.84578 -0.080229 -0.26961 0.24045 +1 2 -0.66958 -1.042 -1.2138 -0.7612 -0.22775 -0.40062 +1 2 1.1154 -0.57069 -0.6592 -2.1961 -0.013175 0.46007 +1 2 -0.5254 0.0031225 -0.77758 0.8169 0.13224 -0.65572 +2 1 0.24551 1.5078 0.10719 1.1454 0.70578 0.59051 +1 2 0.29875 -0.11455 -1.0497 -0.77881 0.080708 -0.48337 +1 1 -0.1047 0.011628 1.2504 0.41776 -0.20102 1.2252 +1 2 0.44808 -0.8165 -0.080134 -0.49618 0.051011 -0.71722 +2 1 2.0365 1.5592 1.3257 1.2472 -0.47899 0.10943 +1 1 -0.16507 -0.66011 0.98739 0.58519 0.245 -0.43277 +1 2 -0.028366 -0.16961 -1.3266 0.14248 -0.24634 -1.1154 +2 1 0.92842 1.8842 1.3169 1.0358 -0.20988 0.88021 +2 2 0.33158 0.32463 -0.50924 0.40233 0.54391 -0.24309 +1 2 1.2555 0.1928 -0.487 0.048779 -0.23483 -1.477 +2 1 0.75021 0.85943 -0.2323 0.10748 -0.68906 0.84276 +2 2 0.6297 1.7397 -1.6136 -0.43268 -0.21442 -0.77462 +2 1 0.53168 1.0807 1.0853 0.62304 0.44036 0.48087 +1 2 -0.31256 -0.69771 -0.88556 -1.333 0.038614 -1.5744 +1 2 -0.039695 -0.52447 0.91401 -0.93272 0.53434 -0.080746 +2 1 -0.16596 0.56821 0.76008 0.45442 0.10286 0.6539 +1 2 -0.4331 -0.89669 -1.3097 -1.2157 0.1065 -0.8512 +1 2 -0.34708 -0.51457 -1.012 -0.39437 -0.55374 -1.144 +2 2 0.024082 0.7128 -1.3702 -1.4492 -0.10228 -0.59071 +1 2 -0.0037109 -0.68845 -0.649 -0.91581 0.066805 -0.98583 +2 1 0.68706 0.067424 0.87139 0.7938 -0.099645 1.529 +2 2 -0.31183 0.57814 -0.80815 -0.66724 -0.31919 -0.61319 +1 2 -0.11153 -0.6246 -0.27979 -0.18363 0.83639 0.014919 +2 2 0.20406 1.5838 -0.96334 -1.1228 -0.17808 -1.2123 +2 2 -0.1134 0.63358 -0.53321 -0.84276 -0.27657 -0.36992 +1 2 0.25517 0.67006 -0.1349 0.18275 0.40982 -0.62487 +1 1 -1.2684 0.31042 0.91155 0.66143 0.2483 -0.12434 +1 1 -0.97542 -0.85419 0.7663 0.16362 -0.18737 0.67266 +1 2 -0.043882 -0.62746 -0.82816 -0.40626 -0.051048 -0.61297 +1 1 0.59605 -0.45852 1.2962 0.78156 -0.48154 0.17778 +2 2 -0.06266 1.1144 -0.80524 -0.3189 -0.16038 -0.96372 +1 2 -1.1821 1.0798 -1.3407 -0.52643 0.12458 -0.7871 +2 2 0.59446 0.89186 -0.97856 -0.64658 0.2712 -1.5538 +1 2 0.15067 0.41827 -1.0487 -1.0551 0.19143 -1.4537 +1 2 -1.073 0.022587 -1.7088 -1.3777 0.1964 -0.84025 +2 1 0.20928 1.8026 1.2073 2.78 0.15131 0.3448 +1 2 -1.1317 -0.6359 -0.70457 -1.676 -0.22886 -0.58769 +1 1 -0.039428 -0.58746 0.56 0.7896 -0.052581 0.99511 +1 2 0.55023 -0.20403 0.138 -0.70518 0.66927 -0.28861 +2 2 0.57423 1.1886 0.092876 0.025677 -0.41099 -1.2858 +2 2 -0.14179 1.5827 -0.94328 0.7703 -0.43967 -0.50448 +2 2 0.14666 1.0492 -0.0030259 -0.62418 -0.087515 -0.048386 diff --git a/sourcecodes/data/example_chl/bWRcontinuous_input_orig.txt b/sourcecodes/data/example_chl/bWRcontinuous_input_orig.txt new file mode 100644 index 00000000..62705bb9 --- /dev/null +++ b/sourcecodes/data/example_chl/bWRcontinuous_input_orig.txt @@ -0,0 +1,42 @@ +Ctrq3 MAS Neutrophil Load Weight +2 0.969230769 3 3.252367514 1 +2 0.925170068 1.6 2.46322088 1.033472803 +1 0.427272727 33.8 4.206610024 0.831372549 +2 0.877835951 8.3 3.764250875 0.967153285 +2 0.914862915 4.4 3.691700208 1.046025105 +2 0.560334528 4.9 2.604550033 0.98046875 +1 0.383073497 13.1 4.273556814 0.812316716 +1 0.101010101 18.6 5.089640217 0.771929825 +1 0.106719368 18.9 4.915125346 0.80994152 +2 0.894736842 2.5 2.691700208 0.995515695 +1 0.067226891 19.8 4.878194228 0.846153846 +2 0.921022067 2.9 4.127428778 1.03875969 +2 0.938701923 0.7 4.366310867 0.984732824 +1 0.658008658 15.7 4.531121115 0.884210526 +2 0.9 4.8 2.604550033 0.913194444 +2 0.790923825 10.4 2.390670213 0.892857143 +1 0.295539033 8.6 4.24137213 0.85840708 +2 0.317757009 12.2 4.449648073 0.889830508 +1 0.032418953 20.2 5.053428044 0.811320755 +1 0.603960396 23.4 4.283775979 0.805460751 +2 0.939351199 3.6 2.349277527 0.952380952 +1 0.978448276 0.4 3.495405563 0.8875 +1 0.1 23.2 4.675613388 0.766101695 +1 0.036363636 32.6 4.938109253 0.828125 +1 0.660247593 9.2 3.826398782 0.921052632 +1 0.078651685 35.8 4.513630383 0.852112676 +1 0.186915888 20.7 5.048247532 0.779761905 +1 0.071578947 35.6 4.574586809 0.797356828 +1 0.239520958 15.4 4.331548761 0.941176471 +1 0.205741627 24.5 5.058547488 0.774193548 +1 0.062300319 13.4 4.594790195 0.832236842 +2 0.599675851 5 4.18178644 0.969348659 +1 0.324246772 13.5 4.252367514 0.858585859 +1 0.87628866 14.2 2.929061124 0.869863014 +1 0.146103896 15.6 4.579726449 0.9 +1 0.257383966 22.5 5.210214148 0.75 +1 0.033333333 31.1 4.632578756 0.718644068 +1 0.29739777 36.1 3.880756445 0.798353909 +2 0.872979215 4.2 4.097465554 0.856756757 +2 0.909221902 4.3 3.650307523 0.976 +1 0.10041841 28.3 4.46322088 0.757462687 diff --git a/sourcecodes/data/example_chr2_spleen/cuLcontinuous_input_orig.txt b/sourcecodes/data/example_chr2_spleen/cuLcontinuous_input_orig.txt new file mode 100644 index 00000000..4b164198 --- /dev/null +++ b/sourcecodes/data/example_chr2_spleen/cuLcontinuous_input_orig.txt @@ -0,0 +1,74 @@ +rs3664317 Oas1a Parp9 Dhx58 Cd1d1 Irf7 Oas3 Pml Mx1 Ifit1 Trim25 Oas1g Pglyrp3 Ifih1 +1 8.34 9.812 8.774 9.79 9.663 8.27 11.036 7.284 8.286 10.395 8.521 6.186 8.83 +1 8.368 9.738 8.566 9.144 9.484 8.818 11.03 6.977 8.294 10.076 8.529 5.968 8.828 +1 8.178 9.57 8.726 9.575 10.106 8.99 10.878 7.205 8.676 10.036 8.61 5.976 9.024 +1 8.116 9.901 8.904 9.959 9.793 8.336 11.105 7.598 8.316 10.292 8.401 5.814 8.836 +2 8.099 9.68 8.876 10.116 9.771 8.379 11.028 7.438 8.541 10.215 8.32 5.917 9.073 +1 8.262 9.59 8.24 10.088 8.938 7.832 10.486 6.752 7.825 9.908 8.196 6.15 8.446 +1 7.915 9.415 8.308 9.707 9.12 8.702 11.102 7.208 8.243 10.034 7.897 6.06 8.892 +2 8.565 10.002 8.96 9.779 10.322 9.24 11.278 7.644 8.893 10.42 8.773 5.914 9.407 +1 8.189 9.774 8.541 9.939 9.134 7.819 10.766 7.122 8.352 10.113 8.492 6.269 9.055 +1 8.476 9.954 8.908 9.476 9.92 8.764 11.134 7.859 8.788 10.17 8.862 6.226 9.17 +2 8.119 9.946 8.876 9.578 10.02 8.734 11.244 7.85 8.838 10.557 8.56 5.98 9.353 +2 8.305 9.713 8.972 9.789 9.839 8.804 10.948 7.682 8.896 10.181 8.854 5.979 9.567 +2 8.654 10 9.306 9.439 10.457 9.223 10.922 7.082 8.942 10.131 9.162 6.01 9.74 +1 8.105 9.748 8.725 10.119 9.782 8.575 11.113 7.63 8.674 10.355 8.59 6.279 8.908 +1 8.247 9.715 8.829 9.646 9.953 9.668 11.112 7.384 9.221 10.19 8.64 6 9.552 +1 8.511 9.994 9.014 9.89 10.266 8.444 10.599 7.331 9.153 10.012 8.837 6.148 9.023 +2 8.947 10.28 9.483 9.398 11.23 9.86 11.324 8.006 9.772 10.524 9.587 5.865 10.067 +1 8.526 9.685 8.921 9.7 10.126 9.373 11.121 7.497 9.003 10.357 8.156 6.334 9.678 +2 8.06 9.745 9.092 9.278 10.231 8.976 10.998 7.578 9.145 10.283 8.611 6.168 9.413 +2 7.93 9.728 8.694 9.512 9.826 9.016 11.276 7.604 8.767 10.378 8.577 5.963 9.264 +2 8.511 9.686 9.014 8.982 10.508 10.108 11.304 7.441 9.133 10.341 9.04 6.2 9.974 +2 8.645 9.997 8.97 9.443 10.393 9.302 11.409 7.785 8.894 10.552 9.051 5.997 9.412 +2 8.293 9.802 9.001 9.524 10.156 9.263 11.212 7.772 8.581 10.433 8.514 6.093 9.177 +1 7.781 9.712 8.97 9.375 10.12 9.484 11.317 7.347 8.972 10.393 8.352 6.193 9.587 +2 8.465 9.88 8.913 9.816 9.965 8.852 11.138 7.537 8.625 10.426 8.617 6.044 9.556 +2 8.657 10.026 9.189 9.691 10.302 9.268 11.194 7.634 9.143 10.378 9.05 6.067 9.679 +2 7.634 9.606 8.36 9.465 8.41 8.605 11.183 6.942 8.174 9.952 7.478 6.09 9.535 +1 7.669 9.494 8.779 9.552 9.362 8.52 11.024 7.131 8.378 10.391 8.114 6.07 8.851 +2 8.618 10.212 9.433 9.672 10.442 9.21 11.328 8.045 9.322 10.5 9.128 5.994 9.656 +2 8.731 10.27 9.342 9.43 10.697 10.117 11.286 7.749 9.734 10.464 9.322 6.156 9.876 +1 7.554 9.524 8.759 9.93 9.52 8.279 10.82 7.32 8.316 10.31 8.186 6.068 9.046 +1 8.262 9.677 8.75 9.444 10.052 8.634 10.888 7.32 8.562 9.893 8.644 6.212 8.918 +1 7.823 9.628 8.66 9.529 9.578 8.736 11.206 7.171 8.408 10.062 8.111 5.838 9.033 +1 8.28 9.572 8.784 9.428 9.862 9.424 11.27 7.288 8.505 10.174 8.642 6.022 9.313 +2 9.09 10.053 9.599 9.469 11.004 9.882 11.436 8.521 9.814 10.562 9.704 6.044 10.061 +1 8.446 9.989 9.297 9.688 10.577 9.129 11.102 7.718 9.484 10.231 9.072 6.17 9.21 +1 8.668 9.858 9.195 9.385 10.695 9.249 11.028 7.765 9.367 10.319 9.179 6.136 9.563 +2 8.574 10.059 9.281 9.233 10.508 9.247 11.145 8.138 9.505 10.402 9.192 5.992 9.848 +2 8.523 10.052 9.131 9.507 10.418 9.413 11.187 7.641 9.304 10.465 9.063 6.095 9.733 +1 7.987 9.748 8.766 9.578 9.781 8.482 11.279 7.52 8.364 10.141 8.207 6.192 9.133 +2 8.466 9.429 8.946 9.395 9.715 9.071 11.388 7.592 8.078 10.32 8.326 6.108 9.021 +1 7.668 9.694 8.493 10.112 9.561 8.394 10.922 7.26 8.19 10.27 7.916 5.892 8.974 +2 8.379 10.037 9.155 9.683 10.281 9.2 10.913 7.173 9.404 10.381 9.097 6.099 9.714 +2 7.805 9.654 8.454 9.198 10.065 9.468 11.217 6.917 8.43 10.459 8.11 6.068 9.068 +1 7.981 9.8 8.553 9.946 9.862 8.901 11.085 7.214 8.393 10.373 8.19 6.05 9.015 +1 7.746 9.688 8.578 9.901 9.358 7.866 10.928 7.354 7.929 10.233 8.066 5.754 8.883 +1 7.997 9.859 8.795 9.867 9.817 8.734 11.109 7.416 8.67 10.247 8.176 6.143 9.081 +1 8.674 9.689 9.06 9.81 10.544 8.995 11.189 7.781 9.219 10.07 8.98 5.992 9.143 +1 8.088 9.49 8.676 9.456 10.184 8.737 10.998 7.222 8.538 10.192 8.441 6.147 8.55 +1 8.001 9.801 8.669 9.977 9.383 8.274 11.055 7.231 7.913 10.272 8.277 5.931 9.009 +2 8.218 9.458 8.781 9.214 9.66 8.87 10.738 7.241 8.289 10.029 8.612 6.125 9.38 +1 7.684 9.56 8.75 10.077 9.686 8.27 11.102 7.206 8.13 10.212 8.07 6.018 8.984 +2 8.326 9.696 8.88 9.714 10.014 9.08 11.055 7.256 8.494 10.054 8.63 6.177 9.162 +2 8.906 10.106 9.412 9.704 11.06 9.854 11.335 7.799 10.103 10.471 9.25 6.033 9.97 +1 8.073 9.793 8.626 9.879 9.262 8.408 10.844 7.108 8.368 9.959 8.261 6.052 8.916 +2 8.527 10.026 9.143 9.244 10.597 9.566 11.108 7.778 9.748 10.351 9.153 6.055 9.698 +2 8.614 10.05 9.202 9.508 10.66 9.63 11.156 7.758 9.789 10.324 9.068 6.15 9.948 +2 8.522 10.158 8.992 9.684 9.992 8.55 11.125 7.914 8.976 10.311 8.574 5.889 9.566 +1 8.086 9.6 8.522 9.544 9.641 8.514 10.99 7.386 8.506 10.194 8.234 6.02 8.736 +1 7.873 9.596 8.452 9.422 9.278 8.509 10.958 7.057 8.081 9.981 7.969 6.136 8.958 +2 8.371 9.99 8.949 9.931 10.195 8.935 10.83 7.694 9.183 10.493 9.124 6.128 9.396 +2 8.476 9.982 9.115 9.639 10.465 9.833 11.105 8.058 9.9 10.351 9.182 6.05 9.884 +1 8.512 9.995 8.846 9.951 9.561 8.558 10.769 7.584 8.901 10.139 8.769 5.959 9.203 +1 8.358 9.858 8.99 9.981 10.123 9.368 10.989 7.463 9.327 9.93 8.54 6.02 9.543 +1 8.23 9.614 8.806 9.919 9.939 9.108 11.184 7.766 8.793 10.174 8.605 5.972 9.068 +2 8.238 9.802 8.926 9.595 10.062 8.77 11.202 7.712 9.131 10.34 8.57 6.05 9.464 +1 8.533 10.108 9.083 10.214 10.514 8.463 11.008 7.356 9.344 10.196 8.736 6.262 9.257 +1 7.866 9.444 8.223 9.865 8.95 8.539 10.935 6.754 7.748 10.177 7.826 6.29 8.716 +2 8.888 10.031 9.158 9.407 10.8 9.547 11.238 7.659 9.602 10.398 9.337 6.028 9.529 +1 8.026 9.682 8.398 9.824 9.202 8.041 10.703 7.322 8.352 10.209 8.196 6.009 9.001 +2 8.974 10.071 9.451 9.348 11.061 9.686 11.255 8.077 10.101 10.323 9.557 6.006 10.072 +1 8.181 9.432 9.045 9.544 10.651 9.18 10.832 7.419 8.742 9.818 8.546 6.33 9.201 +1 8.137 9.676 9.024 9.37 10.206 9.944 10.985 7.226 8.9 10.362 8.918 6.352 9.367 diff --git a/sourcecodes/data/example_sci/Llucontinuous_input_orig.txt b/sourcecodes/data/example_sci/Llucontinuous_input_orig.txt new file mode 100644 index 00000000..aede2ad9 --- /dev/null +++ b/sourcecodes/data/example_sci/Llucontinuous_input_orig.txt @@ -0,0 +1,501 @@ +Genotype Gene3 Gene2 Phenotype Gene1 +2 -1.0008 -0.44837 0.21808 -1.196 +1 -0.29368 -0.53043 -1.0893 -0.10136 +2 0.70835 0.72886 -0.18098 -0.42907 +1 0.63703 0.86428 1.7013 0.1425 +1 -1.2402 -0.69712 -1.7002 -0.71634 +1 -1.1952 0.27155 -0.79413 -1.0965 +2 0.62914 0.94265 1.8385 0.6135 +1 -1.91 -2.379 -3.1094 -1.0924 +2 -0.83436 -0.90968 -1.3598 1.335 +1 0.15685 0.4766 1.2891 -1.3309 +2 0.7047 1.0623 1.9811 1.2821 +1 0.59747 -0.023123 0.88555 -0.8844 +1 -1.0557 -1.5548 -1.3016 -0.77687 +2 1.5206 2.0289 0.90366 1.8089 +1 0.65525 -0.47226 -1.1824 0.41863 +2 -0.39262 0.382 -0.64829 0.40947 +2 0.14966 0.22972 0.33797 0.69647 +1 -1.8836 -0.68534 -0.99941 -0.78961 +1 0.48181 0.01241 1.2145 0.16835 +2 1.4673 2.0438 2.4674 2.5234 +1 -1.3242 -0.80218 -1.6446 -0.31044 +1 -1.2471 -2.0351 -1.0296 -1.937 +1 0.23695 -0.01724 -0.32851 -0.16484 +1 -0.13986 -0.6065 -0.8491 -0.95538 +2 0.90888 1.0365 2.7222 1.3507 +1 -0.30556 -1.1546 -0.86033 -2.2006 +2 0.5391 0.99532 0.96947 1.1575 +2 1.1235 0.37982 0.64439 0.94362 +2 1.7073 1.9303 2.8018 1.9158 +1 -0.20553 -0.074104 -0.50073 -1.0697 +1 -0.27415 0.23076 -0.27564 -0.11286 +1 -1.304 -1.1213 -0.71793 -1.3462 +2 0.54315 0.55846 0.87411 1.2432 +1 -1.0659 -0.38067 -1.4372 -2.0927 +1 0.21278 -1.0115 -1.0984 -0.72751 +1 -2.9061 -1.3118 -3.8372 -2.0448 +2 -0.69608 -0.61145 -1.0037 0.12181 +1 0.66835 0.018886 -1.0081 -1.4165 +1 0.32575 -0.51767 1.0187 -0.40914 +2 0.65837 1.2791 1.8388 2.2906 +2 0.37574 0.21618 -0.89435 1.2643 +1 0.13513 -0.31405 -0.16057 0.77712 +2 0.16054 0.40635 0.036165 1.6374 +1 1.9393 1.5717 2.6922 1.1933 +1 -0.59118 -0.47154 -0.20293 -1.5576 +1 -0.35938 -0.49565 -0.20837 0.61043 +2 -0.57133 0.15921 -0.44158 0.43312 +1 0.31835 0.49002 2.2029 0.17685 +1 -0.0093708 -0.85889 -1.0934 -1.6905 +1 -0.90501 -1.4637 -1.5526 -1.828 +2 0.11531 -0.022781 0.88843 0.8607 +1 0.34978 -0.34306 0.95301 -0.056177 +2 -0.22236 -0.13023 0.37608 0.18027 +1 -0.90103 -0.38393 -1.1513 -0.78153 +2 0.66848 0.81005 1.3945 3.3654 +2 0.10539 0.59781 0.77864 0.63865 +1 -1.15 -1.4531 -2.929 -1.6867 +1 0.20842 -0.0039076 -0.12879 -0.31459 +2 0.52155 1.248 1.0411 1.9656 +2 0.041926 0.86223 1.2222 1.0289 +1 -0.70875 -0.15791 -1.1581 -0.77456 +1 -1.1701 -0.57889 -0.8843 -0.11873 +2 0.98106 1.0805 0.95484 2.1834 +2 0.26676 0.7527 0.61491 1.9024 +1 -0.64765 0.19831 -1.4399 1.3127 +2 0.92209 2.2111 1.208 2.7402 +2 -0.93755 -0.26009 0.54448 0.20265 +2 1.2403 1.8468 1.6169 1.8359 +1 -0.1313 0.14288 -0.48278 -0.96105 +1 -0.7222 -0.25191 -1.2122 -0.59027 +2 -0.57013 -0.061267 -0.5438 0.18234 +1 -1.5355 -1.1998 -2.6613 -0.2634 +2 0.86507 0.60361 1.2411 -0.29711 +1 -0.60117 -0.7424 -0.79575 -0.5736 +1 -0.91776 -1.5669 -2.1735 -0.56602 +2 0.9917 2.3088 1.7993 2.645 +1 0.17017 0.53321 0.84278 -1.4458 +2 -0.22306 0.262 -0.86259 0.87407 +1 -0.42107 -0.69813 -0.48166 -1.009 +1 0.46913 -0.76457 0.11077 -0.21258 +1 0.066036 -0.48665 -0.74847 0.38785 +1 0.16465 -0.57268 0.19043 0.23 +1 -1.2044 -2.2027 -2.9688 -2.5546 +1 -0.3031 -2.0277 -1.3027 -2.6541 +2 -0.20063 0.3886 1.2227 0.84669 +2 -0.23897 0.0036995 -1.4547 0.37173 +1 2.197 0.41411 0.68339 -1.2721 +2 1.9922 2.748 3.0416 3.1268 +1 -1.7922 -1.2233 -3.1352 -0.98514 +2 0.66968 0.81377 1.9112 1.7507 +2 1.048 1.3718 1.5938 1.4847 +1 0.56532 -0.97153 -0.91123 -2.4761 +2 -0.53609 -0.30043 -0.65398 -0.38562 +2 1.0012 1.3344 2.0595 2.8441 +1 -3.4639 -2.4231 -3.9055 -2.3575 +1 0.79272 -0.78962 -0.40706 -1.1306 +1 0.78178 0.32152 0.79399 0.14086 +2 -0.28587 0.20138 0.78238 2.1602 +2 1.4137 1.6184 2.2458 2.1799 +2 1.409 1.6079 2.4053 2.0587 +2 -0.049571 1.1163 2.0792 0.99457 +1 -1.394 -0.67782 -2.2302 -0.33872 +2 0.5374 1.8476 2.205 2.0025 +1 -1.4988 -0.90782 -1.4206 -1.2048 +1 -2.2683 -1.7667 -3.7613 -2.0306 +1 0.5275 -0.34657 0.11355 -0.6761 +1 -1.89 -2.1862 -2.3535 -2.2032 +2 1.4183 2.5108 2.4607 1.7296 +1 -0.19829 0.031868 0.014954 -1.7813 +2 1.9842 2.0081 3.2753 3.6534 +1 0.60225 0.089417 0.37343 -1.396 +2 0.15127 0.55563 -0.099824 1.684 +1 -0.30521 -0.0050244 -0.68635 -0.42167 +2 0.65124 0.2796 -0.22261 1.4011 +1 -0.71925 -1.8908 -2.0898 -1.2222 +2 -0.56741 0.091717 -0.37763 0.40742 +1 -2.8956 -2.2286 -3.4496 -3.429 +2 -0.89598 1.0267 -0.4909 1.1085 +1 -0.94952 -0.7555 -1.795 -0.13335 +2 1.2407 2.0614 2.5452 1.9642 +1 -0.11717 -0.54282 -1.9921 -0.72275 +1 -0.45987 -0.58174 -1.1552 -0.76589 +2 1.4219 1.7052 1.3243 2.0381 +1 0.17284 -1.1866 0.12735 -0.89424 +1 -1.5493 -1.5627 -2.191 -1.4248 +2 -0.52149 0.50488 0.88087 1.9829 +2 -0.073205 0.87222 -0.68612 1.5622 +1 -0.20595 -0.60619 -1.2632 -0.31189 +1 -1.6215 -2.0613 -2.6335 -2.0367 +2 0.91305 1.4897 2.1731 2.2545 +1 1.142 1.8275 1.8053 1.0419 +1 -0.45335 -1.322 -1.3973 -0.48254 +2 0.74114 1.8757 1.4174 2.1017 +1 -0.38344 -0.17813 -0.23266 -0.41796 +2 0.92714 1.7223 2.7582 1.4736 +1 -0.96407 -1.004 -1.3232 -0.72647 +1 -0.17388 -0.55234 -0.16535 -1.1821 +1 -1.4482 -1.0906 -1.9966 -0.2562 +1 -1.5948 -1.656 -2.1184 -1.9089 +1 0.30118 -0.24953 0.3965 -1.2012 +1 0.040955 -1.5321 -0.0067596 -1.8302 +2 -0.47573 0.19062 -0.38082 1.4748 +1 -0.57924 -0.90781 -1.0718 -0.87675 +2 1.2355 1.6025 0.66291 1.3094 +1 -0.85148 -1.0376 -0.35579 -0.84493 +1 0.62128 -0.097245 1.1169 1.1175 +1 -1.0166 -0.95689 -0.54272 -1.0278 +2 2.2273 2.234 3.0504 2.9534 +2 0.39445 0.74964 0.49728 0.40693 +1 -1.0992 -1.0596 -0.34052 -1.6927 +2 -0.87373 -0.044581 -0.87888 -0.87457 +1 -0.17361 -1.0992 -0.61197 -0.52145 +2 -0.81143 -0.23214 0.019331 -0.021054 +2 0.4003 0.84559 1.3177 0.22445 +2 2.4797 2.3692 3.1041 1.2821 +2 -1.2217 0.28611 -0.91875 0.53117 +1 -0.37718 -1.1674 1.1769 -0.7679 +2 0.69641 1.3615 1.2907 1.7631 +1 0.058157 -1.4908 -1.6127 -2.051 +2 -0.10351 -0.26543 -1.1031 1.4271 +2 1.5874 1.159 2.1284 1.6052 +2 0.7304 1.8986 1.8219 2.6148 +2 1.2822 1.2151 1.6436 0.45098 +1 -0.67686 -0.50447 -0.81689 -0.47995 +2 0.099845 0.22575 -0.38467 1.3463 +1 -0.60473 -0.56624 -1.0822 -0.9277 +2 -0.09599 -0.052173 0.60328 0.36281 +1 1.3654 0.15181 1.0298 -1.196 +2 -1.4158 -1.1006 -1.9009 0.73982 +1 -0.035902 -0.11554 0.031789 0.15859 +2 -0.41972 -0.75665 -0.12297 -1.1222 +2 0.5198 1.1791 1.4405 0.74397 +2 0.48739 -0.18437 0.062889 1.33 +1 -0.40637 -0.97335 -1.7407 -1.7785 +2 1.2506 2.1236 2.544 2.21 +1 0.2246 0.14729 0.19402 -0.0184 +1 -2.9787 -2.8634 -3.6482 -3.2628 +2 -0.34778 -0.88344 -0.53681 -0.1392 +2 -1.8429 -1.7447 -1.2394 0.076896 +2 0.19618 1.4064 0.26418 1.4885 +1 1.1131 -0.28387 -0.062115 -0.38574 +2 0.49115 0.78076 1.4226 0.55504 +1 -1.8202 -1.2481 -2.3751 -1.7518 +2 1.2174 2.2183 1.4501 3.6806 +1 -1.9377 -1.6646 -3.3068 -2.1189 +2 0.54181 0.5947 0.58072 0.40033 +1 -0.66287 -0.68746 -0.096024 -1.7397 +1 0.40851 0.30851 -0.17237 -0.50364 +2 0.75742 0.4505 -0.78196 0.44425 +1 -1.4505 0.020384 -0.43303 -0.95328 +2 -0.028847 0.15037 0.5137 0.46568 +2 -0.63541 0.3954 -0.8684 1.5549 +1 0.33942 -0.38445 -0.041492 -1.4867 +2 0.47366 1.145 0.23226 1.7193 +1 0.023382 -0.041247 -0.82666 0.080651 +1 -1.1404 -1.0549 -2.3807 -2.1069 +2 0.33731 1.2985 0.71006 3.2157 +1 1.14 -0.87596 0.068296 -0.74487 +2 -0.049493 0.63 0.61696 0.5656 +1 -0.4566 0.65674 0.031943 0.92164 +2 0.017518 0.38805 0.53672 0.36798 +2 0.48676 0.83957 0.81814 1.0935 +2 2.7892 2.4059 4.9329 2.8726 +1 0.43253 0.11799 1.095 -0.30789 +1 -1.1828 -0.8044 -0.85393 -0.88528 +1 -1.5592 -2.1209 -2.309 -3.1197 +2 -1.2601 -1.2767 -1.6618 -0.50383 +2 2.1516 2.1742 2.8387 1.8793 +2 0.24623 0.69241 -0.010176 0.53935 +1 -0.22259 -0.40572 0.11176 -1.348 +1 -0.50134 -1.5699 0.070888 -1.576 +1 -0.59262 -0.25483 -0.97248 -0.80873 +2 0.59278 2.3224 1.2169 3.7789 +2 1.8088 2.2184 2.3414 2.2607 +1 -1.4547 -0.92385 -2.0514 -1.4636 +1 -1.0861 -0.97609 -1.4805 0.049658 +2 -1.3983 -1.4913 -1.5386 -0.37917 +1 0.39015 -0.60643 0.29969 -1.038 +2 -0.56574 0.93819 0.41397 3.0029 +1 0.33141 0.18418 -0.58313 -0.55312 +1 -1.0672 -1.2348 -1.7643 -1.8829 +1 -2.6167 -2.6369 -2.7652 -3.2899 +2 0.86111 1.9481 1.9289 2.6912 +2 -0.17146 0.59905 -0.32254 0.90592 +1 0.56296 0.22567 0.50046 -0.015986 +1 0.27356 0.014082 0.53515 -1.2915 +2 0.028483 0.74312 0.032785 0.86451 +2 0.45844 1.8271 1.9607 1.5293 +1 -1.0948 -0.81939 -1.3227 -1.7485 +2 -1.9435 -1.416 -2.3622 -0.083073 +2 1.9356 2.3905 3.3874 3.3754 +2 -0.51503 -0.61825 -1.0265 1.0355 +1 -0.069375 -0.38404 0.76998 -1.0565 +1 -0.99145 -1.4551 -0.3469 -1.1237 +2 0.22687 0.42981 -0.57465 1.7352 +1 -0.6192 -0.85621 -1.5754 -2.1116 +2 0.044283 0.22217 -0.46803 0.077448 +2 0.25206 0.75089 2.0777 1.6582 +1 -1.4421 0.36925 -1.3094 1.5023 +2 -0.37483 0.92607 0.66991 1.5735 +2 0.96079 1.4626 2.6634 1.8589 +1 -1.3318 -0.19963 -1.0137 -0.69936 +1 1.7601 1.2466 2.176 0.32938 +1 0.30315 -0.016251 0.51713 -0.89472 +2 -1.4913 -0.70336 -0.91095 0.12156 +2 -0.42001 -0.10023 -0.6748 0.60273 +2 1.3951 2.7444 2.8842 3.5656 +1 1.4232 0.6032 3.5048 1.7782 +1 0.73551 0.75694 1.037 -0.57807 +2 -0.39931 0.58809 -0.4973 0.21019 +2 1.3913 1.8648 1.7568 0.93599 +2 0.80965 0.4027 0.24317 1.9104 +1 -0.51752 1.1244 0.48382 0.33224 +1 0.1481 -0.5792 -0.3214 -0.26037 +1 -1.3533 -0.43213 -0.42417 -0.87353 +2 0.56938 0.99576 0.89716 1.7409 +1 -0.079763 -1.7127 -0.63871 -2.5791 +2 2.0641 2.5514 4.0436 2.7148 +1 -0.19435 -0.15077 0.60547 -1.4134 +2 0.081749 0.54813 0.96427 1.7548 +1 1.8213 0.88012 1.1502 0.10288 +2 -0.36776 1.0119 0.72045 1.4314 +2 -0.013532 0.88042 -0.065303 1.2714 +1 -0.46271 -1.5631 -1.3127 -1.5945 +2 0.32816 0.69476 1.2058 0.95562 +2 1.0995 1.9791 1.6754 2.7251 +2 1.2894 2.0428 2.7797 3.0741 +2 0.086177 0.13431 0.15097 1.1387 +2 1.4238 1.8326 1.452 2.2914 +2 -0.26067 0.085743 0.10703 1.6861 +1 0.8651 0.16132 1.2287 -0.49648 +2 1.6258 2.0722 1.5768 2.692 +2 -0.41045 -0.064344 -1.1639 0.35736 +1 0.87048 0.48066 1.3185 0.56768 +1 -0.059767 0.65175 0.20121 -1.4305 +1 -0.27649 -0.71256 -0.93355 0.12948 +2 0.40298 0.62103 0.38596 1.4175 +2 0.92929 1.4075 2.4664 1.9966 +1 -1.7047 -1.5666 -1.9704 -2.1459 +2 -0.31907 0.39015 -0.094609 0.63235 +2 1.43 2.3977 3.1491 2.2081 +1 -1.6535 -0.62255 -1.1695 -0.61433 +2 -0.22619 -0.15443 0.80091 -0.054849 +2 0.38626 1.6316 0.47058 1.4147 +1 0.14484 -0.64224 0.0082434 -0.86504 +2 1.8557 2.0853 3.4931 3.3653 +2 1.9842 3.3837 3.9431 2.2935 +1 -1.8676 -0.25935 -1.384 -0.46349 +2 1.1631 1.8748 2.8603 1.986 +2 0.28825 0.24785 1.285 0.97497 +1 0.014074 -0.43179 0.47159 -1.5869 +2 0.54993 1.3186 0.45672 1.4753 +1 0.36038 -0.17131 0.38497 0.032798 +2 -0.80787 0.028976 0.37316 -0.44677 +2 -0.28951 0.65841 -0.64075 1.0972 +2 0.55213 0.20033 -0.03155 -0.76611 +2 -0.39724 0.7762 0.84015 0.7553 +1 0.93813 0.87454 1.4003 -1.3907 +2 -0.32578 0.26563 -0.33416 1.6042 +2 0.33084 1.2848 1.0439 0.0011286 +2 -0.38575 0.17469 -0.30238 1.5178 +2 1.3498 1.2703 1.9845 1.5933 +2 0.58348 1.167 1.0504 1.1296 +1 1.082 0.6528 0.81685 -0.23314 +2 2.4742 2.4752 3.1153 2.9547 +2 0.12754 0.025728 -0.058504 0.58213 +2 1.817 2.0622 1.4037 1.1949 +2 0.8552 1.6038 1.0049 2.2411 +1 -1.0052 -1.0198 -0.48341 -2.5176 +1 -1.3895 -1.8934 -2.3298 -1.8805 +2 -1.0276 0.3109 -0.56926 0.026187 +1 -1.3081 -0.57127 -2.0782 -2.0429 +2 0.50882 -0.20697 0.013231 1.1618 +1 -0.9931 -1.3226 -0.98672 -0.47612 +1 0.41926 -0.14847 0.91577 -1.2763 +1 -0.93098 -1.0248 -2.0666 -0.55364 +1 -0.25192 -0.73885 0.073947 -0.4339 +1 -0.6545 -0.21517 -1.3672 -1.5453 +2 1.6327 2.0072 2.554 2.6639 +2 0.57601 -0.3015 0.74417 0.88943 +2 1.2264 1.7475 0.67207 1.0271 +1 0.42271 0.040673 0.80654 -0.83604 +1 -0.67361 -0.91976 -2.2619 -1.3054 +2 0.36815 0.93526 1.3126 1.077 +2 -0.1728 0.32075 0.54531 1.9659 +2 1.8385 2.4279 3.2285 3.4634 +1 -1.4314 -0.89679 -1.154 -1.4032 +2 0.38846 0.05761 1.0422 1.9036 +1 0.80821 -0.15658 -0.62623 -0.68719 +1 -1.302 -1.3887 -2.2708 -2.092 +1 -1.2392 -1.4976 -1.3607 -3.0231 +1 -0.3896 -0.42846 -0.75791 -1.7643 +2 1.5723 1.0907 2.0144 1.5574 +2 0.8587 1.1411 1.1627 1.9495 +2 -0.77478 -0.39283 -0.0099916 0.64003 +2 0.1672 0.63395 0.41181 1.3391 +2 -0.14637 0.26969 0.82956 0.41884 +2 0.14447 -0.10291 -0.287 0.80367 +1 0.18687 -0.27602 0.27575 -0.63094 +2 1.2428 1.5281 1.2243 3.0052 +1 -0.052875 -0.25162 -0.60352 -1.208 +2 0.6821 0.21045 1.2654 -0.013434 +1 0.26358 0.068284 0.22081 0.066436 +2 -0.62892 -0.053397 0.047075 0.74043 +2 -0.78913 -0.2106 -1.804 0.01624 +1 0.22995 -0.80286 1.3801 -0.92733 +1 -1.9684 -1.1444 -1.8 -2.7373 +2 -0.5569 -0.61626 -0.86638 0.4016 +2 0.1115 1.0784 -0.3657 1.3313 +1 -0.64278 -0.82557 -0.24553 -1.5426 +2 0.20989 0.049778 0.14976 -0.17113 +2 0.93007 1.927 1.9457 1.1498 +1 0.26164 0.15551 -0.033813 0.44309 +2 0.73092 1.0348 0.74128 2.4557 +2 -0.35204 0.606 -0.43078 1.2194 +1 -0.16719 0.40172 0.76466 0.31738 +2 0.97519 1.447 1.6576 0.8312 +1 -0.47105 -0.44196 -1.6032 0.68482 +2 -0.60894 -0.70426 -0.46443 0.86476 +2 -0.19328 0.33885 0.7601 0.61242 +2 0.12697 0.76843 0.73746 0.81747 +1 0.031673 -0.68398 -0.5238 -0.6702 +1 -0.93868 0.50393 0.10229 -0.63522 +1 -1.0264 -1.1855 -1.9957 -2.5259 +2 -0.5916 0.44419 0.014831 0.77302 +1 1.0176 0.82793 0.63908 -0.62945 +1 0.76611 0.14394 0.43542 -0.86403 +2 0.58551 0.21427 1.0034 0.50604 +2 -0.34577 -0.40185 -0.61186 -0.40606 +1 -0.77597 -1.1617 -1.8329 -3.1861 +2 0.068959 0.30321 0.76889 0.34588 +1 -1.2576 -1.5157 -1.1779 -0.94907 +1 -0.83648 0.090435 0.56704 -0.53314 +2 0.88421 1.707 2.6335 2.255 +2 0.55861 0.94463 0.9639 0.8637 +1 -0.18064 -1.0746 0.99446 -2.7845 +1 0.76049 0.26843 1.5167 -0.24873 +2 0.35634 -0.24447 -0.97159 0.11146 +2 1.7377 2.5182 2.4327 3.2303 +1 -1.624 -1.42 -3.435 -1.0498 +1 -1.2389 -1.8164 -1.726 -1.1608 +1 1.0074 -1.0969 -0.0682 -2.9043 +2 0.21432 0.54189 0.15421 1.1324 +2 1.5187 2.458 2.1317 3.8317 +2 1.5893 1.9248 3.0454 2.0655 +1 0.35221 1.6454 1.8029 -0.44455 +1 -0.54894 0.55414 0.35949 -1.3991 +2 -1.1614 -0.48362 -0.73735 -0.49564 +2 1.1159 1.0502 1.0648 0.3003 +2 0.96161 2.1506 1.531 2.1461 +1 -1.2411 -1.0381 -1.1269 -1.1484 +1 0.11049 -0.27275 -0.55964 -0.70906 +2 2.2862 2.1313 2.6027 2.2877 +1 -0.64184 -1.1552 -0.63442 -1.8594 +2 1.9075 1.8567 3.8481 1.9532 +1 -0.63126 -0.85427 -0.53335 0.37771 +2 0.59491 1.4425 1.9929 0.98581 +1 1.5669 0.7286 2.3314 -0.25628 +1 -2.1064 -1.9792 -3.209 -1.9161 +2 0.62872 0.51499 0.21648 1.4204 +1 -0.51532 -0.93122 -0.72578 -1.3459 +1 0.041397 -0.61347 -0.034157 -0.054858 +1 -0.72287 -1.1269 -1.7365 -1.4906 +1 -1.8362 -0.24614 -1.2446 -0.088146 +2 0.97014 1.3422 1.5292 0.77185 +1 -1.8502 -1.2924 -1.9175 -2.5133 +2 0.77748 0.89065 1.1444 0.26583 +1 -0.15405 0.089319 0.59477 0.16672 +2 1.3054 2.3544 3.2492 1.6727 +2 0.92409 1.3741 0.79866 2.0506 +2 -0.69943 -0.67926 -1.8186 0.67307 +1 -3.2806 -1.8577 -3.5456 -1.7004 +2 0.74119 1.0011 -0.11293 2.328 +2 0.73779 1.6924 1.7521 1.2604 +1 -1.3683 -1.7765 -1.5974 -2.2288 +2 0.46839 -0.27199 -0.1524 0.88269 +1 -0.73595 -1.4506 -1.408 -1.9886 +2 -0.2289 -0.5663 -2.0807 -1.4869 +2 -1.0052 0.16268 -0.48156 0.014777 +1 -0.10211 0.087625 -1.1098 -1.0203 +2 -0.090896 -0.057038 -0.69817 0.19942 +2 -0.42191 0.14803 -0.32168 0.049687 +2 0.84872 0.59768 1.9205 1.1233 +1 0.029696 -1.4186 -0.39548 -0.029631 +2 2.0013 1.9999 3.0139 1.6432 +2 1.1324 0.89689 -0.1229 0.15109 +2 0.93618 2.4521 1.7229 3.4367 +1 -1.0037 -1.435 -2.2126 -1.9473 +2 -2.2472 -1.296 -2.3762 -1.9611 +2 0.62477 1.5212 1.2814 1.4403 +2 0.17619 0.488 0.38575 0.19632 +1 0.79693 0.15328 -0.26972 -0.45147 +2 1.3618 1.6805 1.2152 2.1905 +2 -0.36075 1.0698 0.38569 2.5707 +1 -0.55325 -0.17572 -1.0232 -1.134 +2 0.9795 1.3777 0.26495 0.23258 +1 -0.92872 -1.2233 -2.1998 -1.9011 +1 0.47029 -0.06201 -0.34515 -0.57857 +1 -2.6597 -1.5144 -3.0038 -1.949 +2 -0.064474 -0.25394 -0.34794 0.76334 +2 0.52259 0.76325 0.93484 0.060827 +1 0.89037 0.68007 0.50459 -0.88464 +2 1.0031 1.3853 1.7313 0.75303 +2 0.6954 1.3692 0.19298 1.6174 +2 -0.14026 1.1774 0.39386 -0.25913 +2 -1.7796 -1.2709 -2.5775 -0.36996 +2 0.41557 1.9905 1.839 1.1327 +1 0.53878 -0.71974 -0.65395 -0.62597 +2 0.22326 1.3888 0.17221 1.2265 +1 -0.12667 -1.1336 -0.67 -3.6161 +2 1.0183 1.5883 2.2784 1.7509 +1 -2.0415 -2.2483 -2.8307 -3.1148 +2 -1.1513 -0.08575 -0.62876 2.164 +1 0.1961 0.075096 1.9551 0.039445 +2 -0.96925 0.12921 -1.2741 1.8371 +1 0.34137 0.086468 1.4716 0.55236 +1 -0.20756 -0.74846 0.65256 -0.7032 +2 1.1736 1.0214 1.258 1.0002 +2 0.48081 1.3275 0.54443 1.2194 +2 -0.45146 0.38298 0.64902 0.90395 +1 0.75519 -1.0627 -0.35778 -1.7689 +1 -1.4308 -1.0998 -1.0094 -0.66361 +1 -0.097019 0.18029 -9.0423e-07 0.59444 +2 1.3769 2.4872 3.2855 0.98727 +2 0.79201 0.76361 0.88459 3.119 +2 2.5125 2.4776 4.6119 3.966 +1 0.57129 -0.93689 -0.20516 -0.42323 +1 -0.91517 -0.25445 -1.3515 -0.99354 +1 0.17456 -0.98904 -0.49643 -0.8997 +1 -2.2724 -1.6869 -3.8034 -2.0882 +2 -1.8188 -0.57721 -2.4386 0.058963 +2 -0.19227 0.038901 -0.85065 0.6644 +1 -1.5517 -0.57182 -0.9874 -1.4081 +2 -0.47999 0.49667 0.27351 0.6261 +2 0.45041 0.48469 0.55808 2.0659 +1 -1.1302 -1.255 -2.7206 -1.2712 +1 -0.60672 -1.1008 -2.6889 -1.0078 +1 -1.0508 -0.99612 -1.555 -1.0463 +2 0.14434 0.97791 1.2498 1.7391 +2 0.21333 1.6686 1.219 1.8919 +2 -0.35461 -0.64694 -1.3312 -0.10481 +1 -2.0611 -2.1245 -3.6067 -1.6584 +2 -0.3534 0.45962 -0.39991 0.45667 +1 -0.37564 -0.63085 -1.2641 -1.3292 +1 0.30023 -0.20283 0.041852 -0.17139 +2 0.25089 1.0204 1.8084 1.0493 +1 -0.44041 -1.1143 -0.59224 -0.84288 +2 -0.11392 0.5681 -0.054604 0.88897 +1 0.41829 -1.042 -0.0042274 -1.9512 +2 1.4863 2.9227 3.0012 3.1253 +1 -0.60588 -1.1196 -1.4647 -0.92268 +1 -0.10497 -0.74629 -1.8353 -0.35425 +1 -1.2499 -0.83335 -2.4047 -1.4657 +1 -0.51414 -1.4602 -0.54649 -1.0475 +1 0.56956 0.79545 0.86494 -0.59471 +1 -0.64964 -0.78543 -1.9412 -2.2114 +2 1.0044 0.56431 1.2968 1.3807 +1 -1.1924 -0.69401 -0.72828 -1.7252 +2 0.15739 1.0449 0.3742 1.4303 +2 0.49582 1.4353 1.1652 1.5814 diff --git a/sourcecodes/data/example_time_series/TEbcontinuous_input_orig.txt b/sourcecodes/data/example_time_series/TEbcontinuous_input_orig.txt new file mode 100644 index 00000000..5ea44854 --- /dev/null +++ b/sourcecodes/data/example_time_series/TEbcontinuous_input_orig.txt @@ -0,0 +1,501 @@ +Genotype TraitA_T1 TraitA_T2 TraitA_T3 TraitB_T1 TraitB_T2 TraitB_T3 TraitC_T1 TraitC_T2 TraitC_T3 +1 1.4297 -0.13715 -0.33041 1.3972 -0.17802 1.0272 -1.322 0.0027715 0.85527 +1 2.0687 -2.5819 -0.71386 -0.25338 0.64604 -0.25402 -1.1947 0.60348 1.5977 +2 0.52771 0.19656 0.40967 0.039336 1.57 -0.036341 -1.6301 -0.15434 0.93397 +1 1.7929 -0.85399 -0.21102 0.36528 0.14997 -0.072283 0.25214 1.8044 1.4149 +1 -0.090929 -0.17288 -2.808 0.79192 -1.5175 -0.90041 0.39689 -0.18146 -0.55432 +1 0.86086 -0.049472 -0.82074 0.18954 0.51157 0.30995 -0.50952 -0.047852 0.25632 +1 0.37794 -0.49737 -1.5634 -0.61123 -1.6172 -0.025387 -0.50463 1.0061 -0.55909 +1 0.061886 -1.3173 -0.38674 0.66584 0.023432 -1.0821 0.14268 -0.21189 -0.60498 +1 0.96427 -1.6652 -0.61177 -0.295 0.12641 -1.6644 -1.0372 0.033566 1.3366 +2 0.16295 0.59047 0.7747 -0.32623 1.6996 -0.042892 -0.0034198 -0.30944 0.67765 +1 1.7419 -0.94567 -1.8121 0.80385 0.23144 -1.4004 2.0605 -0.83835 1.3823 +2 -0.92772 0.34934 0.87438 -0.62792 0.7641 -0.5865 0.24522 0.6353 -0.0017539 +2 -2.9367 1.609 2.0928 0.61651 -2.0775 -0.24164 -0.3587 -0.95545 -3.0393 +1 0.52613 0.43773 0.75866 0.73066 0.46388 -1.4681 -1.5908 1.6872 0.89314 +2 -0.10721 1.7759 1.6821 -0.56868 1.6447 -0.92002 -0.27447 -0.62549 0.91373 +1 -1.073 -1.8228 -0.34751 -0.54007 -1.7593 -0.7431 0.61821 -0.054988 -1.7414 +2 -1.0532 1.0319 1.0531 -0.09473 -0.82174 0.45084 -0.38299 -0.6361 -0.90619 +1 1.7064 -1.8984 -2.6061 0.99661 -0.67065 0.17936 0.97103 0.38751 -0.11531 +2 -3.2527 -1.1361 0.56795 -0.39584 -1.5189 -1.7637 1.2149 -1.3971 -1.8622 +1 2.3471 -2.1036 -2.092 1.544 -0.21178 0.3446 1.0474 -0.64427 0.73628 +2 -0.63792 1.3156 0.92169 -0.67815 1.4089 1.1938 0.82905 0.16566 0.09164 +2 -2.0379 0.74861 0.16368 0.58693 -0.67589 0.81824 0.33633 -0.19727 -1.243 +2 -1.7441 2.4915 0.89809 -1.0265 0.35767 -1.159 0.63023 0.97341 0.29971 +2 -1.9637 0.94259 1.169 1.9451 -0.96485 0.49152 -1.1393 -1.2415 -0.58885 +2 -1.0536 2.4253 0.94996 -2.3874 0.23825 0.224 -0.073329 -1.2231 -0.24801 +1 -0.032849 -1.1426 -1.1507 -0.10711 -1.6383 -0.80394 1.5126 0.28303 0.083105 +2 -2.2192 0.84322 0.73021 0.71513 -0.79164 0.61126 -1.2986 0.89057 -1.4685 +1 0.42429 -0.65294 -1.9493 -0.77983 -1.2761 0.99263 0.051924 0.83436 -0.0079187 +2 -0.85155 0.9691 1.1731 1.0504 0.39302 0.030178 -0.70262 -0.014959 -0.31945 +1 -1.4662 -0.5934 -2.0914 -0.76279 -1.7903 0.94245 0.96374 -1.6733 -1.8091 +1 2.0716 -0.52844 -0.183 -0.032514 1.4843 0.28402 0.37221 -1.4476 2.8712 +2 -1.0437 1.5094 -0.23396 -0.84804 0.43785 0.19966 0.3728 0.15043 0.10549 +1 1.0647 -0.35638 -1.0854 0.78756 -0.99107 0.098816 -0.32975 -0.68451 0.71344 +1 0.58146 -0.46614 -2.9113 -0.032848 0.052376 -0.36411 0.87461 0.28033 -0.61848 +2 -0.6251 1.3257 0.36072 -0.042944 0.66071 -0.33981 2.0873 1.2161 0.089706 +1 1.57 -1.26 -2.0278 1.5331 -1.5343 0.019093 -0.73556 1.0316 0.41452 +2 -1.6998 1.0471 -0.0095397 -0.72037 0.30428 0.18062 0.86143 -0.31801 -0.86127 +2 -1.0544 1.9761 1.1994 1.7876 -0.24561 0.01978 1.4123 0.19675 -0.022687 +2 0.38235 2.3798 0.42045 0.97856 1.7099 0.20914 1.0505 1.9808 1.482 +1 1.8991 -2.1024 -0.53897 0.20839 1.3568 -1.4725 0.16263 0.069291 1.5719 +2 -2.2901 1.333 1.1433 -0.53918 -0.41394 -1.0484 -1.2332 0.068735 -2.0475 +1 1.9123 0.027091 -0.067604 -0.86429 -0.73426 0.65875 -0.59697 1.1903 -0.068242 +2 -1.8834 1.7232 1.3404 -0.096031 -0.1779 1.2453 0.23601 -0.81722 -0.8237 +1 -0.33029 -1.4141 -0.24236 0.3117 -0.28893 -1.536 0.63391 0.97915 -0.30591 +2 -1.0004 -0.17153 0.80903 -1.3152 -0.28004 -2.5356 0.25062 -1.6221 -0.2114 +2 0.92525 0.78374 0.44585 0.87215 0.67229 1.6991 -0.45347 0.21751 0.95898 +1 0.47842 -0.79727 0.0099566 0.8919 0.31135 -0.62503 -0.99073 1.5268 0.43918 +1 -0.52618 -0.57407 -1.5704 -1.9977 -1.8715 0.99632 1.124 2.1038 -1.3776 +2 -0.8334 1.5897 0.82506 -0.045645 0.23407 -1.1836 -0.86756 0.52102 0.23901 +1 1.0179 -0.6531 -0.53277 0.32403 1.226 -0.27361 -1.5967 -0.20229 1.5482 +2 -0.82762 0.26361 2.4807 -0.49628 -0.44792 1.295 -1.0416 0.29424 -1.0789 +1 1.569 0.14532 -1.3216 -1.1622 -0.46791 0.10723 -0.74658 1.7246 0.087136 +1 0.93783 -1.0786 -1.6758 -2.3367 -1.4745 -0.78743 0.85399 0.0085691 0.79439 +2 -2.9555 1.122 1.8506 0.65602 -0.66402 0.25697 0.75048 0.21667 -2.1374 +2 -1.5843 0.24076 0.71071 -0.16959 -1.0254 0.44363 1.1218 1.0872 -1.2214 +2 0.82202 1.2273 -0.2641 1.1674 0.72576 -0.6655 -0.33565 -0.57264 1.0462 +1 0.83408 -0.90235 -0.3935 0.086621 1.5353 -0.37978 -0.040736 0.54884 1.0078 +2 -0.30426 0.26772 1.1941 0.52251 1.9104 -0.10785 0.40619 1.0277 1.0258 +1 0.81767 -2.1549 -1.0066 -1.1068 -0.3204 0.70458 -1.0728 0.7519 0.49365 +1 0.67964 -1.4603 -1.4347 0.76332 -0.97228 -0.9221 1.0028 0.98058 -0.18843 +1 1.3794 1.3504 -0.081978 0.31556 0.32948 -2.6404 -1.0646 -1.2234 0.23259 +2 0.11139 1.1587 0.66712 -0.46969 0.42 0.31504 0.4697 2.6848 0.14172 +2 0.28767 -0.065134 1.3282 0.43016 1.4838 -0.63014 0.62746 0.93536 1.6029 +1 2.4805 -0.73041 -2.1434 -0.61007 0.89886 -0.34815 0.53564 -0.83092 1.359 +2 -1.7925 1.8972 1.3604 -1.0549 -1.2652 1.3518 -0.049884 -1.2196 -0.88755 +2 0.47058 1.4302 -0.034783 -0.11473 1.0041 1.0036 -0.46028 1.0611 1.2613 +1 2.6579 -0.31683 -1.1155 -0.65359 0.96673 0.64757 1.2194 -0.90696 1.8217 +2 -0.29097 0.91367 1.5236 -1.0735 0.71821 -2.1156 0.11456 -0.37247 0.64467 +1 0.68355 0.40105 -1.7852 1.3169 0.6179 -1.3712 0.05004 -0.65314 1.1103 +2 -1.8738 2.4006 1.8782 -2.1995 0.49239 -0.6918 -0.70293 -0.74597 -0.3239 +2 -0.36364 1.0943 0.62818 0.1429 0.85651 -0.96809 0.12213 -0.94343 0.42158 +1 0.40116 -1.4861 -0.049336 0.72652 0.1255 -1.1187 -0.38912 0.060771 -0.29816 +1 1.1364 -0.828 -0.44475 0.81314 -0.45463 0.73019 -0.57071 0.32484 0.046647 +1 0.91034 -0.95145 0.43201 0.76891 -1.5873 -0.38206 0.28662 0.23105 0.11712 +2 -0.27208 2.2223 1.2591 0.70003 0.89367 1.0322 0.41848 0.96986 0.17078 +1 1.0624 0.048938 -1.002 -1.0531 -0.28385 0.30108 0.62074 0.39829 0.27699 +1 0.57701 0.094694 -1.3989 0.15018 -0.44071 0.74259 -1.2663 0.33047 -0.45917 +2 0.11706 2.795 0.35611 -0.68956 2.1138 0.36961 -1.3806 -1.1414 1.9844 +2 -1.2526 0.11214 0.40367 0.83874 0.37692 1.4445 -0.77317 -0.40136 -0.42244 +2 -1.4336 -0.32339 1.3392 0.7596 0.0091892 1.0806 -0.81666 -0.39415 -1.9858 +2 0.5554 1.0643 0.50191 0.37325 2.0674 0.38376 -0.13487 -0.37455 0.64987 +1 1.6028 1.107 -0.9114 0.97541 0.88036 1.66 1.4044 -0.46919 0.80681 +1 1.6228 -1.3906 -1.8136 0.56649 -0.87823 -1.8194 0.30195 1.2461 -0.07587 +2 -0.97076 1.5212 1.1269 0.4029 0.19516 -1.5031 0.85567 0.18958 -0.20832 +1 1.3197 -1.8366 -0.24704 0.34608 -0.77044 1.1945 1.6826 0.91217 0.30079 +2 -0.38255 -0.2812 0.27203 -1.2858 0.86735 -0.54848 -1.3505 0.57415 0.12916 +2 -2.878 1.5199 0.74535 -1.4308 -2.2635 -1.4245 0.89574 0.037623 -2.7177 +2 -1.7715 0.74699 0.96279 -1.306 -0.36677 -0.36708 1.4602 -0.85456 -0.40898 +2 -1.3391 1.2012 0.7409 -1.3102 0.40133 -0.076096 0.51637 0.33495 0.25003 +1 0.65017 -0.57483 -1.7053 0.21131 -0.38338 1.6998 -0.70762 1.5248 0.1473 +1 -0.14679 -1.5979 -1.2765 1.041 -0.00072624 -0.19359 0.17338 -0.96136 0.51031 +1 1.8145 -1.0318 -1.0633 -0.098291 1.1755 -0.57137 1.7174 -0.14248 1.4282 +1 0.80523 -0.96777 -1.8989 0.063236 -1.2783 0.72214 -0.99392 -0.017507 -0.52743 +1 1.479 -1.2772 -1.1642 0.13841 0.83641 0.12311 1.2557 -0.37799 1.6174 +2 -1.423 -0.24793 0.49465 1.1461 -1.0896 -0.16348 -0.76872 -0.40631 -1.8538 +1 1.5733 -0.26875 0.42772 -0.75241 -0.0059677 0.65109 0.67958 0.47183 -0.10405 +1 1.7405 -1.3987 -0.91804 0.30851 -0.37195 -0.30858 -1.2002 0.51775 0.60525 +1 1.0571 1.4951 -2.5784 0.023453 0.064363 0.2392 0.93292 -0.37825 0.58165 +2 -0.35492 0.69359 1.5161 0.58499 -0.44209 -0.09004 -0.70298 -1.1197 -0.12251 +1 0.61469 -1.1159 0.11919 0.1796 -0.94894 0.012732 -0.69651 0.21311 -0.52283 +1 -1.2282 -0.050497 -0.83443 -0.28534 -2.0051 -1.3528 0.096769 -0.67245 -1.2668 +1 1.0411 -0.016327 -1.927 -0.10683 -0.70277 -1.4696 -0.021181 -0.34105 0.46198 +2 0.64635 0.84883 1.6319 0.2406 1.8836 0.31359 -0.69264 0.96691 1.3021 +2 -0.3604 0.050276 0.95661 0.18902 1.5034 1.3017 -0.045011 -0.92727 0.70494 +2 0.60646 1.598 1.395 -1.3791 1.8106 0.097276 0.74515 -0.4425 0.62478 +2 -0.099653 -0.54799 -0.1078 -0.18908 1.4643 -0.49221 0.050585 -1.2949 1.4842 +2 -0.98803 0.016928 1.2978 -0.29336 -0.2433 -0.90577 -0.18704 -0.22856 -0.39148 +2 -1.2267 0.82318 0.77338 0.0029744 0.15114 1.4265 1.6722 -0.18878 0.083877 +2 0.32455 0.48697 0.87077 -1.2598 0.89457 -0.2656 -0.4774 -0.22382 0.86019 +2 -1.6768 0.28366 1.7541 1.4309 -1.0277 -0.49835 -0.31204 -0.04057 -2.2507 +2 -0.83915 0.98617 0.024566 0.14541 0.40801 -0.010211 1.7726 -1.3709 0.30366 +2 -0.12663 0.15335 0.70774 2.1504 1.6066 -0.39836 1.078 -0.017324 0.94477 +1 1.1185 -0.39853 -0.011251 -0.0047654 -0.018256 -0.97102 1.8801 0.5724 0.70777 +2 -0.96731 -0.023776 1.2924 -0.94814 1.0413 0.3092 -0.06342 -0.032081 -0.22356 +1 1.1481 -1.0434 -2.2223 -1.2686 0.27026 -0.40422 -0.34583 2.2763 -0.16972 +2 -0.73981 1.2266 0.71139 -1.5638 0.084373 0.09421 -0.94629 -0.73173 -0.13897 +1 0.10133 0.032746 -1.5397 -1.7164 -0.96537 0.18106 0.47324 -0.32186 -0.44953 +1 2.3032 0.37332 -1.7518 -0.97719 0.21786 -0.29424 -1.6122 -0.3313 0.34243 +2 0.30487 0.96988 0.7649 1.2021 0.93113 -0.55965 -1.8153 -0.34231 1.0416 +1 0.9734 -1.1492 0.54826 0.24535 -1.1123 -0.013547 -0.72623 0.9444 -0.19613 +1 1.3053 -1.4227 -2.1548 -0.99601 0.99751 0.37094 -0.24703 -0.92319 0.81674 +2 -0.0084211 1.8266 0.94339 -0.96922 2.2496 0.14622 2.3348 -0.34993 1.4151 +1 0.64848 -1.4999 -0.79935 -0.18624 -2.4443 0.91037 -0.16866 -0.15122 -1.2117 +1 0.99806 -1.9897 -0.90507 0.86062 -0.34118 -0.4535 -0.54746 1.5108 0.91863 +1 -0.30169 -1.2768 -1.1305 -0.01759 0.06726 -0.39978 0.52015 0.96655 0.12442 +1 0.76671 -0.91781 -2.0919 0.37685 -0.19301 0.73072 1.2156 1.439 0.0070513 +2 0.66141 0.90111 1.0491 -0.66199 1.9568 -1.2392 0.18616 1.0926 1.652 +1 2.2346 0.19579 -0.82941 0.65367 0.48104 -0.33862 0.11669 0.66087 1.1783 +2 -1.3061 1.9587 1.3667 1.1907 -0.51821 -0.2974 -1.0178 0.34352 -0.018939 +2 -2.4636 0.65586 1.618 -0.50642 -0.63857 -0.65954 -0.9133 0.027975 -1.4977 +1 0.89124 -0.8583 0.34126 -0.30785 0.91808 -2.22 1.2944 -0.27909 1.487 +1 1.9669 -0.26343 -2.0878 -0.29226 1.7407 0.64013 0.32367 0.44562 1.1292 +2 -1.6773 1.1266 1.5663 0.16226 -0.34514 0.84293 -0.44423 1.0172 -0.78509 +2 -0.7714 0.64263 0.67055 -0.12578 0.030391 0.57791 -0.87634 0.28154 -0.261 +2 -1.0233 1.1382 0.044689 -1.1241 0.94709 -0.58888 -0.6081 -1.1033 0.0014883 +1 -0.89032 0.083064 -0.12604 -0.88751 -0.91556 0.98782 -0.96295 0.75564 -0.69265 +1 1.3655 -1.0533 -2.2171 0.66166 0.025806 0.67579 0.34249 -0.62323 1.0886 +1 0.56399 -0.71728 -2.1219 0.31633 -0.71031 0.87407 -0.34701 0.53176 0.10037 +1 -0.29942 -2.2988 -3.1477 0.24441 -0.72899 0.88463 -0.8288 -1.1141 -0.93797 +2 -1.6019 1.5308 0.77275 -0.1597 -0.62304 -0.59345 2.1367 0.64165 -1.6089 +1 0.43998 -1.5333 -1.9005 0.44722 -0.13187 0.57419 -0.61413 -0.37988 0.13118 +1 0.32451 -0.97656 -0.87335 0.35494 -1.1928 -0.086298 -1.1026 -0.97919 -0.21726 +1 1.1693 -0.39422 -1.1447 -0.52351 -0.30333 -0.48954 -2.0032 0.46507 0.28567 +2 -1.0178 -0.043439 0.70679 0.14463 0.58141 0.098977 -0.88721 -0.15542 -0.56848 +2 -1.864 0.19456 0.95611 -0.51705 -0.71043 0.72604 -0.62148 0.50157 -1.4442 +1 1.1946 -2.0839 -0.6101 -0.83583 -0.63001 -2.1693 0.72895 -1.5658 -0.082817 +1 1.1312 -0.95042 -0.78674 -0.86549 -1.6625 -1.463 0.99593 -0.16553 -0.34155 +1 0.1384 -1.7694 -1.1965 0.66966 -0.69619 0.30805 -0.080061 -1.5587 -0.319 +1 1.4232 0.30662 -1.3935 -0.69947 -0.00055014 -0.019403 1.7703 1.0318 0.42129 +1 1.3138 -1.6567 -1.8236 -0.83594 0.59818 -1.9568 -0.73185 0.59719 0.62349 +1 2.1276 -1.5641 -1.0272 -0.22706 -0.61297 -0.86845 -0.16811 1.1233 0.63294 +1 0.86327 -1.1672 -0.4862 0.32957 -0.080302 0.81128 0.71627 0.55966 0.56367 +2 -1.1147 1.2413 0.85755 -0.98983 0.37471 -1.5058 0.52838 0.36411 -0.48627 +1 0.75511 -1.5314 -1.2234 -0.066617 0.54207 -0.84565 -0.12893 1.9402 0.7808 +1 1.1796 -1.5249 -0.84271 0.7095 0.87459 0.4211 0.58894 -0.13679 0.9324 +1 0.93365 -0.83064 -1.7063 -0.39808 -0.20153 -0.35447 -0.30854 -0.57078 0.36515 +1 1.8917 -1.3609 -1.8857 -0.17194 1.2951 1.1315 1.4558 -0.089841 1.2983 +2 -2.5895 -0.48061 0.79532 0.78346 -0.065639 -1.4548 -0.32083 -0.6721 -0.66455 +2 -0.63117 1.7367 0.74948 -0.57156 0.163 0.86543 0.20003 -0.75063 -0.21691 +1 0.95464 -0.59931 0.43364 -1.307 0.20536 -1.2766 1.1449 0.17596 0.4256 +2 0.38623 0.55334 1.5367 -1.3081 1.5091 -0.032931 0.56364 0.54856 0.53007 +1 1.1646 -2.9641 -0.86913 -0.68118 -0.086229 0.93707 -0.76042 0.057056 0.064744 +2 -0.51373 2.3748 0.37243 1.8737 1.2164 0.68405 -1.2926 0.33967 0.46045 +2 -1.716 -0.27518 0.71898 2.139 -1.1262 -0.42262 0.11487 1.2112 -1.1357 +1 0.81098 -1.6862 -1.1448 1.5806 0.07478 2.1746 -1.067 -1.0274 0.15241 +2 -0.52225 1.1834 1.2802 -1.2321 0.53041 -0.29027 1.498 -0.42998 0.29824 +1 1.4067 -0.73586 -1.4675 0.36902 1.0718 1.0513 1.6971 -0.35651 1.4181 +1 1.6396 -0.50918 -1.5239 0.079563 -0.21164 0.21185 1.565 -0.65063 0.82484 +2 -1.8129 1.1552 0.21773 0.85556 -0.54894 -1.3206 -0.70958 -0.76325 -0.45363 +1 0.08024 -2.4412 -2.6136 0.63901 -0.43723 0.30985 -0.87622 0.32545 -0.64188 +2 -1.3992 1.86 0.38514 -0.16959 -0.24569 -0.82319 -0.33765 -1.4312 -1.2661 +2 -0.86537 1.8958 0.18147 -1.9666 -0.72909 0.10657 -0.67092 -0.092301 -0.26755 +1 2.036 -0.70975 -0.61637 -0.56185 0.88033 0.41052 -1.1744 1.3238 1.9451 +1 -0.72085 -1.0706 -1.5233 -1.0609 -2.2981 -0.92031 0.85305 0.92412 -2.0596 +1 0.55799 -0.18829 -1.3832 -0.54916 -0.1609 1.5505 0.19265 -0.46904 -0.37963 +1 0.57613 -0.29024 -0.82884 -0.28827 -0.62227 -1.1992 -0.81165 1.2746 -0.14435 +2 -2.1458 -0.13362 1.3613 -0.6849 0.26747 0.16034 0.47253 -1.0468 -1.4435 +1 0.75481 -0.80985 -1.7562 0.11274 -1.361 0.2692 -0.33398 -1.981 -0.45146 +2 -0.63689 1.4115 1.1256 -0.48954 0.22227 0.083383 -0.68005 -1.3527 0.15794 +1 0.20488 -0.8585 -1.7057 -0.10785 -0.51512 -0.21105 -0.2347 0.50991 -0.2296 +1 0.33051 -0.82281 -1.4551 -0.49943 -2.2164 -1.243 0.92027 -0.28432 -0.9815 +2 -1.5323 1.4825 0.19568 -1.2659 0.39757 -0.31925 -1.2746 1.0148 -1.2882 +1 1.5044 0.37718 -2.1235 -0.61248 0.60182 2.0258 1.4868 -1.3682 0.2884 +2 -1.6985 1.5229 0.84929 -0.10283 0.041132 0.4637 0.8772 0.68429 -0.14624 +2 -1.3935 1.1026 0.31729 1.3348 0.69002 0.8169 -1.0187 -1.2712 -0.32986 +2 -0.86151 1.1122 1.3 -0.32921 -0.41074 -0.70612 0.6009 0.3163 -0.097953 +2 -2.0673 1.6355 0.097123 0.91473 0.5959 1.3796 -1.1231 1.8893 -0.22321 +2 -2.4777 1.7124 -0.15192 -0.52093 -0.16443 0.4923 0.66793 -1.2934 -0.85227 +2 -1.3134 0.016105 1.4176 -1.6019 0.1775 0.25622 -0.55297 0.3436 -0.7072 +2 -1.0597 1.7595 0.80528 -1.8325 0.76506 -0.3233 -1.6869 2.265 -0.08971 +1 1.1695 1.0881 -0.63283 -1.785 -1.7752 -0.58415 0.69137 0.82675 -0.3004 +1 2.1262 -1.8156 -0.39282 -0.80595 0.050324 -0.16373 -0.47151 0.80027 0.54389 +1 1.063 0.25296 0.17061 -0.1157 -0.59899 -0.43356 0.60152 -1.3515 1.3947 +1 -0.10155 -0.81702 -0.9886 -1.1247 -1.0497 -1.185 -0.15332 0.4469 -0.096871 +2 -0.57577 0.74889 1.8408 0.28509 1.5472 1.9763 1.6429 -2.0436 0.74455 +1 -0.75989 -1.2425 -0.34199 -0.818 -2.3858 0.47522 -0.23387 -0.28078 -1.309 +2 -2.0495 2.5682 1.5694 -0.41676 -0.74454 -2.4393 -1.1153 -0.57367 -0.54138 +1 0.77924 -2.4438 0.15312 1.4288 -1.2908 0.81841 -1.6958 -0.26358 0.81237 +1 1.3679 0.40158 0.13439 -1.4677 0.89536 0.41708 -1.1908 0.96858 0.56786 +2 -1.4326 -0.13779 0.41395 -0.42952 -0.17306 2.1264 -1.3315 0.86756 -1.089 +1 0.88958 -2.3905 -0.67529 1.2911 -0.38016 -0.3412 1.1386 0.057707 -0.36773 +2 -1.5711 0.45979 1.0688 0.26169 -1.6144 -0.35448 -0.53559 0.42875 -1.6729 +1 1.0892 -0.40625 -1.2024 -0.24455 0.22748 0.98424 0.43801 -0.59885 0.46111 +2 -0.99813 0.68247 1.2314 -1.1455 0.047651 0.30609 0.32837 0.35498 -0.81578 +2 -0.68839 1.6801 2.0582 -1.4603 -0.88636 1.3908 -0.57986 -0.0037434 -0.53515 +1 0.40464 -2.6344 -0.28752 -0.51213 -0.48685 0.69834 -1.2208 0.065339 -0.45076 +2 -2.4333 -0.012759 1.469 2.659 -0.5377 -0.71507 1.0595 -0.18563 -1.5926 +2 -0.6268 1.4389 1.2319 0.08302 0.44274 0.39782 -0.67528 0.38559 -0.65921 +2 0.8026 0.80659 1.1495 0.74086 1.2964 0.062532 -0.28188 1.5504 1.1851 +1 0.21066 -1.3587 -1.018 -0.87592 -0.69085 -0.72849 0.38214 0.62269 0.18878 +1 1.0048 -0.91952 -0.66448 -1.3416 0.25265 -1.2612 -0.049135 0.82484 1.005 +2 -1.7507 1.7795 1.0866 1.9423 0.058961 0.96838 -0.3094 -0.2146 -0.7414 +1 0.97472 -0.061041 -0.36624 -0.7592 0.64262 0.81729 0.82749 1.823 0.34266 +1 -0.18399 0.0091627 0.45289 -1.2116 -1.9977 1.0641 0.8541 -0.49246 -0.92098 +1 2.9043 -1.4253 -1.4868 1.7467 0.4367 0.05544 0.35801 -0.91383 1.8223 +2 -2.5691 0.54849 1.5138 -0.75521 -1.646 0.98134 -0.18735 -0.6348 -1.9734 +1 2.3396 0.33806 0.69458 1.1091 1.2125 0.33828 -0.35002 1.1751 2.2485 +1 1.6685 -1.3783 -1.9317 -0.42944 1.2029 -1.4867 0.066998 -0.79486 1.4035 +2 -2.0928 0.53632 0.66581 1.2841 -0.60555 0.040915 3.1538 -0.056627 -0.83943 +1 1.5062 -0.82059 -0.74344 0.44647 0.59511 0.72422 0.62593 1.4268 1.2028 +1 0.37623 -2.4777 -1.3103 0.80402 -1.0351 -0.65952 1.4683 0.29902 -0.49379 +1 1.4315 -2.0349 -0.31206 0.050746 -0.13336 -0.038433 -0.51562 0.99598 0.8749 +1 0.46095 -1.5658 -1.8801 -0.54485 -0.65584 0.76544 0.2493 -1.0033 0.76074 +1 2.6758 -1.3401 -0.74083 -0.48907 1.4859 0.80109 0.084022 -1.1922 2.1735 +1 2.0061 -1.4527 -1.0237 -0.0063521 0.45363 -0.80533 0.53272 1.6309 1.1671 +2 -0.13994 1.3236 0.36193 -1.5754 0.31655 -0.87259 -0.30997 0.42034 0.078694 +1 0.48288 -1.4314 -1.2834 -0.79288 -0.031895 -1.3756 1.1439 0.092314 -0.51815 +2 -0.47435 0.79761 0.43073 0.79731 0.57061 -0.28187 -0.50956 0.11834 -0.90176 +1 0.29318 -0.50799 -1.2929 0.33339 -1.3628 -0.65651 1.332 -0.60648 -0.83894 +2 -1.606 1.6449 0.77136 -2.1167 -0.16742 1.837 0.85353 -0.61236 -0.63417 +1 -0.1001 -0.77059 -1.5772 -1.6877 -0.97173 0.63499 -0.3566 0.22712 -0.64236 +1 1.2767 0.51264 -1.027 -1.5029 0.52605 1.3738 0.83457 0.29704 0.33919 +1 1.1191 -0.064296 -0.48267 -1.782 -1.2738 0.17159 -0.28188 0.29923 -0.58741 +2 -0.63826 1.8527 1.7133 -0.056135 1.8808 -1.6172 -1.0494 0.61158 0.043977 +1 1.2643 0.64783 -1.0678 0.74684 0.01604 0.0964 3.1502 1.0929 0.73344 +1 0.12706 -0.4412 -0.89289 -1.3539 -0.058561 0.67775 -0.3655 0.095055 0.96019 +2 -3.0835 1.5862 0.75303 -0.24237 -1.08 -0.96917 -0.3816 -0.81532 -2.8002 +1 0.51225 -1.7399 -0.75798 -0.067637 -1.3492 -1.6732 0.13661 0.60332 -0.10099 +2 -1.7725 0.80999 1.2954 1.1806 -0.26584 1.0747 -1.4449 -0.67675 -0.87535 +1 0.14033 -1.4421 -0.77783 -0.66938 -0.73477 0.79103 -1.159 -0.063733 0.25614 +2 0.076697 0.50986 1.3258 1.965 0.90572 -0.69409 -0.34803 -0.63785 0.081812 +1 0.66949 -1.0812 -0.32498 1.1384 -0.35031 0.88344 1.5788 0.36127 0.94262 +1 1.8522 -1.2292 0.14775 -0.72146 -0.62468 0.46004 1.3635 -0.57543 0.34048 +1 1.0906 -0.60665 -0.65963 1.0382 -0.42593 1.3403 -0.15771 0.76656 -0.12989 +1 0.27921 -0.21562 -0.17954 0.91419 -2.0093 1.7467 -0.4308 -1.0916 -1.2044 +1 1.1757 -1.4632 0.1861 -0.99194 0.13545 2.4954 0.10044 -0.27133 0.69247 +2 -0.99062 -0.018655 1.4302 0.24467 1.1165 1.0648 -1.6885 1.0959 0.95405 +2 0.86302 0.92628 1.1209 2.4521 0.28548 0.38878 1.5759 -0.85559 0.53646 +1 0.69515 -0.49791 -1.0236 -0.92469 -1.2116 1.3456 -0.79874 1.204 -0.56016 +2 -2.4796 1.3958 0.87657 0.44706 -0.16121 1.5481 0.71852 0.27896 -0.66289 +1 0.43301 -0.79901 -0.59228 0.77222 -1.3966 0.25029 1.254 0.29857 -0.62542 +1 -0.27647 -1.1822 0.41671 -1.3611 -0.55777 -0.50963 -0.30934 -0.59363 0.061939 +1 0.38513 -2.9318 -0.54247 0.37014 -0.073925 1.5321 0.23051 -0.57138 0.11674 +2 -1.8571 0.45699 1.201 0.10404 -0.60138 -1.7736 0.42053 -0.79846 -1.4224 +1 0.62359 -1.7125 -0.62582 -0.042918 -0.36669 -0.56715 -0.062339 0.89859 0.30456 +2 -1.6533 0.84354 1.6735 -1.2605 -0.43289 0.48404 0.28039 0.78245 -0.57258 +2 -0.080794 1.1924 1.4788 -0.67232 0.47322 1.1845 -0.012908 -1.4312 0.93776 +1 0.16058 -0.57081 -2.6514 1.4884 -2.1855 0.65477 0.47093 0.15081 -1.1277 +2 -1.1955 0.99242 0.9036 0.18329 0.18 -1.2844 -0.11974 0.18755 -0.45505 +1 1.1671 -2.6976 -0.50301 -0.58948 -0.51739 -0.45284 -0.012968 0.20125 0.57372 +1 -0.32345 -1.1455 -1.2572 0.10599 -0.55736 -0.50023 -0.14238 -0.46824 -1.259 +1 -0.25853 -1.7978 -0.029919 -0.29829 -1.0868 1.6792 -1.0787 -2.2796 -0.53019 +1 -0.36174 -1.3337 -1.1195 -0.31725 -0.95852 1.0132 1.7214 -1.0866 -0.13132 +2 -1.1173 0.24817 1.2532 -0.7469 0.27598 -0.84941 -0.49835 0.56046 0.59012 +2 0.30144 2.7931 0.91519 -0.84696 0.23668 -0.88296 0.72892 1.0513 0.19212 +1 1.4905 -0.4007 -0.54397 0.15127 -0.74687 0.61323 -1.8356 0.59089 1.1093 +1 -0.35132 -1.9883 -1.256 0.93049 -0.70667 -0.28659 -0.42879 -1.362 -0.50144 +1 1.2429 -1.5525 -0.20626 0.072086 -0.39782 0.68157 -0.53323 1.8666 0.045473 +2 -1.2196 0.14752 -0.53211 -0.7467 1.1406 -0.56244 0.29943 -1.4297 0.46157 +2 -1.6198 1.9155 1.2365 -0.95186 -0.06658 0.96942 -0.18211 -0.49517 -0.41439 +2 -1.0683 0.96089 1.1544 -1.6614 -0.35334 -0.4625 -0.21637 -0.32475 -0.10647 +2 -1.6914 1.0877 0.4725 -1.5111 0.83773 0.32967 -0.94111 1.3745 1.1852 +1 0.84313 -0.24952 -0.56678 -0.27797 -0.54407 -1.3431 -0.25809 1.282 -0.056027 +1 -0.035988 -2.0608 0.40945 0.30565 -0.62316 0.29468 -0.23983 -1.3008 -0.22695 +2 0.075977 1.9441 0.49189 0.37696 0.70796 -0.86073 0.4114 0.22453 0.98819 +2 0.28842 1.232 0.33576 0.038484 0.8227 -0.67275 0.41736 0.022429 1.0885 +1 1.6374 0.024546 -1.7459 -0.57923 0.68063 0.16658 0.0016636 0.47144 1.1552 +1 1.8588 -0.93368 0.28434 -0.7861 1.8997 1.5632 0.67609 1.9808 2.1869 +1 1.1439 -2.5158 -0.94428 1.3944 0.47815 1.0813 -0.82034 -0.4671 1.6872 +1 -0.83643 -1.1109 0.74783 0.14825 -1.8961 0.53083 0.12628 -0.97035 -1.2131 +1 0.80792 -1.2206 -0.53769 -1.9796 -2.0225 -1.3183 1.5367 -0.089998 -0.63818 +1 0.46322 -1.6832 -0.68896 -0.11466 0.82291 0.49543 0.64194 -0.78985 0.7928 +1 1.1134 -0.7632 -0.52309 0.050666 -0.11115 0.22091 -0.50697 -0.083966 0.28955 +1 1.6489 -1.4257 -0.079768 -0.17866 1.3682 0.99716 -0.14071 0.57401 2.0271 +2 -3.4201 1.1332 0.55733 1.7639 -1.0408 0.49521 -0.89075 0.63786 -2.4173 +2 0.049496 0.17018 0.63955 0.82924 0.50401 1.7456 1.2791 -0.82747 -0.056268 +1 0.82888 -1.6152 -0.67552 -0.18412 -0.8324 0.63814 -0.32875 0.56435 0.45993 +1 0.38504 -0.014272 -0.79157 0.17829 -1.0883 0.34832 -1.2247 -0.11977 -0.48077 +2 -1.4876 0.61139 0.9406 -0.32299 -0.4817 0.91219 0.97626 -0.25486 -0.64597 +1 1.3562 -0.30066 -1.6972 -0.51976 -0.31725 -0.76347 0.90608 -1.1069 1.1407 +2 -2.5614 0.1045 1.6435 0.97534 -1.3122 -0.7861 -0.20101 0.13606 -1.6992 +2 -2.6662 0.95905 -0.35403 -0.3552 -1.8512 -0.15132 -0.41612 0.31836 -2.2106 +2 -0.00031444 0.62953 0.088267 0.68222 1.0037 -0.97501 0.05455 2.1016 0.79972 +2 0.22638 1.2227 1.4105 0.80602 0.55541 -1.5322 0.0043904 -0.15507 0.68087 +2 -2.334 1.5675 1.163 0.272 -1.2525 0.60333 -0.37448 0.8214 -1.9516 +1 1.2905 -0.88687 -1.3286 -2.4723 -0.20557 -0.46225 -0.43282 0.0080673 0.6155 +1 0.4564 -0.76149 -1.0996 0.91754 -1.2544 0.85041 -1.4562 1.2935 -0.46559 +1 1.4499 -0.66586 -0.35765 -1.2333 0.27339 0.71405 0.31118 0.35473 0.29444 +2 -0.77922 -0.42723 1.5001 0.0051638 1.708 -1.1243 -1.7226 0.88573 1.091 +1 1.4447 -0.16076 -0.43264 -1.3692 0.49062 0.72536 1.0569 -1.0645 1.0431 +2 -2.1249 1.55 1.0703 -0.33715 -0.93988 -0.46815 0.37327 0.14989 -1.378 +2 -2.1409 1.9364 0.89125 -1.3418 0.0029328 -0.62313 -0.08749 0.8668 -0.022832 +1 1.3168 -0.52716 -1.8803 -0.036537 0.018738 -0.35049 -1.0451 0.91575 0.5615 +2 -0.71066 1.9845 1.49 0.34891 1.2436 -1.4879 -0.19868 -1.2859 1.4068 +1 1.5001 -2.1148 -0.77803 2.3299 1.4564 -2.0676 -0.022721 -0.10446 0.26055 +2 -0.6739 0.41846 1.7318 0.68893 0.13108 -0.31544 -1.5612 1.2954 -0.92584 +1 1.4702 -1.0425 0.6928 0.072418 0.54485 0.85063 0.0081416 -1.4887 1.4283 +1 0.70021 -0.96049 0.073815 -0.42884 -0.069394 -0.21559 -0.026326 1.4426 -0.1714 +2 -1.1011 1.959 0.42525 -1.1689 -0.59141 0.10594 0.018948 0.20462 -0.52074 +1 1.4069 0.39853 1.1331 0.19914 -0.10243 0.018621 -0.43318 -0.66927 0.39015 +1 0.87655 -1.0124 -1.224 -0.46666 -0.07615 0.58575 -2.5462 0.94584 0.028689 +2 -1.4734 0.60836 0.57896 -0.63359 0.57633 -1.7896 0.17572 1.9757 -0.63815 +1 1.0333 -1.5614 -1.5383 1.438 0.52141 0.24245 -0.53578 1.6605 1.2533 +2 -0.3273 1.0926 1.1519 0.16952 1.0365 -0.23815 0.64169 0.60631 0.070148 +1 1.7758 -1.2199 -0.5642 -0.30348 -0.64616 0.58837 0.3667 -0.22602 0.18959 +1 1.5199 -1.4167 0.75493 -0.56876 -0.25767 -0.15304 -0.50137 0.95964 0.82786 +1 1.4824 -1.6233 0.43914 -0.42964 -1.3404 0.22643 -0.1404 -0.61313 0.084143 +1 0.44429 -0.57239 -0.87756 0.35081 0.18739 -0.3721 -0.026971 0.30198 0.1578 +2 -0.99851 1.6131 -0.023407 0.93921 -0.39113 0.3954 0.61223 -1.5171 -0.23186 +1 1.5526 -0.53216 -1.2919 0.2302 -1.4551 -0.78631 0.76506 -1.3068 -0.65802 +1 0.94848 -0.51015 -1.0914 2.9383 0.26782 -0.85511 -0.60545 0.54075 0.66057 +1 1.3473 -1.6193 -1.3367 0.35306 1.0269 0.9064 0.45715 1.1513 1.8352 +2 -1.8273 2.0565 1.3104 0.29618 0.35044 -0.48547 0.88384 0.14121 -0.5916 +1 1.5566 0.31096 -1.8396 -0.42655 1.4972 -0.77059 0.19228 -0.23885 1.1498 +2 -0.91541 1.1099 -0.025734 0.51863 0.20206 -1.1191 -1.1133 0.045123 -0.50422 +1 0.51812 -0.60581 -0.51525 -0.27024 -0.24289 -0.12177 0.08843 -1.1701 0.54732 +2 -2.2517 1.8548 0.3887 -0.48496 -0.44221 0.94129 0.86746 -1.3026 -1.1678 +2 0.18212 0.78036 0.37111 -0.27298 1.7074 0.34353 -1.4465 0.42845 1.358 +1 1.4023 -2.1882 -1.587 -1.7672 -1.0834 1.6286 -1.2021 -1.6029 -0.13929 +2 -1.2956 2.1152 2.7519 0.066883 1.1916 -0.43506 1.3982 0.50402 0.12064 +1 2.3367 -0.27214 -1.3764 0.11017 1.453 -1.5568 0.8465 -0.078289 1.7156 +2 -0.50576 1.8409 0.39684 -0.67433 0.52285 0.39823 0.79306 -0.45694 -0.26349 +1 1 -0.59182 -0.31766 0.98958 -0.2262 0.51294 -0.60031 1.0725 0.59729 +2 0.19153 0.8046 1.643 0.034662 0.859 0.7859 -0.32844 0.67515 0.20322 +1 1.7901 -0.59357 -1.2522 -1.4543 -0.68975 0.39807 0.66376 -0.34466 1.1902 +1 1.7089 -0.060397 0.35043 0.80625 0.099879 0.35182 -0.79309 -1.5215 1.0715 +2 0.1343 0.95427 0.96941 1.4958 1.5293 0.80648 0.27086 0.22725 1.1392 +1 2.8634 0.47861 -2.0142 0.11694 1.8637 0.021456 -0.030072 1.0836 2.0311 +2 0.48387 -0.64355 1.4169 0.74074 1.2122 -1.1388 -0.27931 0.32164 0.54646 +2 -0.74265 2.4938 2.0609 0.27613 0.097949 0.19312 -0.5424 0.075476 -0.43488 +2 -0.29163 0.040455 0.82654 -0.28016 1.2311 1.9005 0.3332 0.84937 1.0188 +1 1.4611 0.12262 -1.6808 0.83668 0.73216 -0.78731 -0.78309 0.048527 1.9664 +1 0.18222 -1.1837 -0.45627 -0.39739 -1.7104 0.031619 1.0594 -0.63454 -1.8183 +1 -0.65677 -0.84807 -1.6193 -0.47942 -1.0684 0.88853 -0.89937 0.52119 -1.4839 +1 1.2698 -1.435 -0.63897 -0.01313 -0.99173 2.5522 -0.56152 -0.56106 -1.1274 +1 1.385 -0.13768 -1.0754 -0.47919 -0.003611 -1.5125 0.052625 1.5811 -0.12839 +2 -1.0548 0.052238 0.2412 0.27463 0.22433 1.4336 1.0572 0.26996 0.41029 +1 0.7721 -0.67292 0.39868 0.37861 -1.4934 -0.47718 0.17927 0.85268 -0.72091 +1 1.2427 -1.9735 -0.29186 -0.52621 -0.11644 -0.43715 -0.24664 -0.93071 0.31767 +2 -2.8043 1.0978 1.4787 0.36056 -0.96764 0.88555 -0.15218 0.98887 -1.5008 +2 -1.2951 0.83324 1.171 -1.2691 0.36927 0.76625 -0.92005 0.24768 -0.054118 +2 1.3095 0.99843 0.13992 0.66979 2.1828 0.89717 -0.72625 -0.34445 2.1892 +1 1.2584 0.38994 -0.68463 -0.18974 -0.78064 0.77286 -0.83635 -0.60385 0.92861 +2 -1.0711 2.0033 1.0809 -0.51058 -0.023381 0.67482 -0.59591 1.1403 -0.45183 +2 0.21944 1.3571 1.4359 0.78966 1.663 1.6785 0.58208 -0.74842 0.20906 +1 0.011518 -1.0425 -1.1304 -0.070319 -2.5168 0.39814 -0.33423 -0.78894 -2.0357 +2 0.69198 0.5718 0.47852 0.63681 1.8381 -0.38219 -0.27264 -0.64378 2.0531 +1 1.7602 -0.041861 -1.5806 1.2187 0.62789 0.63859 -0.56816 1.0461 1.2766 +1 1.3974 -0.72864 -1.3122 0.98553 -0.40148 0.73259 -0.54019 1.2025 0.62291 +1 2.0292 -1.17 -0.92469 -0.4438 1.0769 0.3171 1.863 -1.4777 2.183 +1 0.82444 -0.11125 -1.7986 0.22037 -0.58058 -0.28998 -0.36893 0.1951 -0.014686 +1 -0.26775 -1.8824 -1.0596 -1.1796 -0.88341 -0.41298 0.2225 -0.34038 -1.9099 +1 1.0464 -1.5432 -1.1439 -0.16887 -0.58282 -0.58015 0.071053 -2.0172 0.40629 +2 0.48496 0.88721 0.068703 -0.062814 1.8539 0.76736 -0.69119 2.5673 1.7942 +2 -2.5964 1.666 0.64624 0.29818 -1.2247 -1.7919 -0.46627 -0.48313 -2.4143 +1 1.2985 -0.65098 0.20448 -0.94345 0.87214 -1.6734 -0.068609 -0.4095 1.9333 +2 0.22616 1.0924 1.3477 0.055694 1.4254 1.8744 0.11516 1.7865 -0.63249 +2 -0.088217 0.9008 0.6155 -0.80262 1.0367 0.52624 0.47333 -0.99159 1.1763 +2 0.49566 0.27083 0.36027 0.81907 2.1477 -0.09016 -0.060519 -0.84038 1.2276 +2 -0.95509 0.76962 1.617 -0.18465 0.54306 0.11383 -0.74663 1.2036 -0.15892 +2 -2.1626 0.76688 0.61098 -0.58151 -0.48433 -1.65 -0.4727 -0.81084 -1.991 +1 1.7072 -1.4061 -0.93099 0.20659 -0.6383 -0.52376 -0.59362 0.73275 0.14137 +1 1.1248 -0.25303 -0.59647 0.88007 0.15399 0.51682 0.81114 0.50757 1.0622 +2 -0.71804 0.42061 1.375 -0.1329 -0.13315 0.694 0.51403 0.7759 -0.19636 +2 -0.78286 1.5434 1.1806 -1.684 -0.84914 -0.26491 -0.18979 -0.39503 -0.52299 +2 0.014488 1.8201 0.1954 -0.95429 1.2411 -0.58396 0.55811 -0.46832 0.47374 +1 1.0749 0.50186 -1.2937 -0.90643 -1.2159 -0.19162 0.7674 1.3112 0.1246 +1 0.68887 -0.44578 -1.0028 -0.11492 -0.20396 0.84785 -0.15439 0.32438 -0.039298 +2 0.16742 2.9261 -0.74973 -0.39068 1.7798 0.42686 -0.080223 0.42411 1.6039 +1 -0.18087 -1.5505 -0.62971 0.016341 -1.5144 -1.0188 2.0846 0.043907 -1.1922 +1 0.95661 -2.0166 -2.1997 0.90248 0.54062 0.041709 0.90484 -0.85369 -0.13388 +2 -0.31077 0.51779 0.95641 -0.4625 1.0018 -1.0891 -1.3434 0.41807 0.50029 +1 0.91328 -0.44549 -2.0298 -1.174 -1.034 0.4279 -2.5807 0.4737 -0.85271 +1 -0.23575 -2.037 -0.2611 -1.4787 -2.7359 -0.17981 0.87371 0.47744 -2.3323 +2 -1.4541 0.20996 -0.05013 0.84273 0.46742 1.5516 -1.0325 0.70636 0.30572 +2 -1.2945 0.85979 1.4434 0.58762 0.48371 -0.71804 -0.9537 -0.78726 -0.53815 +2 0.74344 0.32219 0.79813 -0.31128 2.9169 -0.23629 1.4931 -0.35416 1.8392 +1 0.17191 -0.10805 -0.90104 -1.2155 -1.8461 0.41305 -1.3882 -0.70599 -1.4386 +2 -0.40498 1.9161 0.64926 -0.022772 0.98396 -0.26674 1.295 1.3676 0.78339 +2 -0.37054 1.509 1.6115 -0.58429 0.1452 1.167 -1.1994 0.076682 -0.76871 +2 0.61117 -0.31328 1.4496 -1.0086 1.5965 -0.44863 0.87281 -0.013992 1.2945 +2 -2.5627 2.5993 1.1595 -0.14098 0.0029615 0.58802 -1.7538 -0.44999 -1.599 +2 -0.871 0.043195 1.076 -0.56146 0.50375 0.85785 -0.11991 0.58565 -0.12111 +1 0.26437 -1.5194 -0.99247 2.0087 -0.53643 -0.028452 -0.60254 -1.0593 -0.44553 +1 1.4337 -0.4955 -0.38857 1.7006 -0.029221 0.72542 -0.5476 -0.25228 0.99248 +1 1.2526 -1.0033 -1.5107 -0.50129 0.52008 1.8291 0.25094 0.8054 1.4381 +2 -1.2973 0.63457 0.23922 -0.83426 -0.3921 0.48332 0.6937 -0.90008 0.28163 +2 -0.68226 1.0692 1.7561 0.16471 0.93344 -0.85611 0.17721 -2.744 0.79804 +1 1.1524 -2.2292 -0.55308 1.0928 -0.12293 -1.1935 1.2415 -0.70506 1.079 +1 0.9021 -0.91029 -2.3501 -0.4621 0.22359 0.6318 0.020605 1.0348 0.40828 +2 -0.76595 0.8248 1.9282 -2.1827 0.12486 0.79045 -1.0793 0.85428 -0.38859 +2 -1.8465 1.2372 1.4255 -0.64113 1.7146 1.75 1.0757 2.1723 -0.10888 +1 0.4124 -0.023721 -0.75091 0.0023936 -0.28659 -0.41428 -0.016011 0.6957 0.69187 +2 -0.45813 0.69702 1.7516 1.0408 0.15944 0.1227 0.38587 0.74631 -0.89003 +1 0.538 -0.35454 -0.3801 -0.53212 -0.68379 1.224 -0.77711 -0.90789 0.49391 +1 -0.20833 -2.8331 -1.3705 1.1197 -1.344 -0.82517 1.523 -0.91541 -0.96558 +1 0.7891 -1.2808 -1.1525 0.88602 -0.16858 -1.7123 0.77873 -0.20954 -0.16867 +2 -1.3314 2.8851 0.58893 1.7864 -0.23105 0.055718 -0.12725 0.76001 -1.5992 +1 0.73632 -1.3301 -2.9522 0.52725 -1.08 -0.06714 -0.94698 0.45418 0.41486 +1 -0.35063 -1.2931 -1.7601 0.69363 -1.4744 0.24266 -0.53511 0.79048 -1.1274 +1 0.49595 -1.7854 -2.069 -0.16771 -0.40006 0.44868 -0.4303 -1.5395 -1.066 +2 -0.83194 1.8975 0.64283 0.057645 -0.11672 -0.27891 0.11427 0.37462 -1.1174 +1 0.13137 -1.3172 -1.3952 0.60281 -0.59451 0.40422 -1.903 0.19047 0.63287 +1 0.79379 -2.4506 -0.74815 0.095119 -0.99504 0.56827 -0.27855 1.1757 -0.06042 +1 -0.082568 -3.4167 0.10544 -0.46771 -0.47642 -1.255 1.1708 -1.1147 -0.49832 +1 2.2039 -1.3601 -2.4033 -0.96653 0.33475 1.6743 -0.18215 0.26277 1.2449 +2 -2.4832 1.2267 1.3225 -0.44129 -0.82506 -0.44882 -1.3962 -0.7991 -1.6171 +2 -0.46149 0.35062 0.24453 0.83174 1.0664 -0.43189 -0.035901 -0.01857 -0.36555 +1 1.3889 0.052183 -1.2924 1.3615 -0.04596 -2.3656 0.38864 -1.7679 0.75491 +1 -0.68146 -1.242 -1.0646 -1.43 -1.2204 -0.57024 1.9686 -1.3026 -1.5174 +2 -1.7219 1.7273 1.3099 -1.4944 0.38043 -0.45523 -0.1014 0.22334 -0.28025 +1 0.4601 -1.2706 -3.0004 0.76391 -1.0926 -0.62232 -1.4501 1.8045 -0.8909 +2 0.63508 0.82051 0.86771 -0.03764 2.0161 0.47394 0.72173 0.1272 0.90096 +2 -0.50664 0.34365 -0.25494 -0.017548 0.40843 -0.051173 -0.39524 0.91238 -0.53873 +2 -2.0811 0.89924 1.0192 0.43669 -0.49654 -0.23137 0.41548 -0.30013 -1.4364 +1 -0.056347 -1.55 -0.99371 -1.2894 -0.54273 0.29751 0.20504 -0.42535 -0.30966 +1 0.63831 -1.9968 -0.82023 0.55724 -2.0781 0.85777 0.23729 -0.92902 -1.6423 +1 0.7966 -1.5913 -0.52401 -0.19794 -1.6834 -0.3534 -0.46345 1.1393 -0.65595 +2 0.10773 -0.33975 -0.087855 0.29636 0.96272 -0.39449 -0.9227 0.43119 0.37524 +1 1.0429 -2.6154 -1.0715 -0.95629 -0.89564 0.66231 0.11241 1.2325 0.32819 +2 -1.6843 1.3516 0.30108 0.72455 -0.23492 1.5917 0.52992 0.55089 -0.67923 +1 0.83236 -1.7333 -1.3285 -0.84552 -1.5398 0.63718 -0.92241 0.65631 -0.20652 +2 -1.4221 2.5458 0.98922 -0.97179 0.27368 0.51406 0.34173 0.18592 -1.2884 +2 -1.7862 0.7866 0.99765 -1.3351 0.49844 -0.43267 -0.53121 -1.4309 -0.56164 +1 1.4776 -0.21831 -0.99715 -0.43224 -0.74575 -0.54461 -0.93794 0.96267 -0.10238 +1 1.7229 -1.0653 -1.0424 -0.3796 0.61655 0.95133 0.98557 -0.36444 0.86756 +2 -0.23995 -0.13066 0.42758 2.147 1.4597 -0.19292 -0.86687 -0.39257 0.27569 +2 -0.20121 0.59656 1.9887 0.13145 0.1327 -0.19727 -0.05865 0.48741 0.25007 +2 -0.34495 2.2333 1.1524 -0.3531 0.51244 -1.0083 -0.22929 0.97338 0.57683 +2 0.03843 2.0985 1.5399 -0.44067 0.39468 0.66165 0.66233 2.0593 -0.89779 +2 -0.79583 -0.26167 1.7969 -0.83981 0.44149 0.7226 0.89209 0.58699 -0.022219 +1 0.44433 -0.9731 -1.1557 0.30092 -2.0491 -0.64077 -1.2024 0.27957 -0.594 +1 -0.5687 -1.2111 -0.75535 0.14432 -2.5169 2.0343 0.43688 0.19656 -1.4058 +1 0.74067 -2.7385 -0.5607 -0.1682 0.75534 -0.10032 -0.57514 -0.6271 0.86134 +1 1.3443 -1.3033 -2.9093 -1.1089 0.13087 -0.64097 0.3585 0.68683 0.40175 +1 0.34499 -1.2307 -1.0615 -0.056169 -0.66885 1.0018 0.82215 -1.2896 0.33605 +1 1.7055 -1.6123 -1.7269 1.149 0.91344 0.15816 0.08206 -1.0272 1.1846 +2 -2.257 1.8592 0.85977 1.5261 0.41802 1.6948 0.56961 2.0545 -1.7022 +2 -1.1666 0.71643 1.5052 0.88419 0.97675 -1.125 0.3411 -1.8831 -0.36783 +2 -2.8249 1.0453 1.0209 1.1005 -1.2481 -0.97923 -0.2972 1.2716 -1.4542 +1 -0.22349 -1.4876 0.16086 1.2627 -1.3753 -1.4312 1.5506 -0.28627 -0.13164 +2 -1.6498 0.87841 0.00037123 0.074895 -0.55409 -0.36662 1.0731 2.664 -0.749 +2 -0.46646 0.70235 1.1324 -2.5793 0.67907 0.35468 -0.32694 -1.1455 0.56525 +1 1.2694 0.46784 -1.4293 -0.50127 -2.0587 -1.8261 0.36831 1.7871 -1.5834 +1 1.5754 -1.0397 -0.5639 2.0739 0.53841 -0.70667 -0.65273 1.3444 0.45546 +1 -0.13986 -0.92734 0.87918 -0.72209 -0.5052 0.39414 -1.8605 0.98483 -0.37829 +2 -0.95014 0.83973 1.4337 -1.1105 0.072627 -1.2172 -1.6062 0.079614 -0.040378 +1 1.1359 -1.4676 -0.79366 0.068314 0.20653 -0.21332 0.8022 0.58405 0.92071 +2 -4.4596 1.8899 1.1644 0.58514 -2.6451 -0.26627 1.6536 1.2677 -3.7338 +1 1.5815 -1.7598 -1.5736 0.46493 0.015353 -0.31082 -2.2055 0.14685 0.11537 +2 -0.79178 0.27783 0.5954 -0.78667 0.40642 0.42974 -0.63366 1.0762 0.62431 +2 -1.0134 1.2166 1.1865 1.5637 1.1099 2.4594 0.40801 -0.85353 0.72663 +1 0.77943 -1.4202 -1.6749 0.0012415 -0.83458 -0.12672 -0.94554 0.89884 0.012849 +2 -1.4274 0.9359 0.88402 -0.76419 -0.50766 0.55146 -0.63931 -0.65644 -1.0529 +2 -0.71825 0.92276 1.0007 1.2904 1.4708 -0.52982 0.9275 0.94508 0.4575 +1 0.502 -1.2444 -0.25346 1.2023 0.16167 0.85576 0.034795 0.46868 1.3265 +1 -0.025698 1.1754 -1.0638 1.0218 -2.0164 0.55502 -0.12178 -0.10811 -1.6111 +2 -0.86777 0.31084 1.7383 0.39918 0.22035 0.14221 1.646 -0.97712 -0.59459 +2 -0.19808 1.9089 0.60873 0.12475 0.10092 -0.5944 -0.66923 0.055193 0.31899 +2 -1.0644 2.2357 0.13503 1.2076 1.657 -0.83795 -0.46089 0.42362 0.29853 +2 -0.53265 0.76969 1.0687 -0.79048 1.1924 0.53681 -0.38366 -1.1613 0.42401 +2 -1.4567 1.5038 1.7125 -1.9757 1.1075 -0.81071 0.29591 0.95985 -0.25161 +2 -2.7546 -0.21024 -0.041926 -0.24552 -0.6494 1.8608 0.86785 1.3512 -0.89236 +2 -0.54365 0.8237 -0.31856 -1.6296 0.73174 0.89915 0.91228 -0.66788 0.075926 +1 0.65472 -2.4675 -1.2267 -0.64632 -0.24147 0.5015 -0.24368 1.7307 -0.33117 +1 1.9061 -2.4358 -0.62051 -0.40306 0.35877 0.13681 0.5665 1.1077 0.90585 +1 -0.34786 -0.97138 -1.3607 0.74793 -2.3185 1.1517 0.35912 -0.22501 -1.7136 +1 1.509 -0.58183 -1.336 0.095131 -1.0719 -0.17454 -0.42425 0.21663 0.41672 +2 -1.1281 0.73596 1.3241 0.75066 -0.0098067 0.94941 -0.88569 0.96608 -0.58258 +1 2.0808 -1.2665 -0.27892 0.034005 1.5957 0.34276 -1.3939 0.20516 1.0361 +2 -0.27208 1.3514 0.78429 0.54442 1.2344 -1.0745 0.28837 -0.84074 -0.20416 +1 2.5732 -1.8429 0.35018 0.47113 -0.22532 -1.779 1.5326 -1.0015 1.0285 +1 1.524 -2.2514 -1.7375 -0.45648 1.0921 -1.1141 1.436 0.99093 1.3581 +1 0.60324 -0.46804 -0.11489 -2.454 -2.7665 0.61676 -1.5213 -1.192 -1.4163 +2 0.29712 1.188 0.57954 1.3259 0.95488 -0.70707 0.067457 0.47216 1.0369 +2 -0.97992 0.019053 1.3311 -0.33347 0.2814 -1.2616 0.90909 -1.0725 -0.62617 +2 -0.9056 0.73973 0.35093 -2.111 -0.50769 1.2491 0.64846 -1.0716 -0.35201 +1 1.3209 1.9154 -0.56509 0.70008 -1.6874 -0.92485 1.2406 1.7231 0.39622 +2 0.10632 0.88089 1.1544 0.27737 2.4332 -0.063819 -0.084136 -0.58305 1.1337 +1 0.7003 -1.4112 0.77725 0.95921 -1.239 -2.6684 -0.48008 -0.92359 -0.94882 +2 -2.0912 0.21124 1.0428 1.3279 -0.6659 -0.89398 0.5482 -0.029518 -1.2925 +2 -1.1484 2.2537 1.3423 -0.20816 0.31427 1.3603 1.6596 -0.49629 -0.63146 +1 1.2996 -2.8499 -0.97843 0.57176 -1.0424 -0.30734 -1.7632 -0.64856 -0.28028 +1 2.4392 -0.85404 -0.1262 -0.054289 0.1684 -1.3913 -0.4719 1.0582 1.4183 +2 -2.8357 2.1818 1.307 -1.1424 -0.97969 0.53689 0.33598 -0.11592 -2.0398 +2 -3.381 0.65778 0.8815 0.35115 -1.0556 -0.15942 -0.15958 0.57712 -2.8992 +1 1.9169 -0.15977 -1.1239 0.80773 -0.63434 -0.77712 -0.74684 0.97499 0.8461 +1 1.3703 -1.0164 0.45114 0.073799 1.259 0.40628 -0.11775 0.14354 2.0331 +2 -0.57067 -0.26266 0.56169 0.65535 0.78349 -0.66788 -0.41928 -0.77901 -0.27518 +1 -0.31373 -3.348 0.66363 -0.88205 -0.69595 1.0783 -1.9735 1.7579 -0.011735 diff --git a/sourcecodes/data/examplecar15node/eIAcontinuous_input_orig.txt b/sourcecodes/data/examplecar15node/eIAcontinuous_input_orig.txt new file mode 100644 index 00000000..a31cb481 --- /dev/null +++ b/sourcecodes/data/examplecar15node/eIAcontinuous_input_orig.txt @@ -0,0 +1,1001 @@ +Voltage_at_plug Car_cranks Spark_plugs Spark_quality Distributer Spark_timing Car_starts Headlights Alternator Charging_system Battery_voltage Battery_age Main_fuse Starter_system Starter_motor +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 1 2 +3 2 2 2 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 1 3 2 2 3 1 3 2 2 3 1 2 2 2 +3 2 2 2 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 3 2 2 3 1 2 2 2 +2 1 3 2 2 3 1 2 2 1 2 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 2 1 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 2 1 2 3 1 1 2 1 1 2 2 1 2 +2 2 1 1 2 3 1 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 1 1 2 3 1 2 2 2 2 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 3 2 1 2 +3 2 2 2 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 2 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 2 2 +1 2 3 1 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +2 2 3 2 2 3 2 2 2 2 2 2 2 2 2 +2 1 1 1 2 3 1 2 2 1 2 1 2 1 2 +3 2 2 2 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 2 1 1 2 3 1 1 2 1 1 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 1 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 1 1 2 2 1 1 2 1 1 2 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 2 1 2 3 1 3 2 2 3 1 1 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 1 3 2 2 3 1 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +1 2 3 1 2 3 1 3 2 2 3 1 2 2 2 +2 2 3 2 2 2 1 2 2 2 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 2 1 2 3 1 1 2 1 1 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 2 1 1 2 1 1 2 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 1 3 2 2 3 1 2 2 2 2 1 2 1 1 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +2 1 2 1 2 3 1 2 2 2 2 2 2 2 2 +3 2 1 2 2 3 2 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +2 2 2 1 2 3 1 2 2 2 2 2 2 2 2 +1 2 2 1 2 3 1 3 2 2 3 2 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 2 1 2 3 1 1 2 1 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 3 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +2 2 1 1 2 3 1 3 2 2 3 2 2 2 2 +3 2 1 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 1 1 1 2 3 1 2 2 1 2 1 2 2 2 +2 2 2 1 2 3 1 3 2 2 3 2 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 1 3 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 2 2 1 2 1 1 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 2 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 1 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +2 2 1 1 2 3 1 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 2 1 1 2 1 2 +3 1 2 2 2 2 1 3 2 2 3 3 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 1 3 2 2 3 1 2 2 2 2 1 2 2 2 +1 2 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 2 1 1 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 2 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 2 1 2 3 1 2 2 1 2 1 2 2 2 +1 1 3 1 2 3 1 2 2 2 2 1 1 1 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 2 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 3 2 2 2 +3 2 2 2 2 3 2 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 1 1 2 3 1 2 2 2 2 1 2 2 2 +3 2 1 2 2 3 1 3 2 2 3 1 2 2 2 +3 2 2 2 2 3 2 3 2 2 3 1 2 2 2 +3 1 1 2 2 3 1 3 2 2 3 1 2 2 2 +1 2 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 2 2 2 3 1 3 2 2 3 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 3 2 2 3 2 1 1 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +2 1 1 1 2 3 1 1 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 2 1 1 2 1 2 +2 2 3 2 2 3 1 2 2 1 2 1 2 2 2 +3 1 1 2 2 2 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +3 2 1 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +2 1 3 2 2 3 1 2 2 1 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 2 1 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 2 2 2 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 3 2 1 2 +1 1 3 1 2 3 1 1 2 2 1 3 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 2 2 2 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 2 1 2 2 1 2 +3 2 3 3 2 3 2 1 2 2 3 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 1 1 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 3 2 2 3 1 1 1 2 +2 2 3 2 2 3 2 2 2 2 2 2 2 2 2 +3 2 3 3 2 2 2 3 2 2 3 3 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 1 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 1 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 3 1 2 3 1 1 2 1 1 2 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 1 2 +2 2 3 2 2 2 2 3 2 2 3 1 2 2 2 +3 2 1 2 2 3 2 2 2 2 3 1 2 2 2 +1 2 2 1 2 3 1 1 2 1 2 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 2 2 2 2 +3 2 2 2 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 2 2 2 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 1 2 2 2 1 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 2 1 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +1 1 1 1 2 2 1 1 2 1 1 1 2 1 2 +1 2 3 1 2 3 1 3 2 2 3 1 2 2 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 1 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 3 2 1 3 1 2 2 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +3 1 3 3 2 2 1 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 2 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 2 2 1 2 +2 1 3 2 2 3 1 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 1 1 2 2 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 2 1 1 2 3 1 1 2 1 1 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 3 1 2 3 1 2 2 1 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 1 3 2 2 3 1 2 2 1 2 2 2 1 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 3 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 1 3 3 2 3 1 1 2 2 3 1 2 1 2 +1 1 3 1 1 2 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 2 2 2 2 3 2 1 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +1 1 1 1 1 1 1 2 2 2 2 3 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +2 1 3 2 2 3 1 2 2 2 2 2 2 1 2 +2 2 3 2 2 3 2 2 2 2 2 2 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 1 2 2 3 2 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 3 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +3 1 1 2 2 2 1 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +3 1 2 2 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 3 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 2 1 2 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 1 1 1 2 2 1 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +2 2 3 2 2 3 2 2 2 2 2 2 2 2 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 1 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 2 1 1 1 1 1 2 1 1 1 1 1 2 +1 2 3 1 2 3 1 2 2 1 2 1 2 2 2 +1 2 1 1 2 3 1 1 2 1 1 1 2 2 2 +2 1 3 2 2 3 1 2 2 2 2 1 2 2 2 +3 2 1 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 1 2 2 2 1 2 2 2 +3 2 3 3 2 3 2 1 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 1 2 2 3 2 2 2 2 +1 2 3 1 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 1 1 1 2 1 1 1 2 1 2 +1 1 2 1 2 2 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 3 2 1 2 +2 2 3 2 2 3 2 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 2 2 2 2 2 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +2 2 3 2 2 3 2 1 2 2 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 3 2 1 2 +2 2 3 2 2 3 2 2 2 2 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 1 1 2 2 1 1 2 1 1 2 2 1 2 +2 2 1 1 2 3 1 2 2 1 2 1 2 2 2 +1 1 2 1 2 3 1 1 2 2 1 1 2 2 2 +1 1 3 1 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 2 1 2 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +1 2 3 1 2 2 1 1 2 2 1 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 1 2 2 1 2 1 2 2 2 +1 2 3 1 2 3 1 1 2 2 1 2 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +2 2 1 1 2 3 1 2 2 2 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 2 2 2 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 1 3 2 2 3 1 2 2 2 2 2 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 1 1 1 2 1 1 2 2 1 2 +2 2 1 1 2 3 1 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 1 2 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 1 2 2 3 2 2 3 1 2 2 2 +1 2 2 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 3 1 3 2 2 3 1 1 1 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 3 2 1 2 +2 1 3 2 2 3 1 2 2 2 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 3 2 1 2 +2 1 3 2 2 3 1 2 2 1 2 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 2 2 2 3 1 2 2 2 +1 1 3 1 2 1 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 2 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 2 1 2 3 1 1 2 1 1 2 2 1 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 2 2 2 2 2 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 2 1 2 2 3 2 1 2 2 3 1 2 2 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 1 2 2 3 2 2 2 2 +2 1 3 2 2 3 1 2 2 1 2 1 2 2 2 +2 2 3 2 2 3 1 2 2 1 2 1 2 2 2 +3 2 1 2 2 3 1 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 2 3 3 2 3 2 3 2 1 3 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 1 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 1 3 3 2 2 1 3 2 2 3 1 2 1 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 1 3 3 2 2 1 1 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +3 1 1 2 2 3 1 1 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 3 1 2 3 1 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 2 1 3 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 3 1 2 3 1 2 2 1 2 1 1 1 2 +1 2 1 1 2 3 1 1 2 1 1 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 2 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 2 2 2 3 3 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 2 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 1 1 1 3 1 1 2 1 1 3 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 3 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 1 2 2 3 1 2 2 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 3 1 2 3 1 2 2 2 2 2 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 1 2 2 2 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +1 2 3 1 1 3 1 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 2 2 2 2 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 1 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +3 2 1 2 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 2 2 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 2 2 1 2 1 1 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 2 2 1 2 2 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +2 2 1 1 2 3 1 2 2 2 2 2 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 1 3 3 2 2 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 3 1 2 3 1 2 2 1 2 1 2 2 2 +1 2 3 1 2 3 1 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 1 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 2 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 2 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 2 1 3 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 1 2 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 2 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +3 1 1 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 2 1 2 3 1 2 2 2 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +2 1 1 1 2 3 1 2 2 2 2 2 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 1 2 2 3 1 3 2 2 3 2 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +2 2 3 2 2 3 1 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 2 1 1 2 2 1 3 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +3 2 1 2 2 3 1 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 1 2 2 2 2 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 2 2 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 1 1 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +2 2 1 1 2 3 1 2 2 1 2 1 2 2 2 +2 2 2 1 2 1 1 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 2 2 2 1 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +2 2 1 1 2 2 1 2 2 1 2 1 2 2 2 +2 2 3 2 2 3 2 2 2 2 2 1 2 2 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +2 2 1 1 2 2 1 2 2 1 2 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 1 1 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 1 3 2 2 3 1 2 2 1 2 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 3 2 1 2 +2 2 3 2 2 3 1 2 2 1 2 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 1 1 2 2 1 2 2 2 2 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 2 2 2 3 2 3 2 2 3 2 2 2 2 +2 1 3 2 2 2 1 2 2 2 2 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 1 3 3 2 2 1 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +2 1 3 2 2 3 1 1 2 2 2 2 2 2 2 +2 2 1 1 2 2 1 2 2 1 2 1 2 2 2 +1 2 3 1 2 3 1 3 2 2 3 1 2 2 2 +2 2 1 1 2 3 1 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 2 1 1 2 3 1 2 2 2 2 3 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +2 2 3 2 2 3 2 2 2 2 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +2 1 3 2 2 3 1 2 2 2 2 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +3 2 2 2 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 2 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 1 2 2 3 2 3 2 2 3 2 2 2 2 +2 1 3 2 2 3 1 2 2 2 2 1 2 1 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +2 1 2 1 2 3 1 2 2 1 2 1 2 2 2 +3 2 2 2 2 2 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 1 2 2 3 1 3 2 2 3 1 2 2 2 +2 1 3 2 2 3 1 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 1 3 2 2 3 1 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +2 1 3 2 2 3 1 2 2 1 2 1 2 1 2 +2 1 1 1 2 3 1 2 2 1 2 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 2 1 1 2 1 1 2 2 1 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 2 2 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +2 1 3 2 2 3 1 2 2 1 2 1 2 1 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 1 2 2 3 1 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 1 1 2 3 1 1 2 1 2 1 2 2 2 +3 1 1 2 2 3 1 3 2 2 3 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +2 2 1 1 2 3 1 3 2 2 3 2 2 2 2 +3 2 2 2 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 1 2 2 3 2 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 1 3 2 2 3 1 2 2 2 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 3 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +1 2 3 1 2 3 1 1 2 1 1 2 2 2 2 +3 2 3 3 2 2 2 3 2 2 3 2 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 1 1 2 3 1 2 2 1 2 1 2 2 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +2 1 1 1 2 3 1 2 2 1 2 1 2 1 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 2 2 2 2 +3 1 3 3 2 2 1 3 2 2 3 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +3 2 2 2 2 3 2 3 2 2 3 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 3 2 2 2 +1 1 3 1 2 2 1 2 2 1 2 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 1 2 2 2 1 1 2 2 3 1 2 2 2 +3 2 1 2 2 3 1 3 2 2 3 3 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 2 1 2 2 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 2 2 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 2 2 2 2 +2 2 1 1 2 3 1 2 2 2 2 1 2 2 2 +3 2 2 2 2 3 1 3 2 2 3 1 2 2 2 +1 2 3 1 2 2 1 2 2 2 2 2 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 1 2 2 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 2 1 2 3 1 2 2 2 2 2 2 2 2 +2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 +2 1 2 1 2 3 1 2 2 1 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 1 2 1 2 3 1 2 2 2 2 3 2 2 2 +2 2 3 2 2 2 1 2 2 2 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 3 1 2 3 1 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 2 1 2 2 1 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 1 2 +3 2 2 2 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 1 2 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 2 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 2 1 1 2 1 1 3 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 1 2 +2 2 3 2 2 3 2 3 2 2 3 1 2 2 2 +3 2 2 2 2 3 2 1 2 2 3 2 2 2 2 +2 1 1 1 2 3 1 2 2 1 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 2 1 1 2 1 1 2 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +2 1 3 2 2 2 1 2 2 1 2 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 3 2 2 3 1 2 2 2 +2 2 2 1 2 3 1 2 2 1 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 2 1 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 2 1 1 2 1 1 2 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 2 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +1 2 3 1 2 2 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 1 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 2 1 2 2 1 3 2 2 3 1 1 1 2 +1 1 1 1 2 3 1 1 2 1 1 2 2 1 2 +2 2 1 1 2 3 1 2 2 1 2 1 2 2 2 +2 1 3 2 2 3 1 2 2 1 2 1 2 1 2 +1 1 3 1 2 3 1 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 2 1 2 2 1 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +2 2 1 1 2 3 1 2 2 1 2 1 2 2 2 +2 2 3 2 2 3 1 2 2 1 2 2 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 1 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 2 2 1 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 1 2 2 3 2 3 2 2 3 2 2 2 2 +3 2 1 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 1 2 2 2 3 1 3 2 2 3 1 2 2 2 +3 2 2 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +3 2 1 2 2 3 2 3 2 1 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 1 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 3 1 2 3 1 3 2 1 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 1 1 2 3 1 1 2 1 1 1 1 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 2 2 2 3 2 3 2 2 3 1 2 2 2 +2 1 3 2 2 3 1 2 2 2 2 2 2 1 2 +2 1 3 2 2 3 1 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 2 2 1 2 2 2 +1 1 3 1 2 1 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 2 1 2 2 1 1 2 1 1 2 2 1 2 +3 2 3 3 2 2 2 3 2 2 3 2 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 3 2 2 2 +3 2 1 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +2 2 3 2 2 3 1 2 2 2 2 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +2 2 1 1 2 3 1 2 2 2 2 1 2 2 2 +3 1 2 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 3 1 1 2 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 1 1 1 2 3 1 3 2 2 3 1 2 2 2 +1 2 3 1 2 2 1 1 2 1 1 1 2 1 2 +1 2 1 1 2 3 1 1 2 1 1 2 2 2 2 +3 1 1 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 1 1 2 +2 2 1 1 2 3 1 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 2 2 2 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 2 1 1 2 1 1 2 2 1 2 +2 2 3 2 2 3 1 2 2 1 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +2 1 3 2 2 3 1 1 2 1 2 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 2 2 2 2 3 2 1 2 2 3 1 2 2 2 +3 1 1 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 2 1 2 3 1 1 2 1 1 2 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 2 2 1 2 1 2 2 2 +2 1 1 1 2 3 1 2 2 2 2 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 1 2 +1 1 3 1 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 1 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 1 1 2 2 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +2 1 3 2 2 3 1 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 1 2 2 1 2 1 2 2 2 +2 2 3 2 2 3 1 2 2 2 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 2 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 2 2 2 2 2 2 2 2 +2 2 3 2 2 3 2 1 2 2 2 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 1 3 2 2 3 1 2 2 1 2 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 2 2 1 2 +1 2 1 1 2 3 1 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 1 2 2 2 2 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 3 2 1 2 +1 2 3 1 2 3 1 1 2 1 1 2 2 2 2 +2 2 3 2 2 3 2 2 2 1 2 2 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 2 2 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 2 1 1 2 1 1 2 2 1 2 +3 1 1 2 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 2 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 3 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 1 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 2 2 3 2 2 3 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 3 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 2 2 2 3 1 3 2 2 3 1 2 2 2 +2 2 1 1 2 3 1 2 2 1 2 1 2 2 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 2 1 3 2 2 3 1 1 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 2 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 1 2 2 2 2 3 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 3 3 2 3 2 2 2 2 3 1 2 1 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 1 1 2 2 3 1 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 1 2 2 2 2 2 2 2 2 +1 2 3 1 2 3 1 2 2 2 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 2 2 2 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +3 2 1 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 2 2 1 2 +1 1 3 1 2 3 1 1 2 2 1 2 2 1 2 +3 1 3 3 2 3 1 3 2 2 3 1 2 2 2 +3 2 1 2 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 2 2 3 2 2 3 1 2 2 2 +1 2 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 1 1 2 3 1 1 2 1 1 1 2 2 2 +3 2 1 2 2 3 1 3 2 2 3 1 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 1 2 2 2 2 3 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 2 2 2 3 1 3 2 2 3 1 2 2 2 +3 1 2 2 2 2 1 3 2 2 3 1 2 2 2 +2 2 1 1 2 3 1 2 2 2 2 1 2 2 2 +2 2 3 2 2 3 2 3 2 2 3 2 2 2 2 +1 1 2 1 2 3 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +1 1 3 1 2 2 1 1 2 1 1 1 2 1 2 +3 1 1 2 2 3 1 3 2 2 3 1 2 2 2 +2 2 3 2 2 3 2 2 2 2 2 2 2 2 2 +1 1 3 1 2 3 1 1 2 2 1 1 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +3 2 3 3 2 3 2 3 2 2 3 2 2 2 2 +2 2 2 1 2 3 1 3 2 2 3 1 2 2 2 +1 1 3 1 2 2 1 1 2 1 1 3 2 1 2 +3 2 3 3 2 3 2 3 2 2 3 1 2 2 2 +1 1 1 1 2 3 1 1 2 1 1 1 2 1 2 +2 2 3 2 2 3 2 2 2 2 2 1 2 2 2 +1 1 3 1 2 3 1 1 2 1 1 1 2 1 2 +1 2 3 1 2 3 1 3 2 2 3 1 2 2 2 diff --git a/sourcecodes/enter_netID.php b/sourcecodes/enter_netID.php new file mode 100644 index 00000000..f90f78db --- /dev/null +++ b/sourcecodes/enter_netID.php @@ -0,0 +1,77 @@ +<!DOCTYPE HTML> +<html> + +<?php + +include("header_new.inc"); +include("input_validate.php"); + +$netID = ""; +$netIDErr = ""; +if ($_SERVER["REQUEST_METHOD"] == "POST") { + if (empty($_POST["netID"])) { + $netIDErr = "Entering a network ID is required"; + } else { + // $netID = valid_keyval($_POST["netID"]); + $netIDErr = "1"; + $netID = test_input($_POST["netID"]); + // $netIDErr = "1"; + // check if name only contains letters + if (strlen($netID)!=3) { + $netIDErr = "Network ID must be three letters"; + } + if (!preg_match('/^[a-zA-Z]+$/',$netID)) { + $netIDErr = "Only letters are allowed"; + } + } +} + +function test_input($data) { + $data = trim($data); + $data = stripslashes($data); + $data = htmlspecialchars($data); + return $data; +} +?> + + +<!-- Site navigation menu --> +<ul class="navbar"> + <li><a href="help.php" target="_blank">Help</a> + <li><a href="home.php">Home</a> +</ul> + +<div id="outer"> +<!-- Main content --> +<br> +<br> +<h1>Enter network ID from previously used network</h1> +<br> +<p align="justify"> + Networks that have previously been generated in BNW can be accessed by entering the network ID in the input box below. The network ID is currently a three character string that can be found on the left hand menu of any network page. Network files are periodically deleted from BNW so it is possible that older networks may no longer be active. +<br> +<br> +<p><span class="error"></span></p> +<FORM METHOD="post" ACTION="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> + Network ID:<INPUT TYPE="text" name="netID" value="<?php echo $netID;?>" style="padding: 2px 5px; border: 2px solid; border-color: black black black black; font-family: Georgia, ..., serif; font-size: 18px; +display: block; height: 30px; width: 100px;"><span class="error"> <?php echo $netIDErr;?></span> +<br><input type="submit" name="submit" value="Submit" style="display: block; height: 30px; width:100px; font-family: Georgia, ..., serif; font-size: 16px;"> +</FORM> +</p> +<br> + +<?php +if ($netIDErr=="1") +{ + $keyval=$netID; +?> +<script> + window.open("layout.php?My_key=<?php print($keyval);?>",'_self',false); +</script> +<?php +} +?> + +</div> +</body> +</html> \ No newline at end of file diff --git a/sourcecodes/example.php b/sourcecodes/example.php index dc59cc3e..11c74633 100644 --- a/sourcecodes/example.php +++ b/sourcecodes/example.php @@ -1,5 +1,5 @@ <?php - +include("input_validate.php"); $oldkeyval=$_GET["My_key"]; $type_n=array(); @@ -7,8 +7,9 @@ $type_n=array(); $type_n=explode("|",$oldkeyval); -$example=trim($type_n[0]); -$oldkeyval=trim($type_n[1]); +$example=valid_input(trim($type_n[0])); +$oldkeyval=valid_keyval(trim($type_n[1])); + /////////////Generate a random key///////////////////// $alphas=array(); diff --git a/sourcecodes/execute_bn_gom.php b/sourcecodes/execute_bn_gom.php index f91d4bd7..266bff70 100644 --- a/sourcecodes/execute_bn_gom.php +++ b/sourcecodes/execute_bn_gom.php @@ -1,23 +1,27 @@ <?php -$keyval=$_GET["My_key"]; +include("input_validate.php"); +$keyval=valid_keyval($_GET["My_key"]); //////////////execute c codes for local score/////////////////// $dir="./data/"; $pfile="./data/".$keyval."parent.txt"; $parentf=file_get_contents("$pfile"); +//$maxp=valid_input($parentf); $maxp=trim($parentf); $kfile="./data/".$keyval."k.txt"; $kf=file_get_contents("$kfile"); +//$maxk=valid_input($kf); $maxk=trim($kf); $thrfile="./data/".$keyval."thr.txt"; $thr=file_get_contents("$thrfile"); +//$thr=valid_input($thr); $thr=trim($thr); diff --git a/sourcecodes/executionprogress.php b/sourcecodes/executionprogress.php index 99483a02..6bdec524 100644 --- a/sourcecodes/executionprogress.php +++ b/sourcecodes/executionprogress.php @@ -3,9 +3,9 @@ include("header_new.inc"); include("runtime_check.php"); +include("input_validate.php"); - -$keyval=$_GET["My_key"]; +$keyval=valid_keyval($_GET["My_key"]); $dir="./data/"; //number of parents @@ -28,6 +28,7 @@ $runtime=exe_time($keyval,$parent_number,$k_number); <div> <p><h3><?php +print("Network ID: $keyval<br/>"); print("Estimated run time: $runtime seconds"); ?> <br><br></h3> diff --git a/sourcecodes/faq.php b/sourcecodes/faq.php index e9f48b13..7e3d918b 100644 --- a/sourcecodes/faq.php +++ b/sourcecodes/faq.php @@ -1,8 +1,9 @@ <?php - +include("input_validate.php"); $key=$_POST["My_key"]; if($key=="") - $key="ab";//uniqid(""); + $key="abc";//uniqid(""); +$key=valid_keyval("$key"); include("header_new.inc"); ?> @@ -120,8 +121,8 @@ While it does not fully support dynamic Bayesian network modeling, BNW can be us <a name=old_model><h3>7. Can I restore a previous session containing a model in BNW?</h3></a> </tr> <br> -<tr><td> -<p align="justify">While there is no current method to automatically restore a previous session of BNW, users have the option of downloading a file that contains the structure of their model. This file can be loaded in BNW on return visits to the site, allowing them to skip the potentially time consuming structure learning step. To download the structure matrix file after structure learning of the dataset for the first time, click on "Display structure matrix" on the left side of the prediction interface, scroll to the bottom of the popup window, and click "Download". This file and the original input data file and then be loaded into BNW by clicking "Make predictions using a known structure" on the BNW home page.<br> +<tr><td><p align="justify"> BNW has been recently been updated to allow for returning to a previous network model. Each network is currently identified by a three letter network ID that is noted on the upper left of the network page. This network ID can be entered into a link on the left menu of the BNW homepage. Users should note that data is occasionally cleared from the BNW server, so this method will may only allow users to return to a network model for a short time. Users can follow the description below for longer term use.<br><br> +Additionally, users have the option of downloading a file that contains the structure of their model. This file can be loaded in BNW on return visits to the site, allowing them to skip the potentially time consuming structure learning step. To download the structure matrix file after structure learning of the dataset for the first time, click on "Display structure matrix" on the left side of the prediction interface, scroll to the bottom of the popup window, and click "Download". This file and the original input data file and then be loaded into BNW by clicking "Make predictions using a known structure" on the BNW home page.<br> </td></tr> </table> <br> diff --git a/sourcecodes/filecopy.sh b/sourcecodes/filecopy.sh index 15ce4e24..a5616952 100644 --- a/sourcecodes/filecopy.sh +++ b/sourcecodes/filecopy.sh @@ -8,4 +8,16 @@ do # take action on each file. $f store current file name #echo "new Processing $new file..." cp $f $new -done \ No newline at end of file +done +temp='looCV_temp.txt' +rm $2$temp +temp='looCV.txt' +rm $2$temp +temp='kfoldCV_temp.txt' +rm $2$temp +temp='kfoldCV.txt' +rm $2$temp +temp='ts_upload.txt' +rm $2$temp +temp='ts_output.txt' +rm $2$temp diff --git a/sourcecodes/graphviz_structure.php b/sourcecodes/graphviz_structure.php index c872c1fd..2e39e268 100644 --- a/sourcecodes/graphviz_structure.php +++ b/sourcecodes/graphviz_structure.php @@ -17,7 +17,8 @@ function calcHeight() <?php include("header_new.inc"); -$keyval=$_GET["My_key"]; +include("input_validate.php"); +$keyval=valid_keyval($_GET["My_key"]); /////////////////////////////////structure matrix////////////////////////////////////////////////////////// diff --git a/sourcecodes/header_batchsearch.inc b/sourcecodes/header_batchsearch.inc index 95ff5687..4e142255 100644 --- a/sourcecodes/header_batchsearch.inc +++ b/sourcecodes/header_batchsearch.inc @@ -4,6 +4,17 @@ <script language="JavaScript"> <!-- hide +function input_check(input) { + var valid_char = /^[a-zA-Z0-9/./-]+$/; + if(valid_char.test(input)) + { + return true; + } + else + { + return false; + } +} function demo_str() { with(window.document.key_search) diff --git a/sourcecodes/header_batchsearch.inc~ b/sourcecodes/header_batchsearch.inc~ new file mode 100644 index 00000000..ff40409c --- /dev/null +++ b/sourcecodes/header_batchsearch.inc~ @@ -0,0 +1,253 @@ +<html> +<head> +<LINK REL=StyleSheet HREF="./my_style.css" TYPE="text/css"> +<script language="JavaScript"> +<!-- hide + +function input_check(input) { + var valid_char = /^[a-zA-Z0-9/.]+$/; + if(valid_char.test(input)) + { + return true; + } + else + { + return false; + } +} +function demo_str() +{ + with(window.document.key_search) + { + searchkey.value="Genotype\tGene1\tGene2\tGene3\tPhenotype\n0\t1\t0\t1\t0\n0\t0\t1\t0\t0\n0\t0\t0\t0\t1\n0\t0\t0\t0\t1\n0\t0\t0\t0\t0\n"; + } +} + +function demo() +{ + with(window.document.key_search) + { + + // searchkey.value="Genotype\tGene1\tGene2\tGene3\tPhenotype\n9.287\t9.191\t9.206\t9.285\t9.284\n10.039\t9.976\t10.129\t9.985\t10.055\n9.785\t9.852\t9.955\t9.972\t10.067\n8.529\t8.663\t8.707\t8.691\t8.743\n9.122\t9.057\t9.139\t9.067\t9.065\n8.964\t8.888\t8.879\t8.887\t8.803\n10.264\t10.317\t10.406\t10.344\t10.26\n9.089\t9.017\t9.121\t9.072\t9.021\n9.329\t9.321\t9.408\t9.398\t9.363\n9.47\t9.112\t9.399\t9.423\t9.481\n8.575\t8.404\t8.39\t8.554\t8.523\n9.093\t8.89\t9.092\t9.028\t9.016\n8.421\t8.375\t8.467\t8.439\t8.436\n9.678\t9.522\t9.65\t9.517\t9.679\n8.114\t8.38\t8.387\t8.324\t8.344\n8.447\t8.341\t8.731\t8.262\t8.675\n9.522\t9.488\t9.612\t9.505\t9.569\n10.742\t10.597\t10.76\t10.566\t10.668\n9.266\t9.292\t9.37\t9.219\t9.454\n8.052\t8.358\t8.311\t8.225\t8.29\n9.82\t9.655\t9.788\t9.805\t9.75\n9.343\t9.473\t9.513\t9.601\t9.454\n10.249\t10.208\t10.24\t10.089\t10.29\n8.612\t8.472\t8.565\t8.586\t8.528\n8.749\t7.892\t8.736\t7.965\t8.711\n9.54\t9.584\t9.678\t9.807\t9.65\n9.327\t9.233\t9.316\t9.416\t9.341\n9.005\t8.718\t9.03\t8.952\t9.163\n9.356\t9.112\t9.28\t9.184\t9.255\n9.712\t9.362\t9.554\t9.566\t9.533\n9.369\t9.504\t9.519\t9.589\t9.529\n11.104\t10.966\t11.056\t11.224\t11.122\n9.689\t9.61\t9.715\t9.707\t9.739\n9.512\t9.241\t9.343\t9.362\t9.391\n9.21\t9.025\t9.231\t9.196\t9.109\n8.607\t8.753\t8.85\t8.822\t8.778\n9.762\t9.782\t9.783\t9.822\t9.812\n8.881\t8.764\t8.897\t8.816\t8.85\n9.368\t9.401\t9.435\t9.348\t9.487\n8.65\t8.489\t8.619\t8.606\t8.586\n8.58\t8.708\t8.468\t8.77\t8.452\n9.444\t9.279\t9.423\t9.445\t9.403\n8.656\t8.744\t8.755\t8.714\t8.704\n9.628\t9.372\t9.522\t9.379\t9.442\n9.586\t9.525\t9.67\t9.638\t9.562\n8.363\t8.363\t8.414\t8.455\t8.343\n11.008\t10.678\t10.886\t10.953\t10.696\n9.148\t9.058\t9.197\t9.185\t9.131\n8.936\t8.9\t8.909\t9.036\t8.808\n9.244\t9.13\t9.177\t9.321\t9.311\n7.707\t7.75\t7.752\t7.802\t7.704\n8.917\t8.785\t8.953\t8.871\t8.805\n9.121\t8.95\t9.031\t9.029\t9.018\n9.635\t9.615\t9.788\t9.662\t9.752\n9.214\t9.401\t9.565\t9.44\t9.504\n8.408\t8.47\t8.577\t8.496\t8.418\n9.252\t9.347\t9.432\t9.394\t9.443\n9.615\t9.43\t9.564\t9.399\t9.528\n9.202\t8.755\t9.124\t8.915\t8.954\n9.558\t9.736\t9.69\t9.813\t9.707\n9.066\t9.094\t9.027\t9.055\t9.067\n8.607\t8.516\t8.635\t8.661\t8.557\n9.266\t9.073\t9.141\t9.131\t9.078\n9.074\t8.944\t9.082\t9.075\t8.962\n10.191\t10.084\t10.192\t10.215\t10.222\n9.116\t8.656\t9.057\t9.007\t9.01\n10.25\t9.957\t10.151\t10.131\t10.095\n9.159\t9.196\t9.584\t9.291\t9.239\n8.397\t8.502\t8.453\t8.559\t8.598\n9.176\t9.095\t9.255\t9.256\t9.249\n9.648\t9.584\t9.788\t9.801\t9.652\n9.055\t9.151\t9.097\t9.169\t9.103\n8.799\t8.522\t8.756\t8.649\t8.712\n9.457\t9.062\t9.387\t9.363\t9.233\n9.389\t9.161\t9.316\t9.288\t9.353\n8.349\t8.54\t8.57\t8.555\t8.512\n9.708\t9.586\t9.688\t9.69\t9.731\n8.853\t9.128\t9.107\t9.152\t9.131\n9.349\t9.14\t9.28\t9.304\t9.318\n9.151\t9.131\t9.229\t9.305\t9.276\n8.471\t8.224\t8.394\t8.327\t8.393\n9.549\t9.661\t9.642\t9.717\t9.553\n9.74\t9.685\t9.838\t9.909\t9.876\n9.906\t9.706\t9.929\t9.822\t9.776\n9.261\t8.994\t9.154\t8.996\t9.208\n9.805\t9.613\t9.693\t9.644\t9.654\n8.806\t8.692\t8.857\t8.739\t8.899\n8.98\t8.627\t8.818\t8.669\t8.773\n8.396\t8.534\t8.574\t8.512\t8.579\n9.193\t9.079\t9.23\t9.038\t9.171\n9.255\t9.153\t9.321\t9.166\t9.102\n9.025\t8.98\t9.242\t9.116\t8.959\n9.142\t9.066\t9.254\t9.183\t9.067\n9.361\t9.204\t9.277\t9.251\t9.2\n"; +searchkey.value="Genotype\tGene1\tGene2\tGene3\tPhenotype\n2\t0.14036\t-1.9418\t-0.42948\t0.25915\n1\t-0.51633\t2.0851\t0.36011\t-1.4461\n2\t1.2073\t-0.66507\t-1.0782\t0.25577\n1\t-1.3816\t0.0015871\t1.6678\t-1.0284\n1\t0.02627\t-0.25511\t1.386\t-0.72776\n2\t1.4749\t-1.0507\t-1.1886\t0.5869\n1\t-0.81364\t0.15985\t1.3432\t-0.88628\n2\t0.66482\t0.37888\t-1.0411\t0.41452\n2\t0.74691\t-0.79568\t0.043531\t0.83479\n1\t-0.13122\t-0.2089\t1.0839\t0.26364\n1\t0.10727\t1.0991\t0.46907\t0.089453\n1\t-1.3152\t-0.96453\t0.1134\t0.76625\n2\t1.3244\t-1.2513\t-0.75496\t0.17869\n1\t-1.0526\t1.0432\t0.41152\t-1.2805\n1\t-0.97163\t0.048348\t1.2317\t-0.57484\n2\t1.6526\t-0.84306\t-0.58025\t1.0336\n2\t1.3678\t0.30984\t-0.8071\t0.2227\n2\t0.68011\t-0.40842\t-0.42178\t0.48112\n2\t1.7573\t-0.81682\t-1.1508\t1.2448\n1\t-0.38513\t0.87495\t0.62368\t-0.3029\n2\t1.6804\t-0.79057\t-0.54125\t0.86227\n1\t-0.8\t1.4548\t0.38404\t-0.61435\n1\t-0.4981\t0.77635\t-0.84664\t0.2084\n1\t-1.1284\t0.6439\t-1.346\t-0.69702\n1\t-1.1604\t-0.24286\t-1.1865\t0.84499\n1\t-0.46941\t0.90822\t0.42266\t-0.60657\n1\t-1.4694\t0.8425\t1.322\t-0.20931\n1\t-1.5602\t1.0644\t0.77609\t-1.0143\n1\t0.73219\t-2.3196\t-0.051471\t0.51013\n1\t-0.33907\t0.31261\t-0.23894\t0.34665\n2\t1.4875\t-1.2278\t-0.3665\t1.1055\n2\t1.7778\t-0.13868\t-0.79405\t-0.17391\n1\t-1.0143\t0.15579\t0.94312\t-0.81445\n1\t-0.79556\t0.34673\t0.80697\t-1.0352\n2\t1.0902\t0.40553\t-0.90835\t0.18326\n1\t-1.4082\t1.0887\t0.19177\t-0.37926\n1\t0.65948\t-0.29631\t1.4025\t-0.6577\n1\t-0.10541\t0.50632\t-0.62135\t-0.69439\n1\t-1.4274\t0.8999\t0.040714\t-0.64084\n1\t-0.049221\t0.37995\t0.34105\t0.14789\n1\t-0.27827\t0.44415\t0.75087\t-0.94544\n1\t-0.86182\t-0.20052\t-0.69887\t0.9523\n1\t-0.64715\t-0.57779\t0.14728\t-1.378\n1\t-1.4341\t0.047062\t0.22559\t-0.29402\n2\t0.63681\t-0.57975\t-1.4907\t0.78349\n1\t-0.51958\t0.99085\t0.80223\t-1.224\n1\t0.37793\t1.4098\t0.53726\t-1.4404\n2\t0.62224\t-0.74639\t-0.43616\t-0.10073\n1\t-0.27451\t0.48363\t0.51358\t-0.2455\n2\t1.7129\t-1.4765\t-0.46897\t1.0381\n1\t-1.2877\t1.2851\t0.094527\t-0.65207\n1\t-1.5119\t1.0398\t0.36671\t-0.099971\n2\t1.7707\t-1.6549\t-1.2189\t0.7862\n2\t2.9819\t-1.2002\t-1.1488\t1.5639\n1\t-1.4328\t1.428\t-0.30167\t-0.39427\n2\t1.3157\t-0.044003\t-1.5064\t1.0888\n2\t1.4134\t-2.0733\t-0.90404\t1.2135\n2\t1.3233\t-0.46672\t-0.97303\t0.41323\n1\t-0.0027834\t-1.4766\t0.23116\t0.74087\n1\t-0.23902\t0.085836\t-0.45144\t0.25977\n1\t-0.7959\t-0.092194\t0.48212\t-1.0995\n1\t-0.87981\t-0.2021\t1.0342\t-0.77157\n1\t0.073991\t-0.16933\t0.68415\t0.059864\n1\t-0.19906\t-0.88838\t1.4616\t-0.77209\n1\t0.33053\t-0.24742\t0.84394\t-0.47337\n1\t-2.4677\t1.9733\t0.15703\t-1.1391\n1\t-1.4296\t0.27178\t1.4961\t-0.57637\n1\t-1.9217\t0.69186\t0.62457\t-0.18303\n1\t-1.2431\t0.98661\t-0.66998\t-0.62435\n1\t-1.3104\t0.56634\t-0.41563\t-0.21244\n1\t-0.79584\t0.073539\t1.5764\t-0.5129\n1\t-1.4595\t-0.42548\t-1.4099\t2.1827\n2\t1.2151\t-1.5028\t-1.3091\t1.6489\n2\t-0.14578\t-0.27147\t-0.853\t-0.42563\n2\t0.74643\t1.0798\t-0.98467\t0.15834\n1\t-0.93086\t-0.3765\t0.79132\t0.43374\n1\t-0.26466\t-0.24432\t0.52009\t0.4509\n1\t-1.1895\t0.026542\t0.26611\t-0.23827\n1\t-0.42519\t1.2643\t0.1902\t-0.81237\n1\t-1.0248\t-0.49955\t0.064074\t0.47088\n2\t2.2907\t-1.4612\t-0.95431\t1.5863\n2\t1.5697\t-0.3165\t-1.4525\t1.136\n1\t-1.0159\t0.053298\t1.6214\t-1.2228\n1\t-0.40383\t1.8453\t0.4486\t-0.97178\n1\t0.5124\t-0.20628\t0.91974\t-0.82012\n2\t1.3073\t-1.7029\t-0.79974\t1.0053\n1\t-0.69588\t0.26406\t-0.53979\t-0.021947\n1\t-0.08423\t0.66182\t2.0539\t-1.9058\n2\t2.1006\t-1.12\t-0.94615\t0.67055\n2\t0.5511\t-0.69758\t-0.43734\t0.77074\n2\t1.3879\t-1.1487\t-1.0375\t1.4641\n1\t0.20633\t0.50759\t0.69341\t-0.58827\n1\t1.6753\t-1.0901\t-1.0288\t1.9808\n1\t-0.94533\t2.6526\t0.93921\t-1.6151\n1\t-1.2071\t-0.68996\t0.029818\t-0.19476\n2\t0.81414\t0.92509\t-0.1681\t-0.28887\n1\t0.18468\t-1.0249\t1.0538\t-0.34692\n1\t-0.96033\t1.0327\t-0.30184\t-0.8787\n2\t0.74032\t-0.15363\t-0.96792\t0.68449\n1\t-0.24615\t1.6257\t1.3952\t-1.0348\n"; + } +} + + +function demo1() +{ + with(window.document.key_search) + { + +searchkey.value="Gene1\tGene2\tGene3\tPhenotype\n2\t2\t1\t1\n2\t2\t1\t2\n1\t1\t2\t2\n1\t1\t2\t2\n2\t1\t1\t1\n1\t1\t2\t2\n1\t1\t2\t2\n2\t2\t1\t1\n2\t1\t2\t2\n1\t1\t2\t2\n1\t2\t2\t2\n2\t1\t2\t2\n2\t1\t1\t1\n1\t1\t2\t2\n2\t2\t1\t1\n2\t2\t1\t1\n1\t1\t2\t2\n2\t2\t1\t1\n2\t2\t1\t1\n1\t1\t2\t2\n1\t2\t1\t1\n1\t1\t2\t2\n2\t2\t2\t1\n2\t1\t1\t1\n2\t1\t1\t1\n2\t2\t1\t1\n2\t2\t1\t1\n1\t1\t2\t2\n2\t2\t1\t1\n2\t2\t1\t1\n2\t2\t1\t2\n2\t2\t1\t1\n2\t1\t1\t2\n2\t2\t2\t2\n1\t1\t2\t2\n1\t1\t2\t2\n2\t2\t2\t1\n1\t1\t2\t2\n2\t2\t1\t1\n2\t1\t2\t1\n1\t2\t1\t2\n1\t2\t2\t1\n2\t2\t1\t1\n2\t2\t2\t1\n2\t2\t1\t1\n1\t1\t2\t2\n2\t2\t1\t1\n1\t1\t2\t2\n1\t1\t2\t2\n1\t1\t2\t2\n2\t1\t1\t1\n2\t2\t1\t1\n2\t1\t1\t1\n2\t2\t2\t1\n1\t1\t2\t2\n1\t2\t1\t1\n1\t1\t2\t2\n2\t2\t1\t1\n1\t1\t2\t2\n1\t1\t2\t2\n2\t1\t1\t2\n2\t2\t1\t2\n1\t1\t1\t2\n2\t1\t2\t2\n1\t1\t2\t2\n2\t2\t1\t1\n2\t1\t2\t2\n1\t1\t2\t2\n1\t1\t2\t2\n1\t1\t2\t2\n2\t2\t1\t1\n1\t1\t2\t2\n1\t1\t2\t2\n1\t1\t2\t2\n2\t2\t1\t1\n1\t1\t2\t2\n2\t2\t1\t1\n1\t1\t2\t2\n1\t1\t2\t2\n1\t1\t2\t2\n1\t1\t2\t2\n2\t2\t1\t2\n2\t1\t2\t2\n1\t1\t2\t2\n2\t2\t1\t1\n2\t2\t1\t1\n1\t1\t2\t2\n2\t2\t1\t2\n1\t1\t2\t2\n2\t2\t1\t2\n2\t2\t1\t1\n2\t2\t1\t1\n1\t1\t2\t2\n2\t2\t1\t1\n1\t2\t1\t1\n2\t2\t1\t2\n1\t1\t2\t2\n1\t1\t2\t2\n1\t1\t1\t2\n1\t2\t2\t2"; + } +} + +function demo2() +{ + with(window.document.key_search) + { + searchkey.value="GenotypeA\tGenotypeB\tGene1\tGene2\tGene3\tGene4\n1\t1\t0.0735451012188\t0.807744827105\t-0.141557122166\t0.871977046116\n2\t1\t0.0783291492541\t0.784023461068\t0.501395957396\t1.20598627055\n2\t1\t0.786243065384\t0.978600201012\t1.10615045137\t0.91427570527\n2\t1\t-0.133165253244\t1.09368397217\t0.943147613583\t1.28625182746\n2\t1\t0.849732696834\t0.701697179341\t1.1597647359\t1.10898527576\n2\t1\t0.117358779641\t1.27641582521\t1.07600246132\t0.837957699405\n1\t2\t0.260845541489\t0.126507267356\t0.134953769296\t1.05166904426\n2\t1\t0.277734881926\t1.07193390309\t0.282304188176\t1.11305323003\n1\t2\t0.23482774261\t1.22992089679\t0.0929753295409\t1.16341704702\n1\t2\t0.948183366714\t0.133267523413\t-0.218162396333\t0.906540379337\n2\t1\t-0.116613369121\t1.14203606435\t0.109901766308\t0.729527128692\n1\t1\t-0.179825551391\t0.10619275827\t0.937787825497\t1.03567603615\n2\t1\t0.293022973091\t1.08721255661\t-0.175473007708\t0.887010836361\n2\t1\t-0.0489346771642\t0.968137836317\t0.107834185199\t0.896061918536\n1\t2\t0.236140871956\t-0.0428030926592\t-0.318492104268\t0.570552965391\n2\t2\t-0.0800211950407\t0.69984329873\t0.188143588172\t1.31042305844\n1\t1\t-0.0036838396465\t0.115049518621\t1.23342471413\t-0.0310668924648\n1\t2\t0.821596343182\t-0.206883091797\t-0.176745465075\t1.00503814188\n2\t1\t0.968136985881\t0.17393492998\t1.10355204542\t1.50730341194\n1\t1\t-0.2529273487\t1.15825296446\t-0.296758267158\t0.334353609539\n2\t2\t0.996924729837\t0.79867304131\t-0.0654588195254\t1.14114632703\n1\t1\t1.11517699739\t1.04475472944\t1.01515337419\t-0.114835981744\n1\t1\t1.13306628335\t0.212806963119\t-0.331850695159\t1.3262481351\n2\t1\t-0.202717212277\t1.16180466017\t0.698481134231\t0.837229654056\n2\t1\t1.09703628172\t0.988374730515\t0.632905281073\t0.871944778559\n1\t1\t0.0877178138353\t0.92193353301\t0.0882061186606\t-0.109998053824\n2\t2\t-0.0465657805556\t1.0562741142\t0.203076906226\t0.947081854544\n1\t1\t0.253626344342\t0.774666759107\t0.160237735682\t0.137119974017\n2\t2\t0.958504778114\t0.696202219462\t0.837104986151\t1.22862239026\n2\t1\t0.0190762231091\t1.07363361357\t0.836517352782\t1.13138357074\n1\t2\t1.04546343625\t1.22248653304\t-0.177641501681\t0.938273372293\n1\t1\t-0.356538939133\t0.926691569307\t-0.0141334158342\t-0.333256032191\n2\t2\t-0.271616290794\t1.02237907773\t-0.0893323176884\t1.13812703435\n1\t1\t0.112310230451\t0.96903715979\t0.735229019751\t0.0718376819618\n2\t2\t-0.0541760888203\t0.910562906664\t0.237421737724\t1.12792106072\n2\t1\t0.140510085427\t1.14598129626\t0.684754216604\t1.37711161908\n1\t2\t0.673132921769\t1.16156481777\t0.828299174842\t1.23484148864\n1\t1\t-0.36576911038\t1.22402806897\t0.985794473424\t0.371258195776\n2\t1\t1.30745593323\t-0.305709792671\t1.18778090128\t0.773246386727\n2\t2\t-0.530650832006\t1.12852174836\t-0.242830565653\t0.83833485032\n1\t1\t-0.291997112416\t-0.0207658889693\t0.172776752193\t0.36694855027\n1\t2\t-0.161225357475\t1.16418585274\t0.00727443800449\t1.1352882361\n2\t2\t1.30343435031\t0.732902323978\t-0.172844997755\t0.874662524376\n2\t2\t0.85539635481\t1.29119106621\t0.016024964511\t1.13160810191\n1\t2\t0.839799562146\t-0.0698184772979\t0.064736024742\t0.888230930115\n1\t2\t0.95789577351\t-0.0042439536723\t0.0555580748795\t1.07993651996\n1\t1\t1.32802494815\t-0.214047314771\t0.329813058688\t0.728172901439\n1\t1\t-0.200890919169\t1.1000313421\t1.04401630691\t0.0521627161216\n2\t2\t0.937448394951\t1.08384634906\t-0.0899239635102\t1.07443211017\n2\t1\t-0.0666111295973\t0.607978461697\t0.178977027858\t0.996958995079\n2\t1\t0.98988279173\t0.936124382141\t1.16162098\t0.953396718798\n1\t1\t0.783923131778\t-0.185782423384\t0.234091790401\t1.05701020406\n1\t1\t0.761503655241\t1.10820714005\t0.784532435857\t-0.125970126396\n2\t1\t-0.0961115621732\t0.992263342859\t0.660910916217\t0.963055169574\n2\t2\t-0.154764213109\t0.730891518005\t-0.109545565909\t1.12272967655\n2\t2\t0.0479283751395\t0.928564948748\t0.0947967021058\t0.98105799191\n2\t2\t1.39168552274\t0.128331277089\t0.10146975109\t1.24231428304\n1\t1\t0.976982771784\t-0.146928630221\t-0.0608841220423\t0.972841874016\n2\t1\t1.15485099166\t0.935197552788\t0.965011443377\t1.34264634759\n1\t2\t-0.166427006522\t0.213464027262\t-0.031343375005\t0.8119490745\n2\t1\t0.602325327176\t1.47360525321\t1.40368030116\t0.887287145417\n1\t2\t1.12050355207\t1.18852964108\t0.0704081979976\t1.19584630693\n2\t1\t0.702485774332\t1.15988608636\t0.294782678413\t0.751491248655\n1\t2\t0.155516690813\t0.251086517248\t0.975388704705\t0.688269967741\n1\t2\t0.038035346805\t0.682904829816\t0.0951645619842\t0.665389726903\n1\t1\t0.339450864189\t0.116879724658\t-0.170951058396\t-0.370117675216\n2\t2\t-0.108372250446\t0.696218715139\t-0.00428297700477\t0.961335352653\n2\t2\t0.0146712646232\t1.12798531635\t0.778687243129\t1.27150673153\n1\t2\t0.704617012215\t1.08526662881\t0.799187464816\t1.13063944956\n1\t1\t1.10224639633\t1.09684843311\t1.13580106237\t0.186395861041\n1\t1\t1.13687210336\t0.592984795387\t0.20048850526\t-0.0553656796539\n1\t2\t0.0632700472019\t0.864610771614\t-0.242802029698\t0.848811159682\n2\t1\t0.0451786925492\t1.33573290418\t0.92973441898\t-0.344011193096\n1\t2\t1.26061879295\t1.09499325896\t0.0222202420765\t0.847629840625\n1\t2\t0.91681254794\t0.290800393334\t-0.0719474399104\t0.926496648214\n2\t1\t1.2172426262\t0.951648627857\t1.25202262128\t0.233889527648\n1\t2\t1.05048646769\t0.172566561404\t0.0550162349302\t0.750079764855\n1\t2\t0.675366500637\t-0.0673050997098\t0.1645804156\t0.781063579107\n2\t1\t0.204088201674\t0.886512802356\t1.05795947541\t0.185790058971\n2\t1\t-0.100901351663\t0.714436170991\t-0.505529978858\t0.647306701065\n1\t2\t0.907207625417\t1.16174653049\t-0.155199134127\t0.747382222584\n1\t2\t0.0672106257479\t0.603637849323\t-0.140625204522\t1.08080017243\n2\t1\t1.2385313097\t1.0695347389\t-0.176990709153\t0.848256839162\n1\t2\t0.186923583294\t0.119157644078\t0.0349289573077\t0.744803259527\n1\t2\t1.09352177593\t0.194715059877\t0.0236391004662\t0.499673191061\n2\t1\t-0.376369481804\t0.985546924317\t0.0945527339598\t0.948918281956\n1\t1\t1.18474855816\t-0.115831486698\t0.283152200427\t0.970403352935\n2\t2\t1.15179008534\t1.11293520284\t0.221811798026\t0.999871011204\n1\t2\t-0.270193067228\t1.1546656712\t-0.244378116913\t0.671654326382\n2\t2\t0.439331185377\t1.12197569445\t0.258362973013\t1.11146143747\n2\t2\t1.01095806207\t0.745930460781\t-0.0409015639874\t1.14791250376\n2\t1\t-0.26402775558\t1.0189980863\t0.0142629520115\t0.959203836932\n1\t1\t1.1622683144\t-0.0120889455187\t1.07714267283\t-0.177584275215\n1\t1\t0.942340790264\t0.254818931717\t0.0587741977709\t0.980453538135\n2\t2\t0.106324819492\t0.79161883369\t-0.16526611256\t0.916230483749\n2\t1\t1.19278065887\t0.913551161988\t-0.0956615348665\t1.05953140511\n1\t1\t0.99020996204\t-0.0516709802571\t0.785783698942\t1.47690006823\n2\t1\t1.1566705292\t1.05878794929\t0.0968404106402\t0.827720917511\n1\t2\t0.05207115921\t-0.252341077617\t-0.0848699551554\t1.19139462554\n2\t2\t0.991086851115\t-0.301180892331\t-0.00253197995383\t1.46608138294\n"; + //W\tL\tN\tM\n + } +} + +function demo3() +{ + with(window.document.key_search) + { + +searchkey.value="A1\tA2\tA3\tA4\tA5\tA6\tA7\tA8\tA9\tA10\tA11\tA12\tA13\tA14\tA15\tA16\n1\t1\t2\t1\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t2\t1\t1\t1\t1\t2\t1\t4\t4\t4\t2\t1\t1\t2\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t1\t2\t3\t1\n1\t2\t2\t2\t1\t1\t2\t3\t3\t3\t4\t3\t2\t2\t3\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n2\t1\t2\t2\t1\t1\t1\t3\t3\t2\t4\t2\t1\t3\t4\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t1\t1\t3\t4\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n2\t2\t2\t2\t1\t1\t2\t3\t3\t1\t4\t1\t1\t3\t1\t1\n1\t1\t2\t2\t1\t1\t1\t3\t1\t1\t1\t1\t1\t3\t1\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t2\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t2\t1\t1\t3\t1\t1\t1\t1\t1\t3\t1\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t4\t3\t1\t2\t3\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t2\t2\t2\t1\t1\t2\t3\t3\t3\t3\t4\t3\t1\t2\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t1\t3\t1\t1\t3\t1\t1\n1\t2\t2\t2\t1\t1\t2\t3\t3\t3\t4\t2\t1\t3\t4\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t2\t1\t1\t3\t1\t1\t1\t1\t1\t3\t1\t1\n1\t1\t2\t1\t1\t1\t1\t3\t3\t3\t3\t3\t1\t2\t3\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t1\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t3\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n2\t1\t2\t2\t1\t1\t1\t3\t3\t2\t4\t2\t1\t3\t4\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t3\t1\t2\t3\n1\t1\t2\t2\t1\t1\t1\t3\t3\t2\t3\t2\t1\t3\t4\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t1\t2\t2\n2\t1\t2\t2\t1\t1\t1\t3\t3\t2\t4\t2\t1\t3\t4\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t2\t3\t3\t3\t3\t3\t2\t2\t3\t1\n1\t1\t2\t2\t2\t1\t1\t3\t1\t1\t1\t1\t1\t3\t1\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t1\t2\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t2\t1\t1\t3\t1\t1\t1\t1\t1\t3\t1\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t1\t2\t3\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t1\t2\t3\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t2\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t3\t4\t2\n1\t1\t2\t2\t2\t1\t1\t3\t1\t1\t1\t1\t1\t3\t1\t1\n1\t1\t2\t2\t2\t1\t1\t3\t1\t1\t1\t1\t1\t3\t1\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t2\t3\t2\t1\t3\t4\t1\n1\t1\t2\t2\t2\t1\t1\t3\t1\t1\t1\t1\t1\t3\t1\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t2\t2\t2\t2\t2\t2\t1\t3\t4\t1\n2\t1\t2\t2\t1\t1\t1\t3\t3\t1\t4\t1\t1\t3\t1\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t4\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t2\t1\t1\t3\t1\t1\t1\t3\t2\t2\t1\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t2\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t2\t3\t3\t3\t3\t3\t2\t2\t3\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t2\t2\t3\t3\t1\t3\t1\t1\t3\t1\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t1\t2\t3\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t2\t2\t2\t1\t1\t2\t3\t3\t3\t3\t2\t1\t3\t4\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t1\t1\t3\t4\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t2\t2\t2\t2\t1\t2\t3\t1\t1\t1\t1\t1\t3\t1\t1\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t3\t3\t3\t3\t3\t2\t2\t3\t2\n1\t1\t2\t2\t1\t1\t1\t2\t2\t2\t2\t2\t1\t3\t4\t1\n"; + } +} + + +function demo8nodes() +{ + with(window.document.key_search) + { + +searchkey.value="Geno1\tGeno2\tTrait1\tTrait2\tTrait3\tTrait4\tTrait5\tTrait6\n2\t2\t0.46259\t1.2692\t-1.3164\t-0.44096\t0.5929\t-0.75422\n1\t1\t-0.10011\t-0.88834\t1.6407\t0.99972\t0.31288\t0.65602\n1\t1\t-1.0533\t-0.55296\t1.2715\t1.3686\t-0.19153\t0.37361\n1\t2\t0.042371\t0.13573\t-0.72659\t-0.66133\t0.43157\t-1.6715\n1\t2\t-0.68686\t-1.6152\t-0.95019\t-1.2239\t0.12319\t-0.79155\n1\t1\t-0.4558\t0.090877\t0.94224\t1.2354\t-0.36356\t0.34937\n1\t1\t0.237\t-0.49002\t1.8939\t1.4399\t0.033059\t1.3229\n1\t2\t0.070265\t0.22547\t-1.4903\t-0.069341\t-0.16148\t-0.01449\n1\t1\t-0.69146\t-0.43461\t1.1501\t0.21205\t-0.18087\t0.32746\n1\t1\t0.31535\t-0.9858\t0.57816\t0.35924\t0.12866\t1.0553\n2\t1\t1.2718\t0.39314\t0.6669\t0.90002\t-0.30206\t1.3376\n1\t1\t1.1871\t-0.45611\t0.87227\t0.31014\t-0.092846\t0.81278\n2\t1\t-1.0168\t-0.44286\t1.6933\t0.72968\t0.038808\t0.81906\n2\t2\t-0.25313\t0.52468\t0.02823\t-0.20984\t-0.075809\t-1.3591\n1\t2\t-0.58108\t-0.3967\t-0.11925\t-0.61288\t0.46778\t0.090941\n1\t2\t-0.88043\t-0.28187\t-1.1645\t-1.2543\t-0.28951\t-1.039\n1\t2\t0.54121\t0.24395\t-1.0043\t-1.4483\t-0.19839\t-2.5407\n2\t1\t0.47375\t1.1319\t0.68553\t1.035\t0.44043\t1.3011\n2\t1\t0.57785\t0.69093\t1.5941\t1.6735\t0.19981\t0.50708\n1\t2\t-0.43989\t0.0024131\t-1.5405\t-1.2304\t-0.15382\t-1.1058\n2\t1\t0.38035\t-0.063535\t1.1606\t1.3124\t-0.38043\t0.6277\n1\t2\t0.70114\t-0.41044\t-0.39767\t-1.5424\t0.27477\t-0.76183\n1\t1\t-0.9406\t-0.20526\t1.3302\t1.097\t0.16006\t1.2988\n1\t2\t0.52122\t0.064793\t-0.031492\t0.21696\t-0.41979\t-0.79123\n1\t2\t-0.53387\t-0.71043\t-0.52344\t-1.5584\t-0.09538\t-1.5781\n1\t1\t0.49563\t-0.58126\t0.7747\t1.274\t0.19196\t0.10624\n2\t2\t1.1499\t1.879\t0.43595\t0.73474\t0.045381\t-0.88645\n1\t2\t0.40705\t-0.37647\t-0.19815\t-1.5366\t0.37167\t-0.10553\n2\t2\t0.62526\t0.043371\t-0.64449\t-0.44076\t-0.4318\t-0.91807\n1\t1\t-0.61788\t-0.62414\t0.3169\t0.85091\t-0.10135\t0.79065\n1\t1\t0.18491\t-1.5226\t1.1149\t0.75046\t0.25948\t0.42431\n2\t2\t0.86063\t0.92883\t-1.1584\t-0.099858\t-0.55095\t-0.064129\n1\t2\t-0.28946\t0.0057533\t-0.95703\t-0.44018\t0.084268\t-0.23718\n1\t1\t-0.073096\t0.16452\t1.4444\t1.1452\t0.46025\t0.30452\n1\t1\t0.15637\t-0.73137\t0.585\t-0.046911\t0.43881\t1.2888\n1\t2\t0.081142\t-0.63691\t-0.14883\t0.66593\t-0.13479\t-0.22207\n1\t1\t0.10876\t-0.23383\t1.8314\t1.3282\t0.4362\t0.90139\n1\t2\t-1.0582\t-0.97152\t-0.57118\t-1.2617\t0.17115\t-0.060679\n2\t2\t-0.47421\t-0.56819\t-0.38775\t0.035215\t0.51982\t-1.6309\n2\t2\t-0.10242\t0.8127\t0.41773\t-1.1308\t-0.30719\t-0.80758\n1\t1\t-0.083462\t-0.4565\t1.1556\t0.3299\t0.087362\t0.31349\n1\t2\t-0.98158\t0.01727\t-1.3281\t-1.4474\t0.54555\t-0.10096\n1\t1\t-0.80604\t-0.19415\t1.4986\t1.3386\t-0.16367\t0.68271\n1\t1\t0.80082\t-0.57853\t1.0716\t0.94015\t-0.54114\t0.032172\n2\t2\t2.0456\t0.97954\t-0.45536\t-0.14332\t-0.25819\t-1.0833\n1\t1\t-0.30148\t0.20623\t0.64194\t0.76414\t-0.59067\t0.64326\n1\t1\t-0.55625\t-0.26957\t1.8447\t1.6568\t-0.38077\t0.58831\n1\t2\t0.11898\t0.80706\t-0.025844\t-0.57984\t-0.23395\t-1.1554\n1\t2\t-0.095497\t-1.0637\t-0.92583\t-0.57928\t0.23695\t-0.42992\n2\t2\t0.066154\t0.73037\t-0.73622\t-0.57047\t0.39169\t0.40928\n1\t1\t0.81522\t0.11381\t0.68971\t0.29219\t0.037792\t0.81502\n1\t1\t-0.65356\t-0.20182\t0.92089\t0.92298\t-0.5417\t0.49215\n1\t1\t-0.90826\t-0.10979\t1.3847\t0.75954\t-0.20255\t0.32975\n1\t2\t-0.25671\t-1.1903\t-1.4241\t-1.6058\t-0.062549\t-1.3981\n2\t2\t-1.8038\t-1.4801\t-0.94121\t-1.6244\t0.4817\t-0.0029469\n1\t2\t0.12651\t0.028719\t-1.5818\t-1.0266\t0.19779\t-0.36357\n1\t1\t-1.0658\t-0.58443\t0.68956\t0.35467\t0.11177\t1.5243\n1\t2\t0.14729\t-0.15111\t-0.027639\t-0.2899\t0.11533\t-0.60305\n2\t2\t-0.76889\t0.87161\t-0.83556\t-1.1777\t-0.21878\t-0.98527\n2\t2\t0.12252\t0.49068\t-0.2557\t-1.5816\t0.25332\t-0.78715\n1\t1\t-0.40287\t0.26456\t0.62208\t0.60909\t0.36074\t0.092703\n2\t1\t-0.78301\t1.4641\t1.3162\t1.9448\t-0.10841\t0.9618\n1\t2\t-0.25018\t-0.32797\t-1.113\t-1.6123\t0.6272\t-1.2718\n2\t1\t0.15804\t-0.18147\t2.4571\t0.59504\t-0.34056\t0.8691\n2\t1\t-0.582\t0.25738\t1.4075\t0.92251\t-0.40889\t0.66381\n1\t1\t-0.26827\t0.58632\t0.51883\t1.5745\t-0.13818\t1.0526\n1\t2\t0.13453\t0.18218\t-0.51676\t-0.54166\t-0.36636\t-1.206\n2\t1\t1.1502\t0.36164\t1.9983\t1.0809\t0.11272\t0.67683\n1\t2\t0.27812\t0.46559\t-1.6109\t-0.91039\t0.3803\t-0.71802\n2\t1\t0.15292\t0.61921\t0.71009\t1.3063\t-0.35819\t0.8661\n1\t2\t0.19902\t0.48986\t-1.4026\t-0.8495\t0.47158\t0.0622\n2\t1\t0.4838\t1.1096\t1.4392\t1.1438\t0.34739\t0.084004\n1\t1\t-0.63609\t-0.35105\t0.63581\t1.1939\t-0.062938\t0.91353\n1\t2\t0.64203\t-0.5095\t-1.7792\t-0.88803\t0.43482\t-0.66314\n1\t1\t-0.18434\t-0.48157\t0.69942\t0.56942\t-0.019967\t0.50506\n1\t1\t0.10168\t-1.0928\t1.2144\t0.28313\t0.22159\t0.54058\n1\t1\t-0.18578\t-0.45336\t1.5468\t0.99679\t0.11821\t1.0476\n1\t2\t-0.60607\t-1.1275\t-0.90963\t-0.69014\t-0.33163\t-1.2734\n1\t1\t-0.35353\t-0.42708\t0.78989\t0.14094\t-0.056632\t0.80598\n1\t1\t-0.020221\t-1.1235\t1.9782\t-0.041281\t0.19857\t1.2488\n1\t1\t1.2346\t-0.37121\t1.3325\t1.1237\t-0.027458\t1.0044\n2\t2\t-0.54489\t1.6812\t-0.59836\t-0.012441\t0.41243\t-0.58835\n2\t1\t-0.029577\t2.1707\t1.3285\t1.2109\t0.29684\t0.90646\n2\t2\t0.70774\t1.0606\t-1.3996\t-0.020914\t-0.60955\t-1.2187\n2\t1\t0.07926\t0.52862\t1.3994\t0.54549\t0.55303\t0.16155\n1\t1\t0.041856\t-0.92023\t0.87269\t-0.66601\t-0.15945\t0.1004\n1\t2\t0.17665\t0.31945\t-1.7756\t-0.60442\t0.020525\t-1.0625\n1\t1\t-0.090238\t-0.65111\t0.56993\t-0.4117\t-0.19486\t-0.18849\n1\t2\t0.059166\t-0.47194\t-0.69068\t-0.41022\t0.25867\t-0.057175\n1\t2\t0.10473\t0.66887\t0.082035\t-0.55975\t-0.28439\t-1.468\n1\t1\t-0.20937\t-0.36621\t0.09609\t0.28164\t0.24673\t-0.11107\n1\t2\t-1.2678\t0.22369\t-0.42201\t-0.70103\t0.075915\t-1.3347\n1\t2\t-0.35467\t0.11166\t-0.42144\t-0.095223\t-0.29936\t-0.68322\n2\t2\t0.84875\t1.24\t-0.81217\t0.084034\t-0.32224\t-1.6241\n2\t1\t-0.45939\t1.3208\t0.97993\t1.2991\t-0.015791\t1.487\n1\t2\t-0.42254\t-0.57928\t-0.58529\t-2.2375\t0.51999\t-0.79909\n2\t1\t0.32092\t-0.13796\t0.67098\t0.24639\t-0.36066\t-0.032948\n1\t2\t-1.2408\t-0.94836\t0.026276\t-0.37981\t-0.02237\t-0.38777\n2\t2\t0.20959\t2.1466\t-1.7027\t-1.3169\t-0.16515\t-1.046\n2\t2\t-0.10482\t1.3773\t-1.2998\t-0.014223\t0.34065\t-0.35362\n1\t2\t-0.6188\t-1.2477\t-0.62084\t0.27682\t0.1674\t-0.8918\n1\t1\t-0.97246\t-0.73017\t1.3843\t1.5549\t0.1067\t0.85754\n1\t1\t0.74567\t-0.032694\t1.1153\t0.97318\t-0.0033905\t0.85059\n2\t2\t0.29324\t-0.090608\t-0.4945\t-1.0484\t-0.14987\t-1.0141\n2\t1\t-0.86818\t0.44948\t1.8531\t0.51896\t-0.021141\t1.8486\n1\t2\t0.362\t-0.29749\t-0.66525\t0.21709\t-0.15594\t-1.4087\n1\t2\t-0.17675\t0.36465\t-0.45423\t-1.262\t0.22968\t-1.246\n1\t2\t-0.34633\t-0.16067\t-1.2216\t-1.3019\t-0.040891\t-1.2935\n1\t2\t0.44608\t-0.57732\t0.25606\t-1.1664\t0.54705\t-0.19859\n1\t2\t0.45398\t-0.55214\t-0.33433\t-0.085418\t-0.10094\t-0.48509\n1\t2\t0.12407\t0.022419\t-1.0312\t-0.47727\t0.20924\t-1.2961\n1\t1\t-0.76644\t-1.1794\t1.2345\t0.84756\t0.1532\t0.77648\n1\t2\t-0.10329\t-0.53768\t-0.67677\t-0.58708\t-0.014634\t-0.036347\n1\t1\t0.2378\t0.15372\t0.49652\t0.29193\t0.19047\t1.152\n1\t2\t0.024605\t-0.38937\t-0.89907\t-0.42106\t0.16921\t-0.80893\n1\t2\t0.28812\t0.26265\t-0.94234\t-0.88527\t-0.49803\t0.48254\n1\t1\t0.85086\t0.11783\t1.5014\t1.2382\t0.24441\t1.3649\n2\t2\t0.86172\t0.14894\t-0.4846\t-1.3488\t-0.41844\t-1.1372\n1\t2\t0.67971\t-0.27488\t-0.50687\t-0.79153\t-0.093399\t-1.391\n1\t1\t-0.91977\t-0.66099\t0.5801\t0.46587\t-0.2263\t1.43\n1\t2\t0.88213\t-0.48674\t-0.42406\t-1.2762\t0.28981\t-1.0813\n2\t1\t-0.36583\t0.51518\t1.4491\t1.4995\t-0.073755\t1.1218\n1\t1\t-0.54006\t-0.59443\t0.81263\t0.65809\t-0.15621\t1.2508\n2\t2\t1.2125\t-0.012648\t-0.92657\t-0.81972\t-0.1536\t-1.0176\n1\t2\t0.42493\t0.34558\t-1.7672\t-1.3503\t-0.045928\t0.37449\n1\t1\t0.17097\t-0.86593\t-0.13424\t1.0257\t0.058014\t0.91044\n2\t1\t-1.393\t0.5338\t1.8514\t2.291\t0.15305\t0.30028\n1\t1\t-0.58552\t-1.5337\t1.5133\t0.9976\t0.64638\t1.4428\n1\t2\t0.046272\t-0.56387\t-0.86063\t-1.0462\t0.014457\t-1.3038\n1\t2\t0.34933\t-0.16796\t-0.27854\t-0.27327\t-0.0040928\t-0.17912\n1\t1\t-1.0672\t0.3979\t1.208\t0.50111\t-0.013978\t0.015097\n1\t2\t0.31052\t-0.46723\t-1.1237\t0.59267\t0.30978\t-1.0169\n1\t2\t-0.55337\t-0.42776\t-0.12612\t-0.41838\t-0.56558\t-0.58189\n2\t2\t0.3925\t0.15644\t-0.72963\t-0.66601\t-0.10837\t-0.27787\n1\t2\t-0.48513\t-1.4119\t-0.16889\t-0.19646\t-0.068098\t-0.084247\n2\t2\t0.16692\t1.5447\t-1.3064\t-1.3338\t-0.25668\t-0.48832\n1\t2\t-0.36092\t0.31518\t-0.44815\t-1.4019\t-0.47505\t-0.37187\n1\t1\t-1.8192\t-0.57745\t1.1304\t0.262\t-0.3595\t0.58577\n1\t1\t-0.065383\t0.07156\t1.4931\t2.3215\t0.85149\t1.4585\n2\t1\t-1.119\t0.70896\t1.0498\t0.74334\t0.75838\t1.6107\n2\t2\t-0.17682\t-0.21029\t-0.74465\t-0.83806\t0.10827\t-1.2829\n1\t2\t0.69834\t-0.082402\t0.64008\t-0.83119\t-0.26766\t0.36961\n2\t2\t-0.28266\t1.1929\t-0.15174\t0.098554\t-0.33989\t-0.6376\n2\t2\t1.5369\t1.8434\t0.0030761\t-0.59703\t0.14497\t-1.5165\n1\t2\t0.35023\t-0.28475\t-0.93594\t-1.0937\t-0.46614\t-2.188\n2\t1\t0.62308\t1.0873\t-0.0037182\t0.86847\t-0.48699\t-0.10105\n1\t1\t-1.0408\t-0.99866\t2.0799\t1.1634\t0.092516\t0.30401\n1\t1\t-0.87125\t-0.88987\t1.0278\t1.0157\t-0.23725\t1.2377\n1\t2\t-0.020591\t-0.03398\t-0.024834\t-1.3588\t-0.045961\t-0.89693\n1\t1\t0.9213\t-0.57037\t1.044\t1.2994\t0.046517\t0.66563\n1\t2\t-0.87288\t-0.96382\t-0.704\t-1.2184\t0.046903\t-0.30008\n1\t2\t0.77586\t-0.34168\t-0.09867\t-0.37744\t-0.24309\t-0.13441\n2\t1\t0.19521\t0.67595\t1.4533\t1.5115\t0.19553\t0.79596\n2\t1\t-1.3273\t1.0891\t1.2544\t0.98928\t0.045725\t0.54963\n2\t2\t0.59176\t0.65915\t-0.84578\t-0.080229\t-0.26961\t0.24045\n1\t2\t-0.66958\t-1.042\t-1.2138\t-0.7612\t-0.22775\t-0.40062\n1\t2\t1.1154\t-0.57069\t-0.6592\t-2.1961\t-0.013175\t0.46007\n1\t2\t-0.5254\t0.0031225\t-0.77758\t0.8169\t0.13224\t-0.65572\n2\t1\t0.24551\t1.5078\t0.10719\t1.1454\t0.70578\t0.59051\n1\t2\t0.29875\t-0.11455\t-1.0497\t-0.77881\t0.080708\t-0.48337\n1\t1\t-0.1047\t0.011628\t1.2504\t0.41776\t-0.20102\t1.2252\n1\t2\t0.44808\t-0.8165\t-0.080134\t-0.49618\t0.051011\t-0.71722\n2\t1\t2.0365\t1.5592\t1.3257\t1.2472\t-0.47899\t0.10943\n1\t1\t-0.16507\t-0.66011\t0.98739\t0.58519\t0.245\t-0.43277\n1\t2\t-0.028366\t-0.16961\t-1.3266\t0.14248\t-0.24634\t-1.1154\n2\t1\t0.92842\t1.8842\t1.3169\t1.0358\t-0.20988\t0.88021\n2\t2\t0.33158\t0.32463\t-0.50924\t0.40233\t0.54391\t-0.24309\n1\t2\t1.2555\t0.1928\t-0.487\t0.048779\t-0.23483\t-1.477\n2\t1\t0.75021\t0.85943\t-0.2323\t0.10748\t-0.68906\t0.84276\n2\t2\t0.6297\t1.7397\t-1.6136\t-0.43268\t-0.21442\t-0.77462\n2\t1\t0.53168\t1.0807\t1.0853\t0.62304\t0.44036\t0.48087\n1\t2\t-0.31256\t-0.69771\t-0.88556\t-1.333\t0.038614\t-1.5744\n1\t2\t-0.039695\t-0.52447\t0.91401\t-0.93272\t0.53434\t-0.080746\n2\t1\t-0.16596\t0.56821\t0.76008\t0.45442\t0.10286\t0.6539\n1\t2\t-0.4331\t-0.89669\t-1.3097\t-1.2157\t0.1065\t-0.8512\n1\t2\t-0.34708\t-0.51457\t-1.012\t-0.39437\t-0.55374\t-1.144\n2\t2\t0.024082\t0.7128\t-1.3702\t-1.4492\t-0.10228\t-0.59071\n1\t2\t-0.0037109\t-0.68845\t-0.649\t-0.91581\t0.066805\t-0.98583\n2\t1\t0.68706\t0.067424\t0.87139\t0.7938\t-0.099645\t1.529\n2\t2\t-0.31183\t0.57814\t-0.80815\t-0.66724\t-0.31919\t-0.61319\n1\t2\t-0.11153\t-0.6246\t-0.27979\t-0.18363\t0.83639\t0.014919\n2\t2\t0.20406\t1.5838\t-0.96334\t-1.1228\t-0.17808\t-1.2123\n2\t2\t-0.1134\t0.63358\t-0.53321\t-0.84276\t-0.27657\t-0.36992\n1\t2\t0.25517\t0.67006\t-0.1349\t0.18275\t0.40982\t-0.62487\n1\t1\t-1.2684\t0.31042\t0.91155\t0.66143\t0.2483\t-0.12434\n1\t1\t-0.97542\t-0.85419\t0.7663\t0.16362\t-0.18737\t0.67266\n1\t2\t-0.043882\t-0.62746\t-0.82816\t-0.40626\t-0.051048\t-0.61297\n1\t1\t0.59605\t-0.45852\t1.2962\t0.78156\t-0.48154\t0.17778\n2\t2\t-0.06266\t1.1144\t-0.80524\t-0.3189\t-0.16038\t-0.96372\n1\t2\t-1.1821\t1.0798\t-1.3407\t-0.52643\t0.12458\t-0.7871\n2\t2\t0.59446\t0.89186\t-0.97856\t-0.64658\t0.2712\t-1.5538\n1\t2\t0.15067\t0.41827\t-1.0487\t-1.0551\t0.19143\t-1.4537\n1\t2\t-1.073\t0.022587\t-1.7088\t-1.3777\t0.1964\t-0.84025\n2\t1\t0.20928\t1.8026\t1.2073\t2.78\t0.15131\t0.3448\n1\t2\t-1.1317\t-0.6359\t-0.70457\t-1.676\t-0.22886\t-0.58769\n1\t1\t-0.039428\t-0.58746\t0.56\t0.7896\t-0.052581\t0.99511\n1\t2\t0.55023\t-0.20403\t0.138\t-0.70518\t0.66927\t-0.28861\n2\t2\t0.57423\t1.1886\t0.092876\t0.025677\t-0.41099\t-1.2858\n2\t2\t-0.14179\t1.5827\t-0.94328\t0.7703\t-0.43967\t-0.50448\n2\t2\t0.14666\t1.0492\t-0.0030259\t-0.62418\t-0.087515\t-0.048386\n"; + } +} + +function demochl() +{ + with(window.document.key_search) + { + +searchkey.value="Ctrq3\tMAS\tNeutrophil\tLoad\tWeight\n2\t0.969230769\t3\t3.252367514\t1\n2\t0.925170068\t1.6\t2.46322088\t1.033472803\n1\t0.427272727\t33.8\t4.206610024\t0.831372549\n2\t0.877835951\t8.3\t3.764250875\t0.967153285\n2\t0.914862915\t4.4\t3.691700208\t1.046025105\n2\t0.560334528\t4.9\t2.604550033\t0.98046875\n1\t0.383073497\t13.1\t4.273556814\t0.812316716\n1\t0.101010101\t18.6\t5.089640217\t0.771929825\n1\t0.106719368\t18.9\t4.915125346\t0.80994152\n2\t0.894736842\t2.5\t2.691700208\t0.995515695\n1\t0.067226891\t19.8\t4.878194228\t0.846153846\n2\t0.921022067\t2.9\t4.127428778\t1.03875969\n2\t0.938701923\t0.7\t4.366310867\t0.984732824\n1\t0.658008658\t15.7\t4.531121115\t0.884210526\n2\t0.9\t4.8\t2.604550033\t0.913194444\n2\t0.790923825\t10.4\t2.390670213\t0.892857143\n1\t0.295539033\t8.6\t4.24137213\t0.85840708\n2\t0.317757009\t12.2\t4.449648073\t0.889830508\n1\t0.032418953\t20.2\t5.053428044\t0.811320755\n1\t0.603960396\t23.4\t4.283775979\t0.805460751\n2\t0.939351199\t3.6\t2.349277527\t0.952380952\n1\t0.978448276\t0.4\t3.495405563\t0.8875\n1\t0.1\t23.2\t4.675613388\t0.766101695\n1\t0.036363636\t32.6\t4.938109253\t0.828125\n1\t0.660247593\t9.2\t3.826398782\t0.921052632\n1\t0.078651685\t35.8\t4.513630383\t0.852112676\n1\t0.186915888\t20.7\t5.048247532\t0.779761905\n1\t0.071578947\t35.6\t4.574586809\t0.797356828\n1\t0.239520958\t15.4\t4.331548761\t0.941176471\n1\t0.205741627\t24.5\t5.058547488\t0.774193548\n1\t0.062300319\t13.4\t4.594790195\t0.832236842\n2\t0.599675851\t5\t4.18178644\t0.969348659\n1\t0.324246772\t13.5\t4.252367514\t0.858585859\n1\t0.87628866\t14.2\t2.929061124\t0.869863014\n1\t0.146103896\t15.6\t4.579726449\t0.9\n1\t0.257383966\t22.5\t5.210214148\t0.75\n1\t0.033333333\t31.1\t4.632578756\t0.718644068\n1\t0.29739777\t36.1\t3.880756445\t0.798353909\n2\t0.872979215\t4.2\t4.097465554\t0.856756757\n2\t0.909221902\t4.3\t3.650307523\t0.976\n1\t0.10041841\t28.3\t4.46322088\t0.757462687\n"; + } +} + +function demospnl() +{ + with(window.document.key_search) + { + +searchkey.value="rs3664317\tOas1a\tParp9\tDhx58\tCd1d1\tIrf7\tOas3\tPml\tMx1\tIfit1\tTrim25\tOas1g\tPglyrp3\tIfih1\n1\t8.34\t9.812\t8.774\t9.79\t9.663\t8.27\t11.036\t7.284\t8.286\t10.395\t8.521\t6.186\t8.83\n1\t8.368\t9.738\t8.566\t9.144\t9.484\t8.818\t11.03\t6.977\t8.294\t10.076\t8.529\t5.968\t8.828\n1\t8.178\t9.57\t8.726\t9.575\t10.106\t8.99\t10.878\t7.205\t8.676\t10.036\t8.61\t5.976\t9.024\n1\t8.116\t9.901\t8.904\t9.959\t9.793\t8.336\t11.105\t7.598\t8.316\t10.292\t8.401\t5.814\t8.836\n2\t8.099\t9.68\t8.876\t10.116\t9.771\t8.379\t11.028\t7.438\t8.541\t10.215\t8.32\t5.917\t9.073\n1\t8.262\t9.59\t8.24\t10.088\t8.938\t7.832\t10.486\t6.752\t7.825\t9.908\t8.196\t6.15\t8.446\n1\t7.915\t9.415\t8.308\t9.707\t9.12\t8.702\t11.102\t7.208\t8.243\t10.034\t7.897\t6.06\t8.892\n2\t8.565\t10.002\t8.96\t9.779\t10.322\t9.24\t11.278\t7.644\t8.893\t10.42\t8.773\t5.914\t9.407\n1\t8.189\t9.774\t8.541\t9.939\t9.134\t7.819\t10.766\t7.122\t8.352\t10.113\t8.492\t6.269\t9.055\n1\t8.476\t9.954\t8.908\t9.476\t9.92\t8.764\t11.134\t7.859\t8.788\t10.17\t8.862\t6.226\t9.17\n2\t8.119\t9.946\t8.876\t9.578\t10.02\t8.734\t11.244\t7.85\t8.838\t10.557\t8.56\t5.98\t9.353\n2\t8.305\t9.713\t8.972\t9.789\t9.839\t8.804\t10.948\t7.682\t8.896\t10.181\t8.854\t5.979\t9.567\n2\t8.654\t10\t9.306\t9.439\t10.457\t9.223\t10.922\t7.082\t8.942\t10.131\t9.162\t6.01\t9.74\n1\t8.105\t9.748\t8.725\t10.119\t9.782\t8.575\t11.113\t7.63\t8.674\t10.355\t8.59\t6.279\t8.908\n1\t8.247\t9.715\t8.829\t9.646\t9.953\t9.668\t11.112\t7.384\t9.221\t10.19\t8.64\t6\t9.552\n1\t8.511\t9.994\t9.014\t9.89\t10.266\t8.444\t10.599\t7.331\t9.153\t10.012\t8.837\t6.148\t9.023\n2\t8.947\t10.28\t9.483\t9.398\t11.23\t9.86\t11.324\t8.006\t9.772\t10.524\t9.587\t5.865\t10.067\n1\t8.526\t9.685\t8.921\t9.7\t10.126\t9.373\t11.121\t7.497\t9.003\t10.357\t8.156\t6.334\t9.678\n2\t8.06\t9.745\t9.092\t9.278\t10.231\t8.976\t10.998\t7.578\t9.145\t10.283\t8.611\t6.168\t9.413\n2\t7.93\t9.728\t8.694\t9.512\t9.826\t9.016\t11.276\t7.604\t8.767\t10.378\t8.577\t5.963\t9.264\n2\t8.511\t9.686\t9.014\t8.982\t10.508\t10.108\t11.304\t7.441\t9.133\t10.341\t9.04\t6.2\t9.974\n2\t8.645\t9.997\t8.97\t9.443\t10.393\t9.302\t11.409\t7.785\t8.894\t10.552\t9.051\t5.997\t9.412\n2\t8.293\t9.802\t9.001\t9.524\t10.156\t9.263\t11.212\t7.772\t8.581\t10.433\t8.514\t6.093\t9.177\n1\t7.781\t9.712\t8.97\t9.375\t10.12\t9.484\t11.317\t7.347\t8.972\t10.393\t8.352\t6.193\t9.587\n2\t8.465\t9.88\t8.913\t9.816\t9.965\t8.852\t11.138\t7.537\t8.625\t10.426\t8.617\t6.044\t9.556\n2\t8.657\t10.026\t9.189\t9.691\t10.302\t9.268\t11.194\t7.634\t9.143\t10.378\t9.05\t6.067\t9.679\n2\t7.634\t9.606\t8.36\t9.465\t8.41\t8.605\t11.183\t6.942\t8.174\t9.952\t7.478\t6.09\t9.535\n1\t7.669\t9.494\t8.779\t9.552\t9.362\t8.52\t11.024\t7.131\t8.378\t10.391\t8.114\t6.07\t8.851\n2\t8.618\t10.212\t9.433\t9.672\t10.442\t9.21\t11.328\t8.045\t9.322\t10.5\t9.128\t5.994\t9.656\n2\t8.731\t10.27\t9.342\t9.43\t10.697\t10.117\t11.286\t7.749\t9.734\t10.464\t9.322\t6.156\t9.876\n1\t7.554\t9.524\t8.759\t9.93\t9.52\t8.279\t10.82\t7.32\t8.316\t10.31\t8.186\t6.068\t9.046\n1\t8.262\t9.677\t8.75\t9.444\t10.052\t8.634\t10.888\t7.32\t8.562\t9.893\t8.644\t6.212\t8.918\n1\t7.823\t9.628\t8.66\t9.529\t9.578\t8.736\t11.206\t7.171\t8.408\t10.062\t8.111\t5.838\t9.033\n1\t8.28\t9.572\t8.784\t9.428\t9.862\t9.424\t11.27\t7.288\t8.505\t10.174\t8.642\t6.022\t9.313\n2\t9.09\t10.053\t9.599\t9.469\t11.004\t9.882\t11.436\t8.521\t9.814\t10.562\t9.704\t6.044\t10.061\n1\t8.446\t9.989\t9.297\t9.688\t10.577\t9.129\t11.102\t7.718\t9.484\t10.231\t9.072\t6.17\t9.21\n1\t8.668\t9.858\t9.195\t9.385\t10.695\t9.249\t11.028\t7.765\t9.367\t10.319\t9.179\t6.136\t9.563\n2\t8.574\t10.059\t9.281\t9.233\t10.508\t9.247\t11.145\t8.138\t9.505\t10.402\t9.192\t5.992\t9.848\n2\t8.523\t10.052\t9.131\t9.507\t10.418\t9.413\t11.187\t7.641\t9.304\t10.465\t9.063\t6.095\t9.733\n1\t7.987\t9.748\t8.766\t9.578\t9.781\t8.482\t11.279\t7.52\t8.364\t10.141\t8.207\t6.192\t9.133\n2\t8.466\t9.429\t8.946\t9.395\t9.715\t9.071\t11.388\t7.592\t8.078\t10.32\t8.326\t6.108\t9.021\n1\t7.668\t9.694\t8.493\t10.112\t9.561\t8.394\t10.922\t7.26\t8.19\t10.27\t7.916\t5.892\t8.974\n2\t8.379\t10.037\t9.155\t9.683\t10.281\t9.2\t10.913\t7.173\t9.404\t10.381\t9.097\t6.099\t9.714\n2\t7.805\t9.654\t8.454\t9.198\t10.065\t9.468\t11.217\t6.917\t8.43\t10.459\t8.11\t6.068\t9.068\n1\t7.981\t9.8\t8.553\t9.946\t9.862\t8.901\t11.085\t7.214\t8.393\t10.373\t8.19\t6.05\t9.015\n1\t7.746\t9.688\t8.578\t9.901\t9.358\t7.866\t10.928\t7.354\t7.929\t10.233\t8.066\t5.754\t8.883\n1\t7.997\t9.859\t8.795\t9.867\t9.817\t8.734\t11.109\t7.416\t8.67\t10.247\t8.176\t6.143\t9.081\n1\t8.674\t9.689\t9.06\t9.81\t10.544\t8.995\t11.189\t7.781\t9.219\t10.07\t8.98\t5.992\t9.143\n1\t8.088\t9.49\t8.676\t9.456\t10.184\t8.737\t10.998\t7.222\t8.538\t10.192\t8.441\t6.147\t8.55\n1\t8.001\t9.801\t8.669\t9.977\t9.383\t8.274\t11.055\t7.231\t7.913\t10.272\t8.277\t5.931\t9.009\n2\t8.218\t9.458\t8.781\t9.214\t9.66\t8.87\t10.738\t7.241\t8.289\t10.029\t8.612\t6.125\t9.38\n1\t7.684\t9.56\t8.75\t10.077\t9.686\t8.27\t11.102\t7.206\t8.13\t10.212\t8.07\t6.018\t8.984\n2\t8.326\t9.696\t8.88\t9.714\t10.014\t9.08\t11.055\t7.256\t8.494\t10.054\t8.63\t6.177\t9.162\n2\t8.906\t10.106\t9.412\t9.704\t11.06\t9.854\t11.335\t7.799\t10.103\t10.471\t9.25\t6.033\t9.97\n1\t8.073\t9.793\t8.626\t9.879\t9.262\t8.408\t10.844\t7.108\t8.368\t9.959\t8.261\t6.052\t8.916\n2\t8.527\t10.026\t9.143\t9.244\t10.597\t9.566\t11.108\t7.778\t9.748\t10.351\t9.153\t6.055\t9.698\n2\t8.614\t10.05\t9.202\t9.508\t10.66\t9.63\t11.156\t7.758\t9.789\t10.324\t9.068\t6.15\t9.948\n2\t8.522\t10.158\t8.992\t9.684\t9.992\t8.55\t11.125\t7.914\t8.976\t10.311\t8.574\t5.889\t9.566\n1\t8.086\t9.6\t8.522\t9.544\t9.641\t8.514\t10.99\t7.386\t8.506\t10.194\t8.234\t6.02\t8.736\n1\t7.873\t9.596\t8.452\t9.422\t9.278\t8.509\t10.958\t7.057\t8.081\t9.981\t7.969\t6.136\t8.958\n2\t8.371\t9.99\t8.949\t9.931\t10.195\t8.935\t10.83\t7.694\t9.183\t10.493\t9.124\t6.128\t9.396\n2\t8.476\t9.982\t9.115\t9.639\t10.465\t9.833\t11.105\t8.058\t9.9\t10.351\t9.182\t6.05\t9.884\n1\t8.512\t9.995\t8.846\t9.951\t9.561\t8.558\t10.769\t7.584\t8.901\t10.139\t8.769\t5.959\t9.203\n1\t8.358\t9.858\t8.99\t9.981\t10.123\t9.368\t10.989\t7.463\t9.327\t9.93\t8.54\t6.02\t9.543\n1\t8.23\t9.614\t8.806\t9.919\t9.939\t9.108\t11.184\t7.766\t8.793\t10.174\t8.605\t5.972\t9.068\n2\t8.238\t9.802\t8.926\t9.595\t10.062\t8.77\t11.202\t7.712\t9.131\t10.34\t8.57\t6.05\t9.464\n1\t8.533\t10.108\t9.083\t10.214\t10.514\t8.463\t11.008\t7.356\t9.344\t10.196\t8.736\t6.262\t9.257\n1\t7.866\t9.444\t8.223\t9.865\t8.95\t8.539\t10.935\t6.754\t7.748\t10.177\t7.826\t6.29\t8.716\n2\t8.888\t10.031\t9.158\t9.407\t10.8\t9.547\t11.238\t7.659\t9.602\t10.398\t9.337\t6.028\t9.529\n1\t8.026\t9.682\t8.398\t9.824\t9.202\t8.041\t10.703\t7.322\t8.352\t10.209\t8.196\t6.009\t9.001\n2\t8.974\t10.071\t9.451\t9.348\t11.061\t9.686\t11.255\t8.077\t10.101\t10.323\t9.557\t6.006\t10.072\n1\t8.181\t9.432\t9.045\t9.544\t10.651\t9.18\t10.832\t7.419\t8.742\t9.818\t8.546\t6.33\t9.201\n1\t8.137\t9.676\t9.024\t9.37\t10.206\t9.944\t10.985\t7.226\t8.9\t10.362\t8.918\t6.352\t9.367\n"; +} +} + +function demoksl() +{ + with(window.document.key_search) + { + +searchkey.value="FEV\tKol\tHyp\tlogBMI\tSmok\tAlc\tWork\tSex\tYear\n116.00\t745.00\t1.00\t3.360375\t1\t2\t2\t2\t2\n252.00\t680.00\t1.00\t3.477232\t2\t2\t2\t1\t2\n205.00\t669.00\t1.00\t3.285038\t2\t1\t2\t2\t2\n66.00\t636.00\t1.00\t3.11795\t2\t1\t2\t2\t2\n255.00\t669.00\t1.00\t3.21326\t2\t1\t2\t1\t2\n135.00\t555.00\t0.00\t3.474138\t2\t1\t2\t2\t2\n314.00\t475.00\t1.00\t3.086943\t1\t1\t2\t1\t2\n104.00\t825.00\t0.00\t3.194173\t2\t1\t2\t2\t2\n173.00\t634.00\t1.00\t3.293983\t1\t2\t2\t2\t2\n235.00\t657.00\t0.00\t3.175968\t2\t2\t2\t1\t2\n111.00\t619.00\t0.00\t2.939162\t2\t2\t1\t2\t2\n165.00\t668.00\t1.00\t3.222868\t2\t1\t2\t1\t2\n119.00\t620.00\t0.00\t3.141563\t2\t2\t2\t2\t2\n240.00\t588.00\t1.00\t3.357942\t1\t1\t2\t1\t2\n84.00\t791.00\t1.00\t3.039749\t1\t2\t2\t2\t2\n161.00\t654.00\t0.00\t3.269569\t1\t2\t2\t2\t2\n155.00\t656.00\t0.00\t3.083285\t1\t1\t2\t2\t2\n268.00\t617.00\t1.00\t3.399195\t1\t2\t2\t1\t2\n239.00\t850.00\t0.00\t3.170106\t2\t2\t2\t1\t2\n213.00\t797.00\t1.00\t2.958549\t1\t1\t1\t1\t2\n160.00\t628.00\t1.00\t3.670206\t1\t1\t2\t2\t2\n244.00\t447.00\t0.00\t3.365916\t2\t2\t2\t1\t2\n159.00\t732.00\t0.00\t3.067588\t1\t2\t2\t2\t2\n63.00\t661.00\t0.00\t2.986692\t1\t2\t2\t2\t2\n205.00\t987.00\t0.00\t3.189653\t1\t2\t2\t1\t2\n155.00\t499.00\t0.00\t3.241029\t1\t1\t2\t2\t2\n250.00\t714.00\t0.00\t3.165897\t2\t1\t2\t2\t2\n225.00\t1046.00\t1.00\t3.239854\t2\t2\t2\t2\t2\n266.00\t600.00\t0.00\t3.131573\t2\t2\t2\t1\t2\n220.00\t648.00\t0.00\t3.165897\t1\t1\t2\t2\t2\n89.00\t679.00\t1.00\t3.058707\t2\t2\t2\t1\t2\n118.00\t521.00\t1.00\t3.162094\t2\t2\t2\t1\t2\n224.00\t643.00\t0.00\t3.194173\t2\t1\t2\t1\t2\n225.00\t693.00\t1.00\t3.165897\t2\t2\t2\t1\t2\n176.00\t335.00\t0.00\t3.175968\t2\t2\t2\t1\t2\n267.00\t857.00\t1.00\t3.239071\t1\t2\t2\t2\t2\n153.00\t615.00\t1.00\t3.120601\t2\t2\t2\t2\t2\n205.00\t844.00\t1.00\t3.412137\t1\t1\t2\t2\t2\n295.00\t451.00\t1.00\t3.161247\t1\t2\t2\t1\t2\n293.00\t573.00\t0.00\t3.109507\t2\t2\t2\t1\t2\n281.00\t663.00\t0.00\t3.244544\t2\t2\t2\t1\t2\n156.00\t643.00\t0.00\t3.042616\t2\t2\t2\t2\t2\n207.00\t589.00\t1.00\t3.323956\t2\t2\t2\t1\t2\n221.00\t865.00\t0.00\t3.117065\t2\t1\t2\t2\t2\n218.00\t774.00\t1.00\t3.145445\t1\t2\t2\t2\t2\n211.00\t891.00\t1.00\t3.262318\t1\t2\t2\t2\t2\n182.00\t599.00\t1.00\t3.121483\t1\t2\t2\t2\t2\n221.00\t627.00\t1.00\t3.215269\t2\t1\t2\t1\t2\n219.00\t896.00\t1.00\t3.313458\t1\t2\t2\t1\t2\n168.00\t738.00\t1.00\t3.039749\t2\t2\t2\t2\t2\n161.00\t612.00\t1.00\t3.440418\t2\t2\t2\t1\t2\n130.00\t580.00\t1.00\t3.261169\t2\t1\t2\t2\t2\n170.00\t687.00\t0.00\t3.16674\t2\t1\t2\t2\t2\n188.00\t735.00\t1.00\t2.892592\t2\t2\t2\t2\t2\n114.00\t612.00\t0.00\t3.610377\t2\t1\t2\t2\t2\n208.00\t633.00\t0.00\t3.260402\t2\t2\t2\t2\t2\n233.00\t658.00\t0.00\t3.192121\t1\t1\t2\t1\t2\n176.00\t837.00\t1.00\t3.279406\t1\t1\t2\t2\t2\n290.00\t478.00\t0.00\t3.115735\t2\t1\t1\t1\t2\n144.00\t894.00\t1.00\t3.164208\t1\t1\t2\t2\t2\n198.00\t560.00\t0.00\t2.862772\t2\t2\t2\t1\t2\n180.00\t694.00\t0.00\t3.233173\t2\t2\t1\t1\t2\n144.00\t540.00\t0.00\t3.226844\t2\t2\t2\t2\t2\n66.00\t669.00\t0.00\t3.063858\t2\t2\t1\t1\t2\n150.00\t560.00\t0.00\t3.680343\t2\t1\t2\t2\t2\n231.00\t668.00\t0.00\t3.077773\t2\t2\t2\t1\t2\n83.00\t638.00\t0.00\t3.17346\t2\t2\t2\t1\t2\n201.00\t665.00\t0.00\t3.317453\t1\t1\t2\t2\t2\n129.00\t456.00\t0.00\t2.939691\t2\t2\t2\t1\t2\n198.00\t643.00\t1.00\t3.053529\t2\t2\t2\t2\t2\n173.00\t571.00\t1.00\t3.081451\t1\t1\t2\t2\t2\n201.00\t774.00\t0.00\t3.196221\t2\t2\t2\t2\t2\n255.00\t560.00\t1.00\t3.483085\t2\t2\t2\t1\t2\n249.00\t531.00\t1.00\t3.313095\t2\t1\t2\t1\t2\n216.00\t788.00\t0.00\t3.439777\t1\t1\t2\t2\t2\n217.00\t656.00\t0.00\t3.439456\t2\t2\t2\t1\t2\n134.00\t607.00\t1.00\t3.218876\t2\t1\t2\t2\t2\n192.00\t690.00\t0.00\t3.429461\t1\t2\t2\t1\t2\n231.00\t657.00\t1.00\t3.410157\t2\t1\t2\t1\t2\n185.00\t429.00\t0.00\t3.201526\t2\t1\t2\t1\t2\n184.00\t771.00\t0.00\t3.132882\t2\t2\t2\t2\t2\n287.00\t547.00\t0.00\t3.193763\t2\t1\t2\t1\t2\n206.00\t541.00\t1.00\t3.137666\t2\t1\t2\t2\t2\n252.00\t484.00\t0.00\t3.189653\t2\t2\t1\t1\t2\n282.00\t658.00\t1.00\t3.139833\t1\t2\t2\t1\t2\n203.00\t586.00\t1.00\t3.537475\t1\t1\t2\t2\t2\n177.00\t478.00\t0.00\t2.832036\t2\t2\t2\t1\t2\n156.00\t686.00\t1.00\t3.52371\t2\t2\t2\t2\t2\n165.00\t788.00\t0.00\t3.181797\t2\t2\t2\t2\t2\n212.00\t556.00\t0.00\t3.116622\t2\t2\t2\t1\t2\n167.00\t675.00\t1.00\t3.209633\t2\t2\t2\t2\t2\n284.00\t553.00\t1.00\t3.171784\t2\t2\t1\t1\t2\n101.00\t595.00\t1.00\t3.654029\t1\t1\t2\t2\t2\n262.00\t650.00\t0.00\t3.225255\t2\t2\t2\t1\t2\n81.00\t584.00\t1.00\t2.922624\t2\t1\t2\t2\t2\n304.00\t758.00\t0.00\t3.405189\t1\t1\t2\t1\t2\n227.00\t699.00\t1.00\t3.847378\t1\t1\t2\t2\t2\n185.00\t612.00\t0.00\t3.145445\t1\t1\t2\t2\t2\n203.00\t711.00\t1.00\t3.089678\t2\t2\t2\t1\t2\n144.00\t541.00\t1.00\t3.437208\t2\t1\t2\t1\t2\n297.00\t968.00\t0.00\t3.085116\t2\t2\t2\t1\t2\n170.00\t867.00\t0.00\t3.218876\t2\t1\t2\t2\t2\n281.00\t593.00\t0.00\t3.285787\t2\t2\t2\t1\t2\n228.00\t531.00\t1.00\t3.262701\t2\t2\t2\t1\t2\n203.00\t823.00\t1.00\t3.303952\t1\t2\t2\t2\t2\n161.00\t618.00\t0.00\t3.141995\t1\t1\t2\t2\t2\n170.00\t468.00\t1.00\t3.145875\t1\t1\t2\t2\t2\n194.00\t753.00\t0.00\t3.300271\t2\t2\t2\t1\t2\n230.00\t612.00\t0.00\t3.331847\t2\t2\t2\t1\t2\n161.00\t1028.00\t0.00\t3.042616\t2\t2\t2\t2\t2\n176.00\t446.00\t0.00\t3.345332\t2\t2\t2\t1\t2\n170.00\t675.00\t0.00\t3.24688\t2\t2\t1\t2\t2\n143.00\t667.00\t1.00\t3.170945\t2\t1\t2\t2\t2\n194.00\t591.00\t0.00\t3.058707\t2\t1\t2\t1\t2\n185.00\t851.00\t1.00\t3.464485\t1\t2\t2\t2\t2\n294.00\t615.00\t0.00\t3.286534\t2\t2\t1\t1\t2\n236.00\t605.00\t1.00\t3.280159\t2\t2\t2\t1\t2\n63.00\t703.00\t0.00\t3.100543\t2\t2\t2\t1\t2\n165.00\t634.00\t0.00\t3.022861\t2\t2\t2\t1\t2\n136.00\t593.00\t1.00\t3.009635\t2\t2\t2\t1\t2\n177.00\t716.00\t1.00\t3.531348\t1\t1\t2\t2\t2\n99.00\t483.00\t0.00\t3.19663\t2\t2\t2\t1\t2\n160.00\t657.00\t1.00\t3.49256\t2\t2\t2\t2\t2\n201.00\t539.00\t0.00\t3.123246\t1\t1\t2\t1\t2\n134.00\t532.00\t0.00\t3.041184\t2\t2\t2\t2\t2\n300.00\t802.00\t1.00\t3.464485\t2\t1\t2\t1\t2\n224.00\t937.00\t1.00\t3.023834\t1\t2\t2\t2\t2\n144.00\t701.00\t1.00\t3.225255\t2\t2\t2\t1\t2\n87.00\t625.00\t0.00\t3.439777\t1\t1\t2\t2\t2\n171.00\t687.00\t0.00\t3.200304\t2\t2\t2\t1\t2\n116.00\t508.00\t0.00\t2.879198\t2\t2\t2\t2\t2\n315.00\t612.00\t1.00\t3.256172\t2\t2\t1\t1\t2\n221.00\t583.00\t1.00\t3.017983\t1\t1\t2\t2\t2\n143.00\t727.00\t1.00\t3.222868\t2\t2\t2\t1\t2\n105.00\t754.00\t0.00\t2.901422\t2\t1\t2\t2\t2\n160.00\t500.00\t0.00\t3.054001\t2\t2\t2\t1\t2\n181.00\t659.00\t1.00\t3.100543\t1\t1\t2\t2\t2\n96.00\t666.00\t0.00\t3.022861\t2\t1\t2\t2\t2\n321.00\t446.00\t0.00\t3.21165\t2\t2\t2\t1\t2\n218.00\t826.00\t1.00\t3.033028\t2\t2\t2\t1\t2\n133.00\t759.00\t1.00\t3.516607\t1\t2\t2\t2\t2\n163.00\t717.00\t1.00\t3.097837\t2\t2\t2\t2\t2\n206.00\t628.00\t1.00\t3.380314\t2\t2\t2\t1\t2\n171.00\t669.00\t1.00\t3.162094\t2\t2\t2\t2\t2\n269.00\t600.00\t1.00\t3.335058\t2\t2\t1\t1\t2\n109.00\t728.00\t1.00\t3.435599\t2\t1\t2\t1\t2\n137.00\t481.00\t1.00\t3.52783\t2\t2\t2\t2\t2\n181.00\t516.00\t1.00\t3.160823\t1\t1\t2\t2\t2\n234.00\t692.00\t0.00\t3.357942\t2\t1\t1\t1\t2\n167.00\t578.00\t1.00\t3.295466\t1\t1\t2\t2\t2\n112.00\t679.00\t0.00\t3.488598\t1\t2\t2\t1\t2\n99.00\t751.00\t1.00\t3.338967\t1\t2\t2\t2\t2\n240.00\t954.00\t1.00\t3.209633\t2\t2\t2\t1\t2\n153.00\t604.00\t1.00\t3.302481\t1\t1\t2\t2\t2\n269.00\t601.00\t1.00\t3.116622\t2\t2\t2\t1\t2\n169.00\t521.00\t1.00\t3.222071\t2\t2\t2\t1\t2\n209.00\t488.00\t1.00\t3.214868\t2\t1\t2\t1\t2\n230.00\t724.00\t1.00\t3.14329\t2\t2\t2\t1\t2\n212.00\t705.00\t0.00\t3.141563\t1\t1\t2\t2\t2\n221.00\t560.00\t0.00\t3.221273\t2\t2\t2\t1\t2\n278.00\t760.00\t1.00\t3.163786\t1\t2\t1\t2\t2\n252.00\t675.00\t0.00\t3.163786\t2\t2\t2\t1\t2\n183.00\t1063.00\t1.00\t3.230014\t1\t1\t2\t2\t2\n146.00\t841.00\t1.00\t3.439135\t2\t2\t2\t2\t2\n296.00\t926.00\t1.00\t3.242202\t2\t1\t2\t1\t2\n185.00\t766.00\t0.00\t3.078233\t2\t2\t2\t2\t2\n188.00\t730.00\t1.00\t3.137666\t2\t1\t2\t2\t2\n209.00\t599.00\t0.00\t3.215269\t1\t2\t2\t1\t2\n254.00\t563.00\t0.00\t3.379974\t1\t1\t2\t2\t2\n293.00\t679.00\t1.00\t3.323596\t1\t2\t2\t1\t2\n75.00\t540.00\t1.00\t3.249599\t2\t1\t2\t2\t2\n219.00\t792.00\t1.00\t3.189653\t1\t2\t2\t1\t2\n170.00\t746.00\t0.00\t3.105035\t2\t2\t2\t2\t2\n252.00\t689.00\t1.00\t3.357942\t2\t2\t2\t1\t2\n221.00\t648.00\t0.00\t3.113515\t2\t2\t2\t2\t2\n303.00\t614.00\t1.00\t3.120601\t2\t2\t2\t1\t2\n166.00\t670.00\t1.00\t3.439777\t1\t1\t2\t2\t2\n105.00\t610.00\t0.00\t3.302113\t2\t1\t2\t1\t2\n218.00\t711.00\t1.00\t3.048325\t1\t2\t1\t1\t2\n173.00\t639.00\t1.00\t3.197039\t2\t1\t2\t2\t2\n206.00\t543.00\t0.00\t3.17346\t2\t2\t2\t1\t2\n102.00\t473.00\t0.00\t3.031099\t2\t2\t2\t2\t2\n319.00\t668.00\t0.00\t3.380995\t2\t1\t2\t1\t2\n221.00\t680.00\t1.00\t3.249599\t2\t1\t2\t2\t2\n141.00\t555.00\t0.00\t2.981633\t1\t2\t2\t2\t2\n167.00\t704.00\t1.00\t3.15359\t2\t2\t2\t2\t2\n152.00\t682.00\t1.00\t3.217275\t2\t2\t2\t1\t2\n72.00\t622.00\t1.00\t3.016515\t2\t2\t2\t1\t2\n161.00\t585.00\t1.00\t3.13201\t2\t2\t2\t1\t2\n52.00\t529.00\t1.00\t3.440739\t2\t1\t2\t2\t2\n197.00\t757.00\t1.00\t3.454422\t2\t2\t2\t1\t2\n167.00\t748.00\t0.00\t3.092859\t1\t2\t2\t2\t2\n287.00\t590.00\t1.00\t3.062924\t1\t2\t2\t1\t2\n183.00\t662.00\t0.00\t3.417071\t2\t2\t2\t1\t2\n263.00\t588.00\t1.00\t3.390136\t2\t2\t1\t1\t2\n243.00\t731.00\t0.00\t3.169686\t1\t1\t2\t2\t2\n366.00\t657.00\t0.00\t3.280159\t1\t2\t2\t1\t2\n171.00\t726.00\t0.00\t3.339322\t2\t1\t2\t2\t2\n114.00\t520.00\t1.00\t3.317091\t2\t2\t2\t1\t2\n156.00\t979.00\t0.00\t3.049273\t2\t2\t2\t2\t2\n140.00\t964.00\t1.00\t3.492256\t1\t2\t2\t2\t2\n215.00\t784.00\t1.00\t3.358986\t1\t1\t2\t2\t2\n296.00\t655.00\t1.00\t3.207613\t2\t1\t1\t1\t2\n291.00\t677.00\t0.00\t3.166319\t1\t1\t2\t1\t2\n152.00\t763.00\t0.00\t3.005683\t2\t2\t2\t2\t2\n141.00\t844.00\t0.00\t3.080992\t1\t2\t2\t2\t2\n257.00\t523.00\t0.00\t3.12016\t2\t1\t2\t1\t2\n153.00\t768.00\t0.00\t2.963209\t2\t2\t2\t2\t2\n221.00\t732.00\t0.00\t3.428164\t2\t2\t2\t1\t2\n167.00\t706.00\t1.00\t3.511545\t2\t1\t2\t2\t2\n179.00\t602.00\t0.00\t3.268047\t2\t1\t2\t1\t2\n72.00\t818.00\t1.00\t3.080073\t2\t2\t2\t2\t2\n57.00\t461.00\t1.00\t3.280159\t1\t1\t2\t2\t2\n189.00\t591.00\t1.00\t3.355851\t2\t2\t2\t1\t2\n182.00\t674.00\t1.00\t3.128075\t2\t2\t2\t2\t2\n252.00\t569.00\t1.00\t3.228826\t2\t2\t1\t1\t2\n127.00\t776.00\t1.00\t3.376563\t2\t2\t2\t2\t2\n207.00\t823.00\t1.00\t3.187179\t2\t2\t2\t2\t2\n170.00\t655.00\t0.00\t3.158276\t2\t2\t2\t2\t2\n99.00\t789.00\t1.00\t3.204777\t2\t1\t2\t2\t2\n306.00\t634.00\t1.00\t3.264614\t1\t2\t1\t1\t2\n294.00\t598.00\t0.00\t3.186766\t2\t2\t2\t1\t2\n66.00\t484.00\t0.00\t2.981126\t2\t2\t2\t1\t2\n200.00\t776.00\t0.00\t2.91398\t1\t1\t2\t2\t2\n197.00\t605.00\t0.00\t3.305054\t2\t1\t2\t1\t2\n180.00\t696.00\t1.00\t3.293983\t1\t1\t2\t2\t2\n176.00\t643.00\t1.00\t3.290638\t2\t2\t2\t1\t2\n177.00\t827.00\t1.00\t3.128075\t2\t2\t2\t2\t2\n105.00\t682.00\t0.00\t2.971952\t2\t1\t2\t2\t2\n102.00\t718.00\t1.00\t3.212455\t2\t1\t2\t2\t2\n306.00\t551.00\t0.00\t3.093766\t2\t2\t2\t1\t2\n258.00\t477.00\t1.00\t3.248823\t2\t1\t2\t1\t2\n108.00\t574.00\t0.00\t3.237109\t2\t2\t2\t2\t2\n218.00\t653.00\t0.00\t3.2312\t2\t2\t2\t1\t2\n140.00\t697.00\t0.00\t3.328268\t2\t2\t2\t2\t2\n165.00\t748.00\t1.00\t3.278276\t2\t2\t2\t1\t2\n101.00\t660.00\t0.00\t2.918851\t2\t1\t2\t2\t2\n237.00\t629.00\t0.00\t3.192121\t2\t2\t2\t1\t2\n132.00\t770.00\t1.00\t3.454106\t2\t1\t2\t2\t2\n306.00\t516.00\t0.00\t3.224858\t2\t2\t1\t1\t2\n146.00\t776.00\t0.00\t3.009142\t1\t2\t2\t2\t2\n38.00\t544.00\t1.00\t2.995732\t2\t1\t2\t2\t2\n141.00\t288.00\t1.00\t3.145875\t1\t2\t2\t2\t2\n195.00\t818.00\t1.00\t3.224858\t1\t1\t2\t2\t2\n174.00\t543.00\t0.00\t3.14329\t2\t2\t2\t1\t2\n180.00\t587.00\t1.00\t3.083285\t1\t1\t2\t2\t2\n138.00\t635.00\t0.00\t3.123246\t1\t2\t2\t2\t2\n207.00\t591.00\t0.00\t3.145875\t1\t2\t2\t2\t2\n156.00\t944.00\t0.00\t3.319264\t2\t2\t2\t2\t2\n251.00\t752.00\t1.00\t3.492865\t2\t2\t2\t1\t2\n99.00\t951.00\t1.00\t3.440739\t1\t2\t2\t2\t2\n263.00\t486.00\t1.00\t3.346741\t2\t2\t1\t1\t2\n153.00\t613.00\t1.00\t3.335414\t2\t2\t2\t1\t2\n156.00\t660.00\t1.00\t3.296207\t1\t1\t2\t2\t2\n263.00\t788.00\t1.00\t3.243373\t2\t2\t2\t1\t2\n162.00\t665.00\t1.00\t3.080992\t1\t2\t2\t2\t2\n183.00\t645.00\t1.00\t3.287655\t2\t1\t2\t1\t2\n171.00\t490.00\t1.00\t3.326833\t2\t1\t2\t2\t2\n192.00\t852.00\t1.00\t3.352707\t1\t2\t2\t2\t2\n240.00\t600.00\t0.00\t3.319264\t2\t2\t2\t1\t2\n177.00\t692.00\t0.00\t3.393165\t2\t2\t2\t1\t2\n207.00\t824.00\t0.00\t3.273364\t2\t2\t1\t2\t2\n218.00\t403.00\t1.00\t3.208421\t2\t1\t2\t1\t2\n168.00\t729.00\t0.00\t3.058707\t2\t2\t2\t2\t2\n153.00\t638.00\t1.00\t2.981633\t2\t2\t2\t1\t2\n177.00\t646.00\t1.00\t2.93492\t2\t2\t2\t2\t2\n198.00\t619.00\t0.00\t3.227637\t1\t2\t2\t2\t2\n216.00\t783.00\t0.00\t3.228826\t2\t2\t2\t1\t2\n177.00\t702.00\t1.00\t3.055415\t1\t1\t2\t2\t2\n294.00\t756.00\t1.00\t3.216072\t2\t2\t2\t1\t2\n189.00\t730.00\t0.00\t3.108168\t1\t1\t2\t2\t2\n272.00\t571.00\t0.00\t3.312002\t1\t2\t2\t1\t2\n200.00\t677.00\t1.00\t3.243764\t2\t2\t1\t2\t2\n189.00\t621.00\t1.00\t3.321432\t1\t2\t1\t1\t2\n144.00\t929.00\t1.00\t3.197039\t1\t2\t2\t2\t2\n245.00\t749.00\t1.00\t3.229222\t1\t1\t2\t1\t2\n195.00\t619.00\t0.00\t3.276767\t2\t2\t2\t1\t2\n117.00\t573.00\t1.00\t3.158276\t2\t2\t2\t2\t2\n107.00\t743.00\t1.00\t3.390136\t2\t2\t2\t1\t2\n125.00\t762.00\t0.00\t3.193763\t2\t2\t2\t1\t2\n243.00\t532.00\t0.00\t3.183456\t1\t2\t2\t2\t2\n114.00\t492.00\t1.00\t3.117507\t2\t2\t2\t1\t2\n123.00\t728.00\t1.00\t2.978077\t1\t2\t2\t2\t2\n189.00\t801.00\t1.00\t3.650139\t2\t2\t2\t2\t2\n255.00\t658.00\t0.00\t3.209229\t2\t2\t2\t1\t2\n234.00\t617.00\t0.00\t2.911263\t2\t2\t2\t1\t2\n225.00\t613.00\t0.00\t2.977059\t2\t1\t2\t2\t2\n255.00\t638.00\t0.00\t3.244544\t2\t2\t2\t1\t2\n132.00\t558.00\t1.00\t3.150169\t2\t1\t2\t2\t2\n186.00\t715.00\t1.00\t3.302481\t1\t1\t2\t2\t2\n136.00\t850.00\t1.00\t3.188004\t2\t2\t2\t2\t2\n198.00\t500.00\t0.00\t3.126322\t2\t1\t2\t1\t2\n191.00\t496.00\t1.00\t3.244933\t1\t2\t2\t1\t2\n165.00\t572.00\t1.00\t3.355851\t2\t2\t2\t2\t2\n114.00\t693.00\t1.00\t3.441379\t2\t1\t2\t2\t2\n240.00\t712.00\t1.00\t3.261169\t2\t2\t2\t1\t2\n141.00\t740.00\t1.00\t3.093766\t1\t1\t2\t2\t2\n222.00\t408.00\t1.00\t3.237109\t1\t2\t2\t1\t2\n120.00\t513.00\t0.00\t3.129389\t2\t1\t2\t2\t2\n279.00\t666.00\t1.00\t3.219276\t2\t2\t2\t1\t2\n180.00\t667.00\t1.00\t3.199081\t2\t1\t2\t2\t2\n81.00\t587.00\t0.00\t3.287282\t2\t2\t2\t1\t2\n138.00\t720.00\t1.00\t3.269569\t1\t1\t2\t2\t2\n104.00\t745.00\t1.00\t3.25925\t2\t2\t2\t1\t2\n183.00\t644.00\t0.00\t2.987196\t2\t2\t2\t2\t2\n195.00\t555.00\t0.00\t2.80699\t2\t2\t2\t1\t2\n144.00\t563.00\t0.00\t3.39182\t1\t2\t2\t2\t2\n144.00\t748.00\t0.00\t3.313458\t2\t2\t1\t1\t2\n219.00\t809.00\t0.00\t3.092859\t2\t2\t2\t2\t2\n198.00\t585.00\t1.00\t3.200304\t2\t2\t2\t1\t2\n192.00\t470.00\t1.00\t3.185939\t2\t2\t1\t1\t2\n150.00\t697.00\t1.00\t3.273364\t1\t1\t2\t2\t2\n117.00\t769.00\t1.00\t3.201526\t2\t2\t2\t1\t2\n102.00\t788.00\t1.00\t3.187179\t2\t2\t2\t2\t2\n66.00\t571.00\t0.00\t3.121483\t2\t2\t1\t1\t2\n197.00\t709.00\t0.00\t3.084201\t2\t2\t2\t1\t2\n153.00\t667.00\t0.00\t3.120601\t2\t1\t2\t2\t2\n264.00\t663.00\t0.00\t3.599775\t2\t2\t2\t1\t2\n210.00\t675.00\t1.00\t3.333275\t2\t2\t2\t1\t2\n204.00\t636.00\t1.00\t2.965273\t1\t1\t2\t2\t2\n282.00\t813.00\t1.00\t3.489513\t1\t2\t2\t1\t2\n180.00\t750.00\t1.00\t3.119718\t2\t1\t2\t2\t2\n192.00\t574.00\t1.00\t3.375538\t2\t2\t1\t2\t2\n258.00\t659.00\t1.00\t3.113515\t2\t1\t2\t1\t2\n207.00\t646.00\t0.00\t3.023834\t2\t1\t2\t2\t2\n153.00\t814.00\t0.00\t3.11396\t2\t1\t2\t2\t2\n249.00\t558.00\t0.00\t2.981126\t2\t2\t2\t1\t2\n175.00\t572.00\t0.00\t3.330059\t2\t2\t2\t2\t2\n223.00\t640.00\t0.00\t3.136798\t1\t2\t2\t1\t2\n150.00\t560.00\t1.00\t3.356549\t2\t2\t2\t1\t2\n204.00\t659.00\t0.00\t3.04357\t2\t2\t2\t1\t2\n191.00\t614.00\t1.00\t3.097837\t1\t1\t2\t2\t2\n213.00\t713.00\t1.00\t3.117507\t2\t2\t1\t1\t2\n128.00\t620.00\t1.00\t3.044999\t2\t1\t2\t1\t2\n249.00\t692.00\t1.00\t3.564449\t2\t2\t2\t2\t2\n114.00\t615.00\t1.00\t3.357942\t2\t2\t2\t1\t2\n194.00\t712.00\t1.00\t3.093766\t2\t2\t2\t2\t2\n173.00\t640.00\t1.00\t3.095578\t1\t1\t2\t2\t2\n168.00\t693.00\t1.00\t3.304686\t1\t2\t2\t2\t2\n96.00\t793.00\t1.00\t2.910719\t2\t1\t2\t2\t2\n255.00\t610.00\t1.00\t3.40253\t2\t2\t2\t1\t2\n177.00\t585.00\t1.00\t3.54472\t2\t2\t2\t2\t2\n282.00\t701.00\t1.00\t3.259634\t2\t1\t2\t1\t2\n177.00\t494.00\t0.00\t2.986187\t1\t2\t2\t2\t2\n228.00\t809.00\t0.00\t3.242983\t1\t2\t1\t1\t2\n258.00\t692.00\t1.00\t2.941276\t1\t2\t2\t1\t2\n186.00\t726.00\t0.00\t3.204777\t1\t1\t2\t2\t2\n237.00\t632.00\t0.00\t3.179303\t2\t2\t2\t1\t2\n168.00\t661.00\t1.00\t3.323956\t2\t2\t2\t1\t2\n120.00\t803.00\t0.00\t3.173041\t2\t1\t2\t2\t2\n278.00\t539.00\t1.00\t3.155297\t2\t2\t2\t1\t2\n186.00\t996.00\t0.00\t3.283539\t2\t1\t2\t2\t2\n177.00\t669.00\t0.00\t3.121483\t1\t1\t2\t2\t2\n168.00\t639.00\t1.00\t3.415429\t2\t2\t2\t2\t2\n195.00\t742.00\t0.00\t3.068053\t1\t1\t2\t2\t2\n150.00\t721.00\t1.00\t3.469168\t2\t1\t2\t2\t2\n330.00\t646.00\t0.00\t3.209633\t1\t2\t1\t1\t2\n105.00\t702.00\t0.00\t3.357594\t2\t2\t2\t2\t2\n102.00\t579.00\t1.00\t3.054001\t2\t2\t2\t1\t2\n160.00\t619.00\t1.00\t3.07084\t1\t1\t2\t2\t2\n231.00\t555.00\t0.00\t3.135059\t2\t1\t2\t1\t2\n210.00\t655.00\t0.00\t3.203153\t1\t1\t2\t2\t2\n60.00\t631.00\t0.00\t3.074543\t2\t1\t2\t2\t2\n99.00\t499.00\t1.00\t2.79545\t2\t2\t2\t1\t2\n162.00\t643.00\t1.00\t3.268047\t2\t2\t2\t1\t2\n129.00\t799.00\t0.00\t3.099642\t2\t1\t2\t2\t2\n230.00\t616.00\t1.00\t3.275256\t2\t2\t2\t1\t2\n180.00\t633.00\t1.00\t2.960623\t2\t1\t1\t2\t2\n243.00\t460.00\t0.00\t3.189653\t2\t2\t2\t1\t2\n219.00\t530.00\t0.00\t2.876949\t2\t2\t1\t1\t2\n171.00\t676.00\t0.00\t2.828496\t2\t2\t1\t1\t2\n114.00\t794.00\t1.00\t3.441059\t1\t1\t2\t2\t2\n225.00\t665.00\t1.00\t3.294354\t1\t2\t2\t1\t2\n261.00\t752.00\t1.00\t3.190476\t2\t2\t2\t1\t2\n246.00\t532.00\t1.00\t3.192121\t2\t2\t1\t1\t2\n227.00\t589.00\t0.00\t3.24688\t2\t2\t2\t1\t2\n102.00\t558.00\t1.00\t3.199489\t2\t1\t2\t2\t2\n108.00\t542.00\t0.00\t2.930127\t2\t1\t1\t2\t2\n177.00\t816.00\t1.00\t3.465111\t2\t1\t2\t2\t2\n128.00\t444.00\t0.00\t2.894253\t2\t2\t2\t1\t2\n162.00\t373.00\t1.00\t3.203153\t2\t1\t2\t2\t2\n123.00\t768.00\t0.00\t3.188004\t2\t1\t1\t1\t2\n150.00\t595.00\t1.00\t3.367296\t2\t1\t2\t2\t2\n198.00\t751.00\t1.00\t3.232384\t2\t2\t2\t2\t2\n264.00\t611.00\t0.00\t3.070376\t2\t2\t1\t1\t2\n96.00\t650.00\t0.00\t3.15955\t2\t2\t2\t2\t2\n249.00\t612.00\t0.00\t3.175968\t2\t1\t1\t1\t2\n279.00\t490.00\t1.00\t3.280535\t2\t2\t2\t1\t2\n320.00\t748.00\t0.00\t3.182627\t2\t2\t1\t1\t2\n135.00\t724.00\t1.00\t3.601413\t2\t1\t2\t2\t2\n133.00\t568.00\t1.00\t3.222868\t1\t2\t2\t2\t2\n222.00\t626.00\t0.00\t3.330059\t2\t2\t2\t1\t2\n150.00\t793.00\t0.00\t3.218876\t2\t2\t1\t2\t2\n219.00\t649.00\t1.00\t3.288775\t1\t1\t2\t2\t2\n231.00\t463.00\t0.00\t3.246102\t2\t1\t1\t1\t2\n254.00\t534.00\t1.00\t3.21165\t2\t1\t2\t1\t2\n225.00\t900.00\t1.00\t3.058707\t2\t2\t2\t2\t2\n284.00\t646.00\t0.00\t3.159975\t2\t2\t2\t1\t2\n141.00\t377.00\t0.00\t2.994732\t1\t1\t2\t2\t2\n138.00\t806.00\t0.00\t3.158276\t2\t1\t2\t2\t2\n51.00\t647.00\t1.00\t3.354455\t2\t2\t2\t1\t2\n147.00\t683.00\t1.00\t3.652734\t2\t2\t2\t2\t2\n222.00\t609.00\t0.00\t3.067122\t2\t1\t2\t1\t2\n99.00\t637.00\t1.00\t3.467297\t2\t1\t2\t2\t2\n153.00\t526.00\t1.00\t3.249211\t2\t2\t2\t1\t2\n162.00\t672.00\t1.00\t3.279406\t2\t2\t2\t2\t2\n236.00\t482.00\t1.00\t3.206398\t2\t2\t2\t1\t2\n69.00\t729.00\t1.00\t3.196221\t2\t2\t2\t2\t2\n177.00\t795.00\t1.00\t3.390136\t2\t2\t2\t2\t2\n306.00\t645.00\t1.00\t3.260402\t2\t2\t2\t1\t2\n195.00\t559.00\t1.00\t3.108168\t2\t2\t1\t1\t2\n165.00\t690.00\t0.00\t3.163786\t2\t1\t2\t1\t2\n159.00\t601.00\t1.00\t3.329343\t1\t2\t2\t2\t2\n279.00\t455.00\t1.00\t3.521052\t2\t2\t1\t1\t2\n138.00\t815.00\t0.00\t3.117065\t2\t1\t2\t2\t2\n174.00\t545.00\t0.00\t3.239071\t1\t1\t2\t2\t2\n186.00\t813.00\t0.00\t3.011113\t1\t1\t2\t2\t2\n78.00\t462.00\t1.00\t3.105035\t2\t1\t2\t2\t2\n227.00\t765.00\t1.00\t3.146735\t2\t2\t2\t1\t2\n156.00\t704.00\t1.00\t3.048325\t2\t1\t2\t2\t2\n234.00\t505.00\t0.00\t3.064792\t2\t2\t2\t1\t2\n186.00\t640.00\t1.00\t3.148453\t2\t2\t1\t1\t2\n72.00\t578.00\t1.00\t3.030134\t2\t2\t2\t2\t2\n141.00\t676.00\t1.00\t3.170945\t2\t2\t2\t2\t2\n165.00\t503.00\t0.00\t3.060115\t2\t1\t2\t2\t2\n270.00\t545.00\t1.00\t3.146735\t2\t2\t1\t1\t2\n200.00\t564.00\t0.00\t3.218876\t2\t2\t1\t1\t2\n210.00\t630.00\t0.00\t3.250762\t2\t2\t2\t2\t2\n192.00\t628.00\t1.00\t3.564449\t1\t1\t2\t2\t2\n189.00\t872.00\t0.00\t3.131573\t1\t2\t2\t2\t2\n75.00\t476.00\t1.00\t3.237109\t2\t2\t2\t1\t2\n159.00\t862.00\t1.00\t3.253857\t1\t2\t2\t2\t2\n156.00\t605.00\t1.00\t3.466985\t1\t1\t2\t2\t2\n186.00\t596.00\t0.00\t3.111736\t2\t1\t2\t1\t2\n297.00\t643.00\t1.00\t3.100092\t1\t2\t2\t1\t2\n243.00\t675.00\t1.00\t3.085116\t1\t2\t1\t1\t2\n138.00\t1050.00\t0.00\t3.278276\t2\t2\t2\t2\t2\n180.00\t741.00\t0.00\t3.318178\t2\t1\t2\t1\t2\n168.00\t818.00\t1.00\t3.115735\t1\t1\t2\t2\t2\n117.00\t754.00\t0.00\t3.140698\t2\t2\t2\t1\t2\n153.00\t621.00\t0.00\t3.042616\t1\t1\t2\t2\t2\n252.00\t493.00\t1.00\t3.504656\t2\t2\t2\t1\t2\n147.00\t630.00\t1.00\t3.249599\t2\t2\t2\t2\t2\n240.00\t649.00\t0.00\t3.498929\t2\t2\t1\t1\t2\n156.00\t782.00\t0.00\t3.310908\t2\t2\t2\t1\t2\n147.00\t582.00\t0.00\t2.959587\t2\t1\t2\t2\t2\n180.00\t708.00\t0.00\t3.169686\t2\t2\t2\t1\t2\n192.00\t665.00\t0.00\t3.489513\t2\t2\t2\t2\t2\n207.00\t801.00\t0.00\t3.300271\t2\t2\t2\t1\t2\n144.00\t507.00\t1.00\t2.788708\t2\t2\t2\t1\t2\n171.00\t792.00\t1.00\t3.503453\t2\t2\t2\t2\t2\n174.00\t738.00\t1.00\t3.23593\t2\t2\t2\t1\t2\n183.00\t930.00\t0.00\t3.321071\t2\t2\t2\t2\t2\n240.00\t613.00\t0.00\t3.322515\t2\t1\t2\t1\t2\n174.00\t639.00\t1.00\t3.24688\t1\t2\t2\t2\t2\n201.00\t690.00\t1.00\t3.062924\t2\t2\t2\t1\t2\n105.00\t1077.00\t0.00\t3.346389\t2\t1\t2\t2\t2\n207.00\t513.00\t0.00\t3.178054\t2\t2\t2\t1\t2\n210.00\t644.00\t0.00\t3.02432\t2\t1\t2\t2\t2\n81.00\t560.00\t1.00\t3.403195\t2\t1\t2\t2\t2\n165.00\t814.00\t1.00\t3.129389\t1\t1\t1\t2\t2\n183.00\t596.00\t1.00\t3.108614\t2\t2\t2\t1\t2\n225.00\t572.00\t0.00\t3.201933\t2\t2\t2\t1\t2\n197.00\t665.00\t1.00\t3.599502\t1\t1\t2\t2\t2\n162.00\t691.00\t0.00\t3.24688\t2\t2\t2\t1\t2\n162.00\t644.00\t1.00\t3.195402\t2\t2\t2\t1\t2\n210.00\t723.00\t0.00\t3.173041\t1\t2\t2\t2\t2\n231.00\t639.00\t0.00\t3.158276\t2\t2\t2\t1\t2\n180.00\t954.00\t0.00\t3.128075\t1\t1\t2\t2\t2\n186.00\t721.00\t1.00\t3.181797\t1\t2\t1\t2\t2\n165.00\t729.00\t1.00\t3.227637\t1\t1\t1\t2\t2\n96.00\t765.00\t0.00\t3.34498\t2\t2\t1\t1\t2\n138.00\t469.00\t0.00\t3.170945\t2\t2\t2\t1\t2\n120.00\t688.00\t1.00\t3.526949\t1\t2\t2\t2\t2\n243.00\t516.00\t0.00\t3.145445\t2\t2\t2\t1\t2\n258.00\t689.00\t1.00\t3.244544\t2\t2\t1\t1\t2\n243.00\t740.00\t1.00\t3.198265\t2\t2\t1\t1\t2\n129.00\t609.00\t1.00\t3.073156\t2\t2\t2\t1\t2\n162.00\t608.00\t0.00\t3.257712\t1\t2\t2\t1\t2\n102.00\t663.00\t1.00\t3.416086\t2\t2\t2\t1\t2\n198.00\t806.00\t1.00\t3.173041\t2\t2\t2\t1\t2\n273.00\t690.00\t0.00\t3.194173\t1\t2\t2\t1\t2\n183.00\t625.00\t1.00\t3.585184\t2\t2\t2\t1\t2\n207.00\t716.00\t0.00\t3.310908\t2\t2\t2\t1\t2\n174.00\t501.00\t0.00\t3.023834\t2\t2\t2\t1\t2\n282.00\t589.00\t0.00\t3.125444\t2\t2\t2\t1\t2\n237.00\t557.00\t0.00\t3.121483\t2\t2\t2\t1\t2\n186.00\t625.00\t0.00\t3.190888\t2\t2\t2\t1\t2\n84.00\t466.00\t0.00\t3.160823\t2\t1\t2\t1\t2\n201.00\t623.00\t1.00\t3.121483\t2\t1\t2\t1\t2\n201.00\t657.00\t1.00\t3.404525\t2\t1\t2\t1\t2\n87.00\t609.00\t0.00\t3.088767\t2\t2\t2\t1\t2\n216.00\t631.00\t0.00\t3.244544\t2\t1\t2\t1\t2\n174.00\t542.00\t0.00\t3.112181\t2\t2\t2\t1\t2\n224.00\t625.00\t1.00\t3.2312\t2\t2\t2\t1\t2\n225.00\t709.00\t1.00\t3.369707\t2\t2\t2\t1\t2\n216.00\t471.00\t1.00\t3.08603\t1\t2\t2\t1\t2\n264.00\t566.00\t0.00\t3.180966\t2\t2\t2\t1\t2\n165.00\t648.00\t1.00\t3.21326\t2\t1\t2\t1\t2\n87.00\t672.00\t1.00\t3.199081\t2\t2\t2\t1\t2\n270.00\t723.00\t0.00\t3.109507\t1\t1\t2\t1\t2\n216.00\t687.00\t1.00\t3.301745\t2\t2\t1\t1\t2\n285.00\t462.00\t1.00\t3.251537\t1\t2\t2\t1\t2\n138.00\t794.00\t1.00\t3.32071\t2\t1\t2\t2\t2\n92.00\t678.00\t0.00\t3.092859\t2\t2\t1\t1\t2\n237.00\t510.00\t0.00\t3.507358\t2\t1\t1\t1\t2\n213.00\t681.00\t1.00\t3.381335\t2\t2\t2\t1\t2\n192.00\t767.00\t1.00\t3.335058\t1\t1\t2\t2\t2\n294.00\t524.00\t0.00\t3.411808\t1\t1\t2\t1\t2\n177.00\t619.00\t0.00\t3.264614\t1\t2\t2\t2\t2\n210.00\t459.00\t0.00\t3.606313\t2\t2\t1\t1\t2\n378.00\t769.00\t0.00\t3.209229\t2\t1\t2\t1\t2\n240.00\t452.00\t0.00\t3.243373\t1\t1\t2\t1\t2\n159.00\t779.00\t1.00\t3.266904\t2\t2\t2\t2\t2\n186.00\t686.00\t1.00\t3.068053\t1\t1\t2\t2\t2\n69.00\t658.00\t1.00\t3.137666\t2\t2\t2\t1\t2\n135.00\t983.00\t0.00\t3.06152\t1\t2\t2\t2\t2\n210.00\t536.00\t1.00\t3.345685\t2\t2\t2\t1\t2\n228.00\t697.00\t1.00\t3.248823\t1\t2\t2\t2\t2\n190.00\t750.00\t0.00\t3.322515\t2\t2\t2\t1\t2\n167.00\t584.00\t1.00\t3.262318\t2\t1\t2\t2\t2\n218.00\t544.00\t0.00\t3.275256\t2\t2\t2\t1\t2\n210.00\t571.00\t0.00\t2.95178\t1\t1\t2\t2\t2\n186.00\t722.00\t0.00\t3.538347\t2\t2\t2\t1\t2\n264.00\t667.00\t0.00\t3.29101\t2\t2\t1\t1\t2\n150.00\t683.00\t0.00\t2.968875\t1\t1\t2\t2\t2\n219.00\t531.00\t1.00\t3.209633\t2\t1\t2\t1\t2\n213.00\t578.00\t1.00\t3.508256\t2\t2\t2\t1\t2\n174.00\t665.00\t1.00\t3.240246\t1\t2\t2\t2\t2\n174.00\t513.00\t0.00\t3.070376\t2\t2\t2\t1\t2\n204.00\t607.00\t1.00\t3.179303\t2\t2\t1\t2\t2\n201.00\t713.00\t1.00\t3.623274\t2\t2\t2\t2\t2\n156.00\t619.00\t1.00\t3.346037\t2\t2\t2\t1\t2\n129.00\t849.00\t1.00\t3.378952\t2\t1\t2\t2\t2\n285.00\t596.00\t0.00\t3.145875\t1\t1\t1\t1\t2\n252.00\t1286.00\t0.00\t3.15487\t2\t2\t2\t1\t2\n129.00\t730.00\t0.00\t3.035914\t2\t1\t2\t2\t2\n129.00\t949.00\t1.00\t3.22843\t2\t2\t2\t2\t2\n180.00\t701.00\t0.00\t3.273364\t2\t1\t2\t2\t2\n177.00\t539.00\t1.00\t3.158276\t2\t2\t2\t1\t2\n195.00\t641.00\t1.00\t2.93492\t2\t1\t2\t2\t2\n255.00\t724.00\t0.00\t3.201933\t2\t2\t2\t1\t2\n153.00\t512.00\t0.00\t3.441379\t2\t2\t2\t2\t2\n285.00\t646.00\t0.00\t3.288775\t2\t2\t2\t1\t2\n237.00\t512.00\t1.00\t3.014063\t2\t1\t1\t1\t2\n168.00\t737.00\t1.00\t3.185112\t2\t1\t2\t2\t2\n231.00\t479.00\t0.00\t3.058707\t2\t1\t2\t1\t2\n243.00\t458.00\t0.00\t3.356549\t2\t2\t2\t1\t2\n198.00\t876.00\t0.00\t3.086943\t2\t1\t2\t2\t2\n171.00\t828.00\t1.00\t3.415429\t1\t2\t2\t2\t2\n267.00\t508.00\t0.00\t3.054944\t2\t2\t2\t1\t2\n114.00\t576.00\t1.00\t3.217675\t2\t1\t2\t2\t2\n174.00\t745.00\t0.00\t3.105483\t2\t2\t2\t1\t2\n189.00\t635.00\t0.00\t3.194173\t1\t1\t2\t2\t2\n189.00\t621.00\t0.00\t3.25347\t1\t2\t2\t2\t2\n90.00\t378.00\t0.00\t2.850707\t2\t2\t2\t1\t2\n210.00\t648.00\t1.00\t3.275256\t2\t2\t2\t1\t2\n204.00\t658.00\t1.00\t3.432696\t2\t2\t2\t1\t2\n153.00\t686.00\t1.00\t3.466673\t2\t2\t2\t2\t2\n267.00\t589.00\t1.00\t3.13201\t2\t2\t2\t1\t2\n123.00\t628.00\t1.00\t3.21326\t2\t1\t2\t1\t2\n83.00\t577.00\t0.00\t3.221273\t2\t2\t2\t1\t2\n222.00\t731.00\t0.00\t3.555348\t1\t1\t2\t2\t2\n189.00\t499.00\t0.00\t3.221273\t2\t1\t1\t1\t2\n102.00\t344.00\t0.00\t3.258097\t2\t2\t2\t1\t2\n156.00\t772.00\t1.00\t3.358986\t2\t1\t2\t2\t2\n186.00\t618.00\t0.00\t3.333275\t2\t2\t2\t1\t2\n105.00\t428.00\t1.00\t2.99373\t2\t1\t2\t1\t2\n132.00\t675.00\t0.00\t3.609836\t2\t1\t2\t2\t2\n183.00\t690.00\t1.00\t3.270709\t2\t1\t2\t1\t2\n258.00\t454.00\t1.00\t3.186766\t2\t2\t2\t1\t2\n141.00\t770.00\t0.00\t3.322515\t1\t1\t2\t2\t2\n255.00\t463.00\t0.00\t3.500439\t2\t2\t2\t1\t2\n165.00\t748.00\t1.00\t3.354106\t2\t1\t1\t2\t2\n234.00\t549.00\t1.00\t3.501646\t1\t1\t2\t1\t2\n135.00\t538.00\t1.00\t3.380654\t1\t1\t2\t2\t2\n249.00\t462.00\t1.00\t3.299534\t2\t2\t2\t1\t2\n177.00\t605.00\t1.00\t3.554205\t2\t2\t2\t2\t2\n174.00\t519.00\t0.00\t2.851284\t2\t1\t2\t1\t2\n183.00\t707.00\t0.00\t3.078233\t2\t2\t2\t2\t2\n204.00\t556.00\t1.00\t3.278276\t2\t2\t2\t1\t2\n153.00\t629.00\t0.00\t3.196221\t2\t2\t2\t1\t2\n165.00\t577.00\t0.00\t3.133754\t1\t2\t2\t2\t2\n225.00\t654.00\t0.00\t3.271468\t2\t2\t1\t1\t2\n231.00\t684.00\t1.00\t3.339322\t2\t1\t2\t2\t2\n210.00\t717.00\t0.00\t3.244544\t2\t2\t2\t1\t2\n114.00\t662.00\t1.00\t3.067122\t2\t1\t2\t2\t2\n225.00\t585.00\t0.00\t3.019449\t2\t2\t2\t1\t2\n168.00\t522.00\t1.00\t3.061988\t2\t2\t2\t2\t2\n222.00\t652.00\t0.00\t3.066191\t2\t2\t2\t1\t2\n195.00\t776.00\t0.00\t2.969388\t2\t1\t2\t2\t2\n234.00\t521.00\t0.00\t3.356549\t2\t2\t1\t1\t2\n105.00\t488.00\t1.00\t3.335058\t1\t2\t2\t2\t2\n180.00\t590.00\t0.00\t3.29101\t2\t2\t1\t1\t2\n180.00\t615.00\t0.00\t3.048325\t1\t1\t2\t2\t2\n210.00\t654.00\t1.00\t3.392829\t2\t2\t2\t1\t2\n264.00\t661.00\t1.00\t3.269569\t2\t2\t2\t1\t2\n183.00\t841.00\t1.00\t3.36833\t1\t2\t2\t2\t2\n156.00\t703.00\t0.00\t3.279783\t2\t2\t2\t1\t2\n180.00\t915.00\t1.00\t3.308351\t2\t2\t2\t2\t2\n168.00\t843.00\t0.00\t3.285412\t1\t1\t1\t2\t2\n195.00\t832.00\t0.00\t3.287282\t2\t2\t2\t1\t2\n180.00\t1020.00\t1.00\t3.442019\t1\t2\t2\t2\t2\n225.00\t513.00\t0.00\t3.322515\t1\t1\t2\t1\t2\n180.00\t638.00\t1.00\t2.922624\t1\t1\t2\t2\t2\n216.00\t964.00\t1.00\t3.426215\t2\t1\t2\t1\t2\n234.00\t632.00\t0.00\t3.12016\t1\t1\t2\t1\t2\n192.00\t739.00\t1.00\t3.275256\t1\t1\t2\t2\t2\n54.00\t702.00\t0.00\t2.811208\t2\t1\t2\t2\t2\n60.00\t757.00\t0.00\t3.226844\t2\t2\t2\t2\t2\n246.00\t676.00\t0.00\t3.169686\t1\t2\t2\t1\t2\n171.00\t860.00\t1.00\t3.389125\t2\t1\t2\t2\t2\n270.00\t452.00\t0.00\t3.180551\t2\t2\t2\t1\t2\n183.00\t695.00\t0.00\t3.125444\t2\t1\t2\t2\t2\n195.00\t837.00\t1.00\t3.239854\t1\t2\t1\t2\t2\n93.00\t802.00\t0.00\t3.224858\t2\t2\t2\t2\t2\n141.00\t561.00\t1.00\t3.17346\t2\t2\t2\t1\t2\n183.00\t1009.00\t1.00\t3.310908\t2\t1\t2\t2\t2\n243.00\t619.00\t0.00\t3.166319\t2\t2\t2\t1\t2\n96.00\t586.00\t1.00\t3.02965\t1\t2\t2\t2\t2\n96.00\t739.00\t0.00\t3.070376\t2\t2\t2\t1\t2\n45.00\t725.00\t0.00\t2.963725\t2\t1\t2\t2\t2\n117.00\t641.00\t0.00\t2.998728\t2\t1\t2\t2\t2\n234.00\t686.00\t1.00\t3.131573\t2\t2\t2\t1\t2\n159.00\t567.00\t0.00\t3.183456\t2\t1\t2\t1\t2\n126.00\t691.00\t1.00\t3.543854\t1\t1\t2\t2\t2\n231.00\t723.00\t0.00\t3.294354\t2\t2\t2\t1\t2\n192.00\t721.00\t1.00\t3.093766\t1\t1\t2\t2\t2\n192.00\t640.00\t0.00\t3.351657\t1\t2\t2\t2\t2\n257.00\t653.00\t1.00\t3.309813\t2\t2\t1\t1\t2\n60.00\t638.00\t0.00\t3.322515\t1\t1\t2\t2\t2\n186.00\t880.00\t1.00\t3.356549\t2\t2\t2\t1\t2\n129.00\t694.00\t0.00\t3.125444\t2\t2\t2\t2\t2\n219.00\t612.00\t0.00\t3.237109\t2\t2\t2\t1\t2\n186.00\t721.00\t0.00\t2.979603\t2\t2\t2\t2\t2\n240.00\t595.00\t0.00\t3.244154\t2\t1\t2\t1\t2\n216.00\t670.00\t0.00\t2.91398\t2\t1\t2\t2\t2\n132.00\t564.00\t0.00\t3.234749\t2\t2\t1\t1\t2\n132.00\t693.00\t0.00\t3.188004\t1\t1\t2\t2\t2\n213.00\t590.00\t1.00\t3.215269\t2\t2\t2\t1\t2\n207.00\t514.00\t1.00\t3.355851\t1\t2\t2\t1\t2\n111.00\t640.00\t1.00\t3.073156\t2\t1\t2\t1\t2\n114.00\t644.00\t1.00\t3.127199\t1\t2\t2\t2\t2\n216.00\t613.00\t1.00\t3.346741\t2\t2\t2\t1\t2\n177.00\t1166.00\t1.00\t3.12016\t2\t1\t2\t1\t2\n138.00\t630.00\t0.00\t3.179303\t2\t2\t2\t2\t2\n186.00\t736.00\t0.00\t3.289893\t2\t1\t2\t2\t2\n267.00\t473.00\t1.00\t2.998229\t2\t2\t2\t1\t2\n72.00\t685.00\t0.00\t2.961658\t2\t1\t2\t2\t2\n69.00\t833.00\t1.00\t3.331847\t2\t1\t2\t2\t2\n99.00\t612.00\t0.00\t3.242202\t1\t2\t2\t1\t2\n174.00\t667.00\t1.00\t3.165897\t1\t1\t2\t1\t2\n198.00\t732.00\t1.00\t3.342155\t1\t2\t2\t2\t2\n96.00\t551.00\t0.00\t3.044999\t2\t2\t2\t1\t2\n201.00\t685.00\t1.00\t3.15487\t2\t1\t2\t2\t2\n150.00\t533.00\t0.00\t2.925846\t2\t2\t2\t1\t2\n159.00\t705.00\t1.00\t3.092405\t2\t1\t2\t2\t2\n198.00\t612.00\t1.00\t3.415758\t2\t2\t2\t1\t2\n195.00\t888.00\t0.00\t3.11795\t2\t2\t2\t1\t2\n126.00\t678.00\t1.00\t3.24142\t1\t1\t2\t2\t2\n171.00\t510.00\t0.00\t3.23593\t2\t2\t2\t1\t2\n111.00\t767.00\t1.00\t3.206398\t2\t2\t2\t2\t2\n96.00\t603.00\t1.00\t3.442339\t2\t2\t2\t1\t2\n132.00\t472.00\t0.00\t3.241029\t2\t1\t2\t2\t2\n159.00\t644.00\t1.00\t3.375538\t2\t1\t2\t2\t2\n111.00\t884.00\t0.00\t3.035434\t1\t1\t2\t2\t2\n138.00\t708.00\t0.00\t3.27639\t2\t1\t2\t2\t2\n138.00\t592.00\t0.00\t2.879198\t2\t1\t2\t2\t2\n309.00\t653.00\t1.00\t3.36557\t2\t2\t2\t1\t2\n231.00\t716.00\t1.00\t3.346741\t2\t2\t2\t1\t2\n114.00\t862.00\t0.00\t3.301009\t2\t2\t2\t2\t2\n102.00\t617.00\t1.00\t3.400197\t2\t1\t2\t2\t2\n147.00\t592.00\t0.00\t3.074081\t2\t2\t2\t1\t2\n162.00\t527.00\t0.00\t3.591542\t2\t2\t2\t2\t2\n177.00\t810.00\t0.00\t3.048799\t1\t2\t1\t2\t2\n165.00\t523.00\t0.00\t3.005683\t2\t2\t2\t1\t2\n162.00\t614.00\t1.00\t3.492865\t1\t1\t2\t2\t2\n78.00\t954.00\t0.00\t3.603322\t1\t1\t2\t2\t2\n105.00\t479.00\t0.00\t3.246491\t2\t1\t2\t1\t2\n165.00\t716.00\t1.00\t3.168845\t2\t2\t2\t1\t2\n237.00\t594.00\t0.00\t3.309813\t2\t1\t2\t1\t2\n225.00\t607.00\t0.00\t3.109507\t1\t2\t2\t2\t2\n201.00\t696.00\t1.00\t3.270709\t2\t2\t2\t1\t2\n72.00\t734.00\t1.00\t3.011606\t1\t2\t2\t2\t2\n168.00\t534.00\t0.00\t3.170945\t2\t1\t2\t2\t2\n146.00\t818.00\t1.00\t3.070376\t2\t1\t2\t2\t2\n198.00\t545.00\t0.00\t3.007661\t2\t2\t2\t1\t2\n93.00\t726.00\t1.00\t2.913437\t2\t1\t2\t2\t2\n237.00\t552.00\t1.00\t3.182627\t2\t2\t2\t1\t2\n153.00\t589.00\t1.00\t3.299903\t1\t2\t2\t2\t2\n162.00\t476.00\t0.00\t3.299534\t2\t2\t2\t1\t2\n240.00\t787.00\t0.00\t3.083285\t2\t2\t2\t2\t2\n240.00\t472.00\t0.00\t3.357942\t2\t2\t2\t1\t2\n237.00\t743.00\t1.00\t3.114848\t2\t2\t2\t1\t2\n198.00\t433.00\t1.00\t3.072693\t2\t2\t2\t1\t2\n216.00\t914.00\t0.00\t3.361763\t1\t1\t2\t2\t2\n90.00\t526.00\t0.00\t2.998229\t2\t1\t2\t1\t2\n144.00\t743.00\t1.00\t3.670206\t1\t2\t2\t2\t2\n276.00\t717.00\t0.00\t3.203559\t2\t2\t1\t1\t2\n117.00\t644.00\t0.00\t3.208421\t2\t1\t2\t2\t2\n171.00\t795.00\t0.00\t3.034953\t2\t1\t2\t1\t2\n174.00\t489.00\t1.00\t3.210844\t2\t2\t2\t1\t2\n150.00\t505.00\t0.00\t3.073619\t2\t2\t2\t1\t2\n81.00\t766.00\t1.00\t3.292126\t1\t1\t2\t2\t2\n186.00\t744.00\t0.00\t3.323956\t2\t2\t2\t1\t2\n183.00\t884.00\t0.00\t3.282414\t2\t2\t2\t2\t2\n147.00\t782.00\t0.00\t3.243764\t1\t1\t2\t2\t2\n105.00\t631.00\t1.00\t3.21165\t2\t2\t2\t1\t2\n147.00\t689.00\t1.00\t3.318902\t2\t2\t2\t2\t2\n207.00\t729.00\t0.00\t3.227637\t2\t1\t2\t2\t2\n213.00\t610.00\t0.00\t2.984671\t2\t2\t2\t1\t2\n261.00\t547.00\t0.00\t3.278276\t1\t1\t2\t1\t2\n168.00\t526.00\t1.00\t3.47785\t1\t1\t2\t2\t2\n177.00\t560.00\t0.00\t3.117507\t2\t1\t1\t2\t2\n162.00\t475.00\t1.00\t3.089678\t2\t2\t2\t1\t2\n156.00\t647.00\t0.00\t3.097837\t2\t1\t2\t1\t2\n99.00\t660.00\t1.00\t3.092405\t2\t2\t2\t2\t2\n159.00\t593.00\t0.00\t3.222071\t1\t1\t2\t2\t2\n309.00\t630.00\t0.00\t3.022861\t1\t1\t2\t1\t2\n255.00\t458.00\t0.00\t3.157426\t2\t2\t2\t1\t2\n183.00\t857.00\t1.00\t3.441699\t1\t1\t2\t2\t2\n261.00\t545.00\t1.00\t3.240246\t2\t2\t2\t1\t2\n150.00\t882.00\t0.00\t3.165897\t2\t1\t2\t2\t2\n258.00\t607.00\t1.00\t3.254629\t1\t2\t2\t1\t2\n195.00\t552.00\t0.00\t3.357594\t1\t1\t2\t2\t2\n117.00\t677.00\t1.00\t3.383712\t2\t1\t2\t2\t2\n180.00\t601.00\t1.00\t3.125005\t2\t2\t1\t1\t2\n207.00\t675.00\t1.00\t3.557061\t2\t1\t2\t2\t2\n225.00\t668.00\t0.00\t3.369018\t2\t2\t2\t1\t2\n180.00\t930.00\t1.00\t3.493169\t1\t1\t2\t2\t2\n312.00\t635.00\t1.00\t3.15487\t2\t2\t2\t1\t2\n219.00\t613.00\t1.00\t3.17346\t1\t2\t1\t1\t2\n90.00\t467.00\t1.00\t2.986692\t1\t1\t1\t2\t2\n123.00\t747.00\t1.00\t3.201526\t2\t1\t2\t1\t2\n198.00\t807.00\t0.00\t3.193763\t2\t2\t2\t2\t2\n273.00\t777.00\t0.00\t3.046901\t2\t2\t2\t1\t2\n164.00\t804.00\t1.00\t3.134624\t2\t2\t2\t1\t2\n153.00\t726.00\t1.00\t3.641788\t2\t2\t2\t2\t2\n246.00\t647.00\t0.00\t3.121483\t2\t2\t2\t1\t2\n240.00\t836.00\t1.00\t3.256557\t2\t1\t2\t1\t2\n194.00\t707.00\t0.00\t3.279406\t1\t1\t2\t2\t2\n117.00\t572.00\t1.00\t3.531055\t2\t2\t2\t1\t2\n231.00\t542.00\t1.00\t3.451574\t1\t2\t2\t1\t2\n120.00\t782.00\t0.00\t3.089678\t2\t1\t2\t1\t2\n120.00\t864.00\t0.00\t2.892037\t2\t2\t2\t2\t2\n309.00\t739.00\t0.00\t3.131573\t2\t2\t2\t1\t2\n117.00\t638.00\t0.00\t3.288775\t2\t1\t2\t1\t2\n129.00\t565.00\t0.00\t3.135929\t2\t2\t2\t2\t2\n213.00\t520.00\t1.00\t3.485232\t2\t2\t2\t1\t2\n258.00\t739.00\t1.00\t3.246102\t2\t2\t2\t1\t2\n201.00\t707.00\t0.00\t3.197039\t2\t2\t2\t2\t2\n204.00\t572.00\t1.00\t3.404193\t1\t2\t2\t1\t2\n138.00\t528.00\t1.00\t3.423285\t2\t2\t1\t1\t2\n213.00\t780.00\t0.00\t3.343921\t1\t1\t2\t2\t2\n174.00\t626.00\t0.00\t2.999724\t2\t2\t2\t2\t2\n120.00\t832.00\t1.00\t3.684369\t1\t1\t2\t2\t2\n90.00\t837.00\t1.00\t3.425239\t2\t1\t2\t2\t2\n159.00\t847.00\t0.00\t3.292498\t2\t2\t2\t2\t2\n114.00\t752.00\t0.00\t3.092405\t1\t1\t2\t2\t2\n117.00\t754.00\t1.00\t3.363149\t1\t1\t2\t2\t2\n300.00\t775.00\t1.00\t3.244933\t2\t1\t1\t1\t1\n130.00\t620.00\t0.00\t3.379974\t1\t1\t2\t2\t1\n210.00\t595.00\t0.00\t3.116622\t2\t1\t1\t1\t1\n90.00\t879.00\t1.00\t3.074543\t1\t1\t2\t2\t1\n205.00\t724.00\t1.00\t3.239071\t2\t1\t1\t1\t1\n160.00\t956.00\t1.00\t3.137666\t1\t1\t2\t2\t1\n190.00\t853.00\t1.00\t3.075929\t2\t2\t2\t1\t1\n290.00\t827.00\t1.00\t3.279783\t2\t2\t1\t1\t1\n120.00\t646.00\t1.00\t3.345332\t2\t1\t2\t2\t1\n130.00\t879.00\t0.00\t3.273364\t2\t1\t2\t2\t1\n290.00\t698.00\t1.00\t3.262701\t2\t1\t1\t1\t1\n90.00\t595.00\t1.00\t3.055415\t2\t1\t2\t2\t1\n180.00\t905.00\t1.00\t3.331847\t2\t2\t2\t1\t1\n160.00\t905.00\t1.00\t3.399195\t2\t1\t2\t2\t1\n155.00\t672.00\t0.00\t3.129389\t2\t1\t1\t1\t1\n85.00\t750.00\t1.00\t3.070376\t2\t1\t2\t1\t1\n140.00\t724.00\t1.00\t3.141563\t1\t1\t2\t2\t1\n165.00\t672.00\t0.00\t3.136798\t2\t1\t2\t1\t1\n100.00\t801.00\t1.00\t2.999724\t2\t2\t1\t1\t1\n220.00\t595.00\t1.00\t3.310908\t2\t1\t2\t1\t1\n150.00\t982.00\t1.00\t2.993229\t2\t1\t2\t2\t1\n75.00\t775.00\t1.00\t3.268047\t2\t1\t2\t1\t1\n300.00\t724.00\t0.00\t3.181797\t2\t2\t1\t1\t1\n100.00\t931.00\t1.00\t3.490124\t2\t1\t2\t2\t1\n305.00\t801.00\t1.00\t3.240246\t2\t2\t2\t1\t1\n140.00\t853.00\t1.00\t3.192121\t1\t1\t2\t2\t1\n185.00\t775.00\t1.00\t3.475686\t2\t1\t2\t1\t1\n190.00\t853.00\t0.00\t3.376563\t1\t1\t2\t2\t1\n150.00\t775.00\t0.00\t3.149311\t2\t2\t2\t2\t1\n200.00\t775.00\t0.00\t3.212455\t2\t2\t1\t1\t1\n115.00\t698.00\t1.00\t3.304686\t1\t1\t1\t2\t1\n190.00\t982.00\t1.00\t3.161247\t2\t1\t2\t1\t1\n220.00\t775.00\t1.00\t3.538347\t2\t1\t2\t1\t1\n150.00\t879.00\t0.00\t3.137666\t1\t1\t2\t2\t1\n150.00\t775.00\t1.00\t3.301009\t2\t1\t2\t1\t1\n115.00\t672.00\t1.00\t3.289893\t1\t1\t2\t2\t1\n230.00\t956.00\t1.00\t3.312002\t2\t2\t2\t1\t1\n210.00\t672.00\t1.00\t3.101443\t1\t2\t1\t2\t1\n190.00\t595.00\t0.00\t3.283539\t2\t1\t2\t1\t1\n160.00\t827.00\t0.00\t3.042616\t2\t1\t2\t2\t1\n110.00\t724.00\t1.00\t3.566147\t1\t1\t2\t2\t1\n220.00\t543.00\t0.00\t2.891482\t2\t1\t1\t1\t1\n130.00\t956.00\t1.00\t3.383712\t1\t1\t2\t2\t1\n90.00\t750.00\t1.00\t3.162094\t2\t1\t1\t2\t1\n180.00\t620.00\t0.00\t3.140265\t2\t1\t2\t1\t1\n200.00\t646.00\t1.00\t3.505557\t1\t1\t2\t2\t1\n220.00\t569.00\t0.00\t3.186766\t2\t1\t2\t1\t1\n190.00\t853.00\t0.00\t3.150169\t2\t1\t2\t1\t1\n130.00\t1008.00\t0.00\t3.283539\t1\t1\t2\t2\t1\n165.00\t620.00\t0.00\t2.882564\t2\t1\t2\t1\t1\n250.00\t569.00\t0.00\t3.125005\t2\t1\t2\t1\t1\n120.00\t1163.00\t1.00\t3.109507\t1\t1\t2\t2\t1\n250.00\t698.00\t1.00\t3.509454\t2\t1\t1\t1\t1\n70.00\t1008.00\t1.00\t3.32071\t1\t1\t2\t2\t1\n160.00\t698.00\t0.00\t3.070376\t2\t1\t2\t1\t1\n120.00\t853.00\t0.00\t2.944439\t2\t1\t2\t1\t1\n85.00\t931.00\t1.00\t3.742894\t2\t1\t2\t2\t1\n90.00\t982.00\t0.00\t3.299903\t1\t1\t2\t2\t1\n120.00\t543.00\t0.00\t3.270709\t2\t1\t2\t1\t1\n190.00\t750.00\t1.00\t3.417071\t2\t2\t1\t1\t1\n230.00\t620.00\t0.00\t3.058707\t2\t2\t2\t1\t1\n70.00\t931.00\t1.00\t3.109507\t1\t1\t1\t2\t1\n210.00\t982.00\t1.00\t3.337903\t2\t1\t2\t2\t1\n200.00\t905.00\t1.00\t3.381335\t2\t2\t2\t1\t1\n165.00\t956.00\t0.00\t3.370394\t2\t1\t1\t2\t1\n200.00\t775.00\t1.00\t3.24688\t2\t1\t2\t1\t1\n120.00\t672.00\t0.00\t3.132882\t2\t1\t2\t2\t1\n140.00\t595.00\t1.00\t3.198265\t2\t1\t2\t1\t1\n140.00\t620.00\t0.00\t2.909084\t2\t1\t1\t2\t1\n180.00\t750.00\t1.00\t3.404525\t2\t1\t2\t1\t1\n160.00\t827.00\t1.00\t3.162094\t2\t1\t2\t2\t1\n325.00\t905.00\t1.00\t3.129389\t1\t2\t1\t1\t1\n250.00\t724.00\t1.00\t3.139833\t2\t2\t1\t1\t1\n150.00\t1267.00\t1.00\t3.25925\t1\t1\t2\t2\t1\n170.00\t620.00\t1.00\t3.379633\t2\t1\t2\t1\t1\n170.00\t905.00\t1.00\t3.273364\t2\t1\t2\t1\t1\n100.00\t595.00\t0.00\t2.956472\t2\t1\t2\t1\t1\n180.00\t1008.00\t1.00\t3.516013\t1\t1\t2\t2\t1\n180.00\t853.00\t1.00\t3.497113\t2\t1\t1\t1\t1\n160.00\t698.00\t1.00\t3.284664\t2\t1\t2\t1\t1\n190.00\t698.00\t0.00\t3.192121\t1\t1\t2\t2\t1\n115.00\t698.00\t1.00\t3.342862\t1\t1\t1\t2\t1\n165.00\t620.00\t1.00\t3.287282\t2\t1\t2\t1\t1\n110.00\t801.00\t0.00\t3.236323\t2\t1\t1\t2\t1\n200.00\t595.00\t0.00\t3.393165\t2\t2\t2\t1\t1\n90.00\t750.00\t1.00\t3.318178\t1\t1\t2\t2\t1\n215.00\t827.00\t1.00\t3.326833\t2\t2\t1\t1\t1\n180.00\t827.00\t1.00\t3.242202\t2\t1\t2\t2\t1\n125.00\t595.00\t1.00\t3.415429\t1\t1\t2\t2\t1\n120.00\t595.00\t1.00\t3.190476\t2\t1\t2\t1\t1\n120.00\t750.00\t1.00\t3.299903\t1\t1\t2\t2\t1\n60.00\t698.00\t0.00\t2.809403\t1\t1\t2\t2\t1\n210.00\t672.00\t1.00\t3.270709\t2\t2\t1\t1\t1\n370.00\t801.00\t0.00\t3.245712\t2\t2\t2\t1\t1\n65.00\t543.00\t1.00\t3.227637\t1\t1\t2\t2\t1\n230.00\t672.00\t1.00\t3.254243\t2\t2\t2\t1\t1\n170.00\t905.00\t0.00\t3.197039\t2\t2\t2\t2\t1\n170.00\t646.00\t1.00\t3.69883\t1\t1\t2\t2\t1\n240.00\t620.00\t1.00\t3.581016\t2\t2\t1\t1\t1\n160.00\t724.00\t1.00\t3.533687\t2\t1\t2\t2\t1\n290.00\t698.00\t0.00\t3.168424\t2\t1\t1\t1\t1\n110.00\t1060.00\t1.00\t3.326833\t2\t1\t2\t2\t1\n95.00\t853.00\t1.00\t3.083285\t1\t1\t2\t2\t1\n370.00\t827.00\t1.00\t3.140265\t1\t1\t2\t1\t1\n230.00\t775.00\t1.00\t3.184698\t2\t1\t1\t1\t1\n170.00\t646.00\t1.00\t3.425239\t1\t2\t2\t2\t1\n160.00\t672.00\t0.00\t3.100543\t2\t1\t2\t2\t1\n370.00\t620.00\t0.00\t3.170945\t2\t2\t1\t1\t1\n250.00\t724.00\t0.00\t3.170945\t2\t1\t1\t1\t1\n105.00\t853.00\t1.00\t3.519277\t2\t1\t2\t2\t1\n240.00\t620.00\t0.00\t3.193763\t2\t1\t2\t1\t1\n130.00\t1008.00\t0.00\t3.22843\t1\t1\t2\t2\t1\n200.00\t801.00\t0.00\t3.271468\t1\t1\t2\t2\t1\n130.00\t775.00\t1.00\t3.017004\t2\t1\t1\t1\t1\n135.00\t775.00\t1.00\t3.297687\t2\t1\t2\t1\t1\n90.00\t698.00\t1.00\t3.379633\t2\t1\t2\t1\t1\n80.00\t750.00\t1.00\t3.237894\t1\t1\t2\t2\t1\n230.00\t595.00\t1.00\t3.225255\t2\t1\t1\t1\t1\n150.00\t646.00\t1.00\t3.39081\t1\t1\t2\t2\t1\n155.00\t646.00\t0.00\t3.049747\t2\t2\t1\t1\t1\n100.00\t620.00\t1.00\t3.042616\t2\t1\t2\t2\t1\n180.00\t827.00\t1.00\t3.219276\t2\t1\t2\t1\t1\n180.00\t724.00\t1.00\t3.505557\t1\t2\t2\t2\t1\n210.00\t569.00\t1.00\t3.439135\t1\t2\t1\t1\t1\n270.00\t620.00\t0.00\t3.269569\t2\t1\t2\t1\t1\n180.00\t827.00\t0.00\t3.569251\t2\t1\t2\t2\t1\n190.00\t724.00\t1.00\t3.24688\t2\t1\t1\t1\t1\n135.00\t465.00\t0.00\t3.537475\t1\t1\t1\t1\t1\n225.00\t698.00\t1.00\t3.234355\t1\t1\t2\t2\t1\n135.00\t801.00\t0.00\t3.208421\t2\t2\t2\t1\t1\n85.00\t724.00\t1.00\t3.752089\t2\t1\t2\t2\t1\n150.00\t646.00\t1.00\t3.148882\t2\t1\t2\t1\t1\n130.00\t646.00\t1.00\t3.401864\t1\t1\t2\t2\t1\n180.00\t672.00\t1.00\t3.226844\t1\t1\t1\t2\t1\n200.00\t750.00\t0.00\t3.187179\t1\t1\t2\t2\t1\n210.00\t646.00\t1.00\t3.205993\t2\t1\t2\t1\t1\n160.00\t956.00\t1.00\t3.530763\t1\t1\t2\t2\t1\n160.00\t801.00\t1.00\t3.288775\t1\t1\t1\t1\t1\n90.00\t801.00\t0.00\t3.192121\t1\t1\t2\t2\t1\n260.00\t801.00\t1.00\t3.275256\t2\t2\t1\t1\t1\n200.00\t646.00\t0.00\t3.405189\t2\t1\t2\t1\t1\n190.00\t1344.00\t1.00\t3.344627\t2\t1\t2\t2\t1\n180.00\t750.00\t1.00\t3.219276\t1\t2\t2\t1\t1\n280.00\t646.00\t1.00\t3.208017\t2\t2\t1\t1\t1\n200.00\t698.00\t1.00\t3.299534\t2\t1\t1\t1\t1\n185.00\t956.00\t0.00\t3.210844\t2\t1\t1\t1\t1\n100.00\t672.00\t1.00\t3.343215\t1\t1\t2\t2\t1\n130.00\t801.00\t0.00\t3.187179\t2\t2\t2\t2\t1\n110.00\t569.00\t1.00\t3.068053\t1\t1\t2\t2\t1\n155.00\t724.00\t0.00\t3.016515\t2\t1\t2\t1\t1\n260.00\t569.00\t1.00\t3.414114\t1\t2\t2\t1\t1\n150.00\t801.00\t0.00\t3.157\t1\t1\t2\t2\t1\n180.00\t931.00\t1.00\t3.21326\t2\t2\t2\t1\t1\n190.00\t465.00\t0.00\t3.128513\t2\t2\t2\t1\t1\n280.00\t543.00\t1.00\t3.14974\t2\t2\t1\t1\t1\n210.00\t1318.00\t0.00\t3.315276\t2\t1\t2\t2\t1\n120.00\t646.00\t1.00\t3.117507\t2\t1\t1\t1\t1\n150.00\t931.00\t0.00\t2.959587\t2\t1\t2\t2\t1\n210.00\t543.00\t1.00\t3.137666\t2\t2\t1\t1\t1\n140.00\t724.00\t0.00\t3.300271\t2\t1\t2\t1\t1\n175.00\t698.00\t1.00\t3.1307\t1\t1\t2\t2\t1\n280.00\t646.00\t1.00\t3.391484\t2\t1\t1\t1\t1\n155.00\t775.00\t0.00\t3.333632\t1\t1\t2\t2\t1\n160.00\t801.00\t1.00\t3.428813\t2\t2\t2\t2\t1\n230.00\t724.00\t1.00\t3.150169\t2\t2\t1\t1\t1\n195.00\t750.00\t0.00\t3.242202\t1\t1\t2\t2\t1\n190.00\t724.00\t1.00\t3.244544\t2\t2\t1\t1\t1\n70.00\t879.00\t0.00\t3.16674\t1\t1\t2\t2\t1\n180.00\t724.00\t1.00\t3.219276\t2\t1\t2\t1\t1\n230.00\t595.00\t1.00\t3.329343\t2\t2\t2\t1\t1\n100.00\t724.00\t1.00\t3.215269\t2\t1\t2\t1\t1\n100.00\t750.00\t1.00\t3.105035\t2\t1\t2\t2\t1\n170.00\t724.00\t1.00\t3.128075\t1\t1\t2\t2\t1\n190.00\t646.00\t0.00\t3.004196\t2\t2\t2\t1\t1\n80.00\t698.00\t1.00\t3.250762\t1\t1\t2\t2\t1\n220.00\t724.00\t1.00\t3.539509\t2\t1\t1\t2\t1\n140.00\t620.00\t0.00\t3.364188\t2\t2\t1\t1\t1\n130.00\t879.00\t1.00\t3.449035\t1\t1\t1\t2\t1\n130.00\t905.00\t0.00\t3.434632\t2\t1\t2\t1\t1\n130.00\t827.00\t0.00\t2.948116\t2\t2\t2\t2\t1\n155.00\t698.00\t0.00\t3.220475\t2\t1\t2\t1\t1\n70.00\t569.00\t1.00\t3.205993\t2\t1\t1\t1\t1\n130.00\t698.00\t1.00\t3.183456\t2\t1\t2\t1\t1\n215.00\t698.00\t1.00\t2.862772\t2\t1\t2\t1\t1\n120.00\t827.00\t0.00\t2.761275\t1\t1\t2\t2\t1\n170.00\t672.00\t0.00\t3.222868\t2\t1\t2\t1\t1\n160.00\t775.00\t0.00\t3.055415\t1\t1\t2\t2\t1\n150.00\t827.00\t1.00\t3.121483\t2\t1\t1\t2\t1\n105.00\t672.00\t1.00\t3.000222\t2\t1\t2\t1\t1\n50.00\t827.00\t0.00\t3.120601\t2\t1\t2\t2\t1\n80.00\t646.00\t0.00\t3.135929\t2\t1\t2\t2\t1\n140.00\t698.00\t0.00\t3.192121\t2\t1\t2\t1\t1\n75.00\t620.00\t1.00\t3.332562\t1\t1\t2\t2\t1\n165.00\t517.00\t1.00\t3.44967\t2\t1\t2\t1\t1\n160.00\t879.00\t0.00\t3.401197\t1\t1\t2\t2\t1\n110.00\t569.00\t1.00\t3.365916\t2\t1\t2\t2\t1\n170.00\t1060.00\t1.00\t3.416743\t2\t1\t2\t1\t1\n240.00\t853.00\t0.00\t3.346741\t2\t1\t1\t1\t1\n135.00\t905.00\t1.00\t2.805782\t2\t1\t2\t2\t1\n220.00\t646.00\t0.00\t3.165897\t2\t1\t1\t1\t1\n220.00\t698.00\t0.00\t3.293983\t2\t2\t2\t1\t1\n130.00\t672.00\t1.00\t3.52783\t2\t2\t1\t2\t1\n170.00\t775.00\t1.00\t3.297687\t1\t1\t2\t1\t1\n200.00\t698.00\t1.00\t3.266522\t2\t2\t2\t1\t1\n175.00\t1008.00\t1.00\t3.208421\t1\t2\t1\t2\t1\n65.00\t750.00\t1.00\t3.030134\t2\t1\t2\t1\t1\n170.00\t672.00\t0.00\t3.416414\t1\t1\t2\t2\t1\n220.00\t827.00\t1.00\t3.210844\t2\t1\t2\t1\t1\n230.00\t905.00\t1.00\t3.274121\t2\t1\t2\t1\t1\n190.00\t672.00\t1.00\t3.253857\t2\t1\t2\t2\t1\n260.00\t801.00\t1.00\t3.254629\t2\t2\t2\t1\t1\n150.00\t646.00\t1.00\t2.971952\t1\t1\t2\t2\t1\n250.00\t569.00\t0.00\t3.225255\t2\t2\t1\t1\t1\n190.00\t775.00\t1.00\t3.11795\t2\t2\t2\t2\t1\n320.00\t543.00\t1.00\t3.238678\t2\t1\t2\t1\t1\n150.00\t775.00\t1.00\t3.492256\t2\t1\t2\t2\t1\n115.00\t698.00\t1.00\t3.230014\t2\t1\t2\t1\t1\n75.00\t879.00\t0.00\t3.210037\t2\t1\t2\t2\t1\n150.00\t724.00\t0.00\t3.128513\t2\t1\t2\t1\t1\n90.00\t724.00\t1.00\t3.243764\t1\t1\t1\t2\t1\n150.00\t931.00\t0.00\t3.312366\t2\t2\t2\t1\t1\n185.00\t905.00\t0.00\t3.262318\t2\t1\t2\t2\t1\n250.00\t698.00\t1.00\t3.269189\t2\t1\t1\t1\t1\n165.00\t775.00\t1.00\t3.239854\t1\t1\t2\t2\t1\n75.00\t595.00\t0.00\t2.986692\t2\t1\t2\t1\t1\n170.00\t724.00\t1.00\t3.140698\t2\t1\t2\t1\t1\n200.00\t905.00\t1.00\t3.080073\t2\t1\t2\t2\t1\n270.00\t982.00\t0.00\t3.248823\t2\t1\t2\t1\t1\n85.00\t1034.00\t1.00\t3.331847\t2\t1\t2\t2\t1\n100.00\t750.00\t1.00\t3.416743\t2\t1\t2\t2\t1\n170.00\t853.00\t1.00\t3.247269\t2\t1\t2\t2\t1\n130.00\t724.00\t0.00\t3.329343\t2\t1\t2\t1\t1\n165.00\t750.00\t0.00\t3.125005\t1\t1\t2\t2\t1\n300.00\t750.00\t0.00\t3.278276\t2\t2\t2\t1\t1\n120.00\t879.00\t1.00\t3.429461\t1\t1\t2\t2\t1\n110.00\t827.00\t1.00\t3.319264\t1\t1\t2\t2\t1\n160.00\t724.00\t0.00\t3.322154\t2\t2\t2\t1\t1\n100.00\t646.00\t0.00\t3.192121\t2\t1\t1\t1\t1\n80.00\t698.00\t1.00\t3.354106\t1\t1\t2\t2\t1\n185.00\t827.00\t0.00\t3.285412\t2\t1\t2\t1\t1\n60.00\t620.00\t1.00\t3.441699\t2\t1\t2\t2\t1\n200.00\t827.00\t1.00\t3.145445\t2\t1\t1\t1\t1\n115.00\t827.00\t0.00\t3.488598\t1\t1\t2\t2\t1\n170.00\t672.00\t0.00\t3.162094\t2\t1\t2\t1\t1\n100.00\t801.00\t1.00\t3.454422\t1\t2\t2\t2\t1\n100.00\t750.00\t1.00\t3.392829\t2\t2\t2\t1\t1\n150.00\t595.00\t0.00\t3.061988\t1\t1\t2\t2\t1\n250.00\t724.00\t0.00\t3.268047\t2\t1\t2\t1\t1\n180.00\t853.00\t0.00\t3.054944\t1\t2\t2\t2\t1\n250.00\t439.00\t1.00\t3.334701\t2\t2\t2\t1\t1\n245.00\t905.00\t1.00\t3.215269\t2\t2\t2\t1\t1\n145.00\t698.00\t0.00\t3.180551\t2\t1\t2\t1\t1\n140.00\t698.00\t1.00\t3.578506\t2\t1\t2\t2\t1\n250.00\t414.00\t1.00\t3.310543\t2\t1\t2\t1\t1\n260.00\t801.00\t0.00\t3.086943\t2\t1\t2\t1\t1\n150.00\t905.00\t0.00\t3.196221\t2\t1\t2\t2\t1\n280.00\t620.00\t0.00\t3.264996\t2\t1\t1\t1\t1\n95.00\t750.00\t0.00\t3.331847\t1\t1\t2\t2\t1\n265.00\t775.00\t0.00\t3.219276\t2\t1\t1\t1\t1\n210.00\t620.00\t0.00\t3.222868\t2\t1\t2\t1\t1\n120.00\t931.00\t1.00\t3.331847\t2\t1\t2\t2\t1\n130.00\t879.00\t1.00\t3.564449\t2\t2\t2\t2\t1\n270.00\t672.00\t1.00\t3.403528\t2\t1\t2\t1\t1\n200.00\t491.00\t0.00\t3.063858\t2\t2\t1\t1\t1\n190.00\t801.00\t1.00\t3.40386\t1\t1\t2\t2\t1\n140.00\t775.00\t1.00\t3.389125\t2\t1\t2\t1\t1\n130.00\t724.00\t1.00\t3.283539\t2\t1\t2\t2\t1\n150.00\t1060.00\t1.00\t3.540379\t2\t1\t2\t1\t1\n105.00\t1008.00\t1.00\t3.333632\t1\t1\t2\t2\t1\n160.00\t698.00\t0.00\t3.194173\t1\t2\t2\t1\t1\n100.00\t724.00\t0.00\t3.338967\t2\t2\t1\t2\t1\n75.00\t801.00\t1.00\t3.380314\t2\t2\t2\t1\t1\n90.00\t853.00\t1.00\t3.464485\t2\t1\t1\t1\t1\n300.00\t750.00\t1.00\t3.346389\t2\t2\t2\t1\t1\n120.00\t672.00\t1.00\t2.948116\t2\t2\t2\t2\t1\n145.00\t672.00\t1.00\t3.387436\t1\t1\t2\t1\t1\n210.00\t646.00\t1.00\t2.998229\t2\t2\t1\t1\t1\n150.00\t879.00\t1.00\t3.361763\t2\t1\t1\t2\t1\n130.00\t672.00\t0.00\t3.234355\t2\t2\t1\t1\t1\n210.00\t672.00\t1.00\t3.158276\t2\t1\t1\t1\t1\n200.00\t775.00\t0.00\t3.175551\t1\t1\t2\t2\t1\n110.00\t724.00\t1.00\t3.615771\t2\t1\t2\t1\t1\n220.00\t724.00\t1.00\t2.878074\t2\t2\t2\t1\t1\n155.00\t595.00\t1.00\t3.188829\t2\t1\t2\t1\t1\n140.00\t698.00\t0.00\t3.017983\t2\t1\t2\t1\t1\n100.00\t750.00\t1.00\t3.367641\t1\t1\t2\t2\t1\n260.00\t672.00\t0.00\t3.04785\t2\t1\t1\t1\t1\n160.00\t698.00\t1.00\t3.137666\t1\t1\t1\t2\t1\n70.00\t724.00\t1.00\t3.426215\t1\t1\t2\t1\t1\n160.00\t1060.00\t1.00\t3.095578\t1\t1\t1\t2\t1\n160.00\t827.00\t1.00\t3.085573\t2\t1\t2\t1\t1\n190.00\t853.00\t1.00\t3.398193\t2\t2\t2\t1\t1\n120.00\t853.00\t1.00\t3.38845\t2\t1\t1\t2\t1\n180.00\t698.00\t1.00\t3.177637\t2\t1\t2\t1\t1\n120.00\t698.00\t1.00\t3.322515\t2\t1\t2\t2\t1\n230.00\t569.00\t1.00\t3.244544\t2\t1\t1\t1\t1\n260.00\t879.00\t1.00\t3.179303\t2\t2\t1\t1\t1\n180.00\t853.00\t0.00\t3.403195\t2\t1\t2\t2\t1\n190.00\t879.00\t1.00\t3.304686\t2\t1\t2\t2\t1\n210.00\t853.00\t1.00\t3.288029\t2\t1\t1\t1\t1\n190.00\t672.00\t0.00\t3.321432\t2\t2\t1\t1\t1\n180.00\t646.00\t1.00\t3.192532\t2\t1\t2\t2\t1\n250.00\t775.00\t1.00\t3.289521\t1\t1\t1\t1\t1\n120.00\t775.00\t0.00\t3.208825\t1\t1\t1\t2\t1\n170.00\t1034.00\t0.00\t3.196221\t2\t1\t2\t2\t1\n140.00\t801.00\t1.00\t3.480317\t2\t1\t2\t2\t1\n190.00\t1060.00\t1.00\t3.179303\t2\t1\t2\t2\t1\n180.00\t672.00\t0.00\t3.023834\t2\t1\t2\t2\t1\n110.00\t827.00\t1.00\t3.164208\t2\t1\t2\t1\t1\n110.00\t853.00\t1.00\t3.423285\t1\t2\t2\t2\t1\n270.00\t775.00\t0.00\t3.197039\t1\t2\t1\t1\t1\n340.00\t595.00\t1.00\t3.35829\t2\t2\t2\t1\t1\n40.00\t905.00\t0.00\t3.093766\t2\t1\t2\t2\t1\n185.00\t905.00\t0.00\t3.275256\t2\t1\t1\t1\t1\n230.00\t750.00\t1.00\t3.357942\t2\t2\t2\t1\t1\n105.00\t1112.00\t1.00\t3.046901\t2\t1\t2\t2\t1\n210.00\t698.00\t0.00\t3.239854\t2\t1\t2\t1\t1\n100.00\t801.00\t0.00\t3.106826\t2\t1\t2\t2\t1\n100.00\t827.00\t1.00\t3.467297\t1\t1\t2\t2\t1\n140.00\t931.00\t1.00\t3.074543\t1\t1\t2\t2\t1\n280.00\t620.00\t0.00\t3.389462\t2\t1\t1\t1\t1\n180.00\t853.00\t0.00\t3.38845\t2\t1\t2\t2\t1\n120.00\t1008.00\t0.00\t3.123246\t1\t1\t2\t2\t1\n"; +} +} + +function demorat() +{ + with(window.document.key_search) + { + +searchkey.value="Sex\tDrug\tW1\tW2\nM\tD1\t5.00\t6.00\nM\tD1\t7.00\t6.00\nM\tD1\t9.00\t9.00\nM\tD1\t5.00\t4.00\nM\tD2\t9.00\t12.00\nM\tD2\t7.00\t7.00\nM\tD2\t7.00\t6.00\nM\tD2\t6.00\t8.00\nM\tD3\t14.00\t11.00\nM\tD3\t21.00\t15.00\nM\tD3\t12.00\t10.00\nM\tD3\t17.00\t12.00\nF\tD1\t7.00\t10.00\nF\tD1\t8.00\t10.00\nF\tD1\t6.00\t6.00\nF\tD1\t9.00\t7.00\nF\tD2\t7.00\t6.00\nF\tD2\t10.00\t13.00\nF\tD2\t6.00\t9.00\nF\tD2\t8.00\t7.00\nF\tD3\t14.00\t9.00\nF\tD3\t14.00\t8.00\nF\tD3\t16.00\t12.00\nF\tD3\t10.00\t5.00\n"; +} +} + + +function Upload() +{ + + with(window.document.key_search) + { + MyUpload.value="YES"; + } +} + + +function SearchCheck() +{ + with(window.document.key_search) + { + if(trim(searchkey.value)=="") + { + alert("Sorry,the search field is empty"); + return false; + } + else + { + my_page.value=1; + Search.value="YES"; + return true; + } + } +} +function pheno() +{ + with(window.document.pheno) + { + my_page.value=1; + } +} +function clear_key() +{ + with(window.document.key_search) + { + my_snpid.value=""; + my_mirid.value=""; + my_run.value=0; + my_org.value="All"; + submit(); + } + +} + +function refresh() +{ + with(window.document.key_search) + { + if(my_org.value=="Human") + { + // search_method[3].disabled=true; + // my_phenodesc.disabled=true; + // pheno_sample.disabled=true; + } + else + { + search_method[3].disabled=false; + my_phenodesc.disabled=false; + pheno_sample.disabled=false; + } + } +} + + +function pheno_next() +{ + with(window.document.key_search) + { + Search.value="YES"; + my_run.value=2; + my_page.value++; + submit(); + } +} + +function pheno_previous() +{ + with(window.document.key_search) + { Search.value="YES"; + my_run.value=2; + my_page.value--; + submit(); + } +} + +function next_page() +{ + with(window.document.key_search) + { + Search.value="YES"; + my_page.value++; + submit(); + } + +} +function previous_page() +{ + with(window.document.key_search) + { + Search.value="YES"; + my_page.value--; + submit(); + } +} + +function wopen(url, name, param) +{ + window.open(url,name, param); + return ; +} + +function trim(inputString) +{ + if (typeof inputString != "string") + { + return inputString; + } + var retValue = inputString; + var ch = retValue.substring(0, 1); + while (ch == " ") + { // Check for spaces at the beginning of the string + retValue = retValue.substring(1, retValue.length); + ch = retValue.substring(0, 1); + } + ch = retValue.substring(retValue.length-1, retValue.length); + while (ch == " ") + { // Check for spaces at the end of the string + retValue = retValue.substring(0, retValue.length-1); + ch = retValue.substring(retValue.length-1, retValue.length); + } + while (retValue.indexOf(" ") != -1) + { // Note that there are two spaces in the string - look for multiple spaces within the string + retValue = retValue.substring(0, retValue.indexOf(" ")) + retValue.substring(retValue.indexOf(" ")+1, retValue.length); // Again, there are two +spac$ } + return retValue; // Return the trimmed string back to the user +} // Ends the "trim" function + + +--> +</script> diff --git a/sourcecodes/help.php b/sourcecodes/help.php index 683eeebe..92e44d67 100644 --- a/sourcecodes/help.php +++ b/sourcecodes/help.php @@ -96,7 +96,7 @@ BNW includes a structural constraint interface that provides users with options </tr> <br> <tr><td> - <p align="justify"> After structure learning is completed, BNW automatically performs parameter learning of the network model using the Kevin Murphy's <a href=http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.25.1216>Bayes Net Toolbox</a> (<a href=https://github.com/bayesnet/bnt>BNT</a>) and displays the network model. Discrete variables in the network are displayed as bar charts and continuous variables are displayed as Gaussian distributions. The networks can be used to make predictions after clicking on a node and entering a value for that variable. Specifically, click on either the blue bar for a discrete node or the blue line for a continuous node to bring up a pop-up box that can be used to enter a value for the node. After submitting a value for the variable, the distributions of the other nodes in the network will change, allowing for visualization of the impact of setting the variable to the given value. The distributions after the entered value is considered are shown in red, while the original distributions are shown in blue. The node for which data was entered is outlined in red.<br><br> + <p align="justify"> After structure learning is completed, BNW automatically performs parameter learning of the network model using the Kevin Murphy's <a href=http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.25.1216>Bayes Net Toolbox</a> (<a href=https://github.com/bayesnet/bnt>BNT</a>) and displays the network model. BNW has been recently been updataed and Dirichlet prior distributions are now used during parameter learning.<br><br>Discrete variables in the network are displayed as bar charts and continuous variables are displayed as Gaussian distributions. The networks can be used to make predictions after clicking on a node and entering a value for that variable. Specifically, click on either the blue bar for a discrete node or the blue line for a continuous node to bring up a pop-up box that can be used to enter a value for the node. After submitting a value for the variable, the distributions of the other nodes in the network will change, allowing for visualization of the impact of setting the variable to the given value. The distributions after the entered value is considered are shown in red, while the original distributions are shown in blue. The node for which data was entered is outlined in red.<br><br> Two prediction modes are available in BNW: evidence and intervention. In the evidence mode, entered values will alter the distributions of the other variables in the network, but will not alter the network structure. In intervention mode, the intervention alters both the distributions of the network variables and the network structure. Specifically, the intervened variable becomes independent of its parents. Evidence mode is appropriate when making predictions of other network variables after the value of one variable in the network is observed, while intervention mode is appropriate for predictions after experimental interventions that alter the values of some variables in the network. Further discussion of the difference between evidence and intervention prediction modes is given on the BNW <a href="faq.php">FAQ</a> page. </td></tr> </table> @@ -133,7 +133,7 @@ Two prediction modes are available in BNW: evidence and intervention. In the evi <b> 1.</b> If a variable contains 3 or fewer different values, the variable is considered to be discrete.<br><br> <b> 2.</b> If a variable contains more than 20 different values, the variable is considered to be continuous.<br><br> <b> 3.</b> If the ratio of the number of different values for a variable compared to the number of cases in the data set is large, the variable is considered to be continuous. Specifically, if this ratio is 1/3 or larger, the variable is considered to be continuous.<br><br> - <b> 4.</b> If none of the first three rules apply, the data set is inspected to determine if any of the values for the variable contain a period (.). If at least one value contains a period, the variable is considered to be continous; otherwise, the variable is considered to be discrete.<br><br> + <b> 4.</b> If none of the first three rules apply, the data set is inspected to determine if any of the values for the variable contain a period (.). If at least one value contains a period, the variable is considered to be continuous; otherwise, the variable is considered to be discrete.<br><br> Users can examine whether or not BNW has correctly loaded input data files and classified variables by clicking on "View uploaded variables and data" on the left-hand menu after uploading a dataset. We believe that BNW should correctly classify variables in most cases, but users may occasionally need to add or remove a period to the data of some variables. <br><br> An example input data file for a file with 5 variables is given below. The network contains 2 discrete (Disc1 and Disc2) variables, which are given in the first two columns of the file, and 3 continuous variables (Cont1, Cont2, and Cont3). Disc1 is a discrete variable with two states (1 and 2), while Disc2 has two states (A and B). Although the samples of Cont2 are integral values, we wish to deal with this variable as continuous, not discrete. Therefore, the value of Cont2 for the first sample is given as '3.0' instead of '3' so that one of the values of Cont2 contains a '.', helping to ensure that Cont2 is interpreted as a continuous variable. </p> @@ -209,12 +209,27 @@ Two prediction modes are available in BNW: evidence and intervention. In the evi <tr><td> <p align="justify"> BNW has recently been updated to add features and improve the user experience. These updates have included improving the network model visualizations and allowing users to more quickly load large data sets. Additionally, in a change that is invisible to users, BNW now uses Octave to perform parameter learning with the Bayes Net Toolbox. <br><br> Major changes and new features that have been added to BNW include:<br> -<br><b>1)</b> Increased flexibility in formatting of uploaded data files. One major change is that BNW now allows for users to upload data files in which discrete variables have alphabetic values. For example, a file containing a node for the genotype of BXD mice can now have values of B and D; the values do not have to be recoded as integers. A full description of the proper format for input files in BNW considering these changes can be found <a href="help.php#file_format">here</a>.<br> -<br><b>2)</b> Added "View uploaded variables and data" button to allow users to ensure that uploaded data sets are loaded and parsed correctly. After users upload a data set, clicking this button provides the ability to view either the uploaded data file directly or view a variable description file that shows how BNW has parsed the data. The variable description file lists the number of variables and cases (e.g., individuals or samples) in the data file. It also indicates whether each variable is discrete or continuous and the criteria that was used to make this determination. For discrete variables, the possible states of the variable are provided. For continuous variables, the mean and standard deviation of the variable is provided.<br> -<br><b>3)</b> Added "View parameters" button to allow users to quantify network parameters. Users can now view the parameters of the network models considering the original data set that was uploaded by the user or the predicted parameters considering the evidence or intervention that has been entered by the user. This feature allows users to quantify predictions using the Bayesian network model.<br> +<br><b>1)</b> Parameter learning settings have been modified. Specifically, network parameters (e.g., the distributions of states for discrete variables and means and standard deviations of Gaussian distributions) are now learned using Dirichlet prior distributions. In our testing, this has had a minimal impact on the parameters of most networks, but has helped reduce the impact of cases with rare combinations of states on the predicted distributions of some networks. In the original version of BNW, no priors were used.<br> +<br><b>2)</b> Increased flexibility in formatting of uploaded data files. One major change is that BNW now allows for users to upload data files in which discrete variables have alphabetic values. For example, a file containing a node for the genotype of BXD mice can now have values of B and D; the values do not have to be recoded as integers. A full description of the proper format for input files in BNW considering these changes can be found <a href="help.php#file_format">here</a>.<br> +<br><b>3)</b> Added "View uploaded variables and data" button to allow users to ensure that uploaded data sets are loaded and parsed correctly. After users upload a data set, clicking this button provides the ability to view either the uploaded data file directly or view a variable description file that shows how BNW has parsed the data. The variable description file lists the number of variables and cases (e.g., individuals or samples) in the data file. It also indicates whether each variable is discrete or continuous and the criteria that was used to make this determination. For discrete variables, the possible states of the variable are provided. For continuous variables, the mean and standard deviation of the variable is provided.<br> +<br><b>4)</b> Added "View parameters" button to allow users to quantify network parameters. Users can now view the parameters of the network models considering the original data set that was uploaded by the user or the predicted parameters considering the evidence or intervention that has been entered by the user. This feature allows users to quantify predictions using the Bayesian network model.<br> <br>After performing structure learning and viewing their network model, users now have the ability to click a "View parameters" button on menu to the left of the model structure. This button provides a link to a file containing the original parameters of the model. For discrete nodes, the fraction of cases for each possible state in the variable is provided. For continuous nodes, the mean and standard deviation of the Gaussian distribution that best fits the data in the variable are provided.<br><br> If users have made predictions using either the evidence or intervention modes, a link to a file containing the parameters of the network considering the entered evidence or intervention is provided. The file lists the predicted fraction of states for discrete nodes and predicted mean and standard deviation of the Gaussian distribution for continuous nodes. Nodes for which evidence or intervention has been entered are also noted in the file. <br> +<br><b>5)</b> Added a "Use a network ID to return to a network" on the BNW home page. This button allows users to enter a network ID to return to a previously generated network model. The network ID can also be used to share the network model with collaborators. The network ID is a three character string that is listed in left menu of a BNW network page. +<br> +<!-- +<br><b>6)</b> Added a "Cross validation" feature to test networks using leave-one-out cross-validation. This button is available on the left menu of a network page. <br><br> + Clicking "Cross validation" will open a pop-up window. Users can then enter the name of the variable that they want to test. After submitting the variable, the pop-up window will close. Users can then click the "Cross validation" button on the network page again to determine if their cross-validation calculation has completed. +If it has completed, the cross-validation output contains the following information:<br><br> +For discrete variables, the predicted likelihood of each state for the left-out case, given the values of its parent variables in the network, is provided.<br><br> +For continuous variables, the predicted mean and standard deviation of the left-out variable, given the values of its parent variables in the network, is provided.<br> +<br><b>7)</b> Added a method to make predictions on a test data set that can be accessed using the "Make predictions on test data set" button on the left menu of a network page. <br><br> +Clicking this button will open a pop-up window. Users can then upload a file containing a test data set. The format of the file should follow the format of the input data file with two exceptions:<br><br> +<b>a)</b> The first line of the file should containing the name of the variable that should be predicted.<br><br> +<b>b)</b> "NA" can be used for missing data. The test data file can contain missing data. If data for a variable of a given sample or case is not known, an "NA" can be entered in the input file. Data can be missing for the variable that is to be predicted or for the variables that are to be used as predictors.<br><br> + --> +<br> </table> diff --git a/sourcecodes/home.php b/sourcecodes/home.php index 06d8337a..fa0afbba 100644 --- a/sourcecodes/home.php +++ b/sourcecodes/home.php @@ -7,6 +7,7 @@ include("header_new.inc"); <ul class="navbar"> <li><a href="bn_file_load_gom.php">Learn a network model from data</a> <li><a href="home_upload.php">Make predictions using a known structure</a> + <li><a href="enter_netID.php">Use a network ID to return to a network</a> <li><a href="getting_started.php">Getting started with BNW</a> <li><a href="help.php">Help</a> <li><a href="workflow.php">Tutorials and examples</a> diff --git a/sourcecodes/input_error.php b/sourcecodes/input_error.php new file mode 100644 index 00000000..b471a332 --- /dev/null +++ b/sourcecodes/input_error.php @@ -0,0 +1,27 @@ +<?php + +$key=$_POST["My_key"]; +if($key=="") + $key="ab";//uniqid(""); + +include("header_new.inc"); +?> + +<!-- Site navigation menu --> +<ul class="navbar"> + <li><a href="bn_file_load_gom.php">Learn a network model from data</a> + <li><a href="home_upload.php">Make predictions using a known structure</a> + <li><a href="help.php">Help</a> + <li><a href="faq.php">FAQ</a> + <li><a href="home.php">Home</a> + + +</ul> + +<div id="outer"> +<!-- Main content --> +<br> + <h1>There was an error with your input. Input data can only contain letters, numbers, underscores (_), periods (.), and whitespace.</h1> +</div> +</body> +</html> diff --git a/sourcecodes/input_error_no_menu.php b/sourcecodes/input_error_no_menu.php new file mode 100644 index 00000000..907e4e15 --- /dev/null +++ b/sourcecodes/input_error_no_menu.php @@ -0,0 +1,3 @@ +<br> + <h1>There was an error with your input. Input data can only contain <br>letters, numbers, hyphens (-), and periods (.).</h1> +</html> diff --git a/sourcecodes/input_error_no_menu.php~ b/sourcecodes/input_error_no_menu.php~ new file mode 100644 index 00000000..7063cc3d --- /dev/null +++ b/sourcecodes/input_error_no_menu.php~ @@ -0,0 +1,3 @@ +<br> + <h1>There was an error with your input. Input data can only contain <br>letters, numbers, underscores (_), periods (.), and whitespace.</h1> +</html> diff --git a/sourcecodes/input_validate.php b/sourcecodes/input_validate.php new file mode 100644 index 00000000..7c9dbe60 --- /dev/null +++ b/sourcecodes/input_validate.php @@ -0,0 +1,30 @@ +<?php +//This file will contain input validation functions. + +function valid_keyval($keyval) +{ + $keyval = trim($keyval); + $keyval = stripslashes($keyval); + $keyval = htmlspecialchars($keyval); + //check if keyval contains only uppercase or lowercase letters. + if (!preg_match('/^[a-zA-Z]+$/',$keyval)) { + header("Location: keyval_error.php"); + } + if (strlen($keyval)!=3) { + header("Location: keyval_error.php"); + } + return $keyval; +} + + +function valid_input($input) +{ + $input = trim($input); + $input = stripslashes($input); + $input = htmlspecialchars($input); + //check if keyval contains only letters, numbers, hyphens, underscore, periods, or whitespace. + if (!preg_match('/^[-A-Za-z\d\ \t\r\n_\.]+$/',$input)) { + header("Location: input_error.php"); + } + return $input; +} diff --git a/sourcecodes/keyval_error.php b/sourcecodes/keyval_error.php new file mode 100644 index 00000000..4cf97c33 --- /dev/null +++ b/sourcecodes/keyval_error.php @@ -0,0 +1,27 @@ +<?php + +$key=$_POST["My_key"]; +if($key=="") + $key="ab";//uniqid(""); + +include("header_new.inc"); +?> + +<!-- Site navigation menu --> +<ul class="navbar"> + <li><a href="bn_file_load_gom.php">Learn a network model from data</a> + <li><a href="home_upload.php">Make predictions using a known structure</a> + <li><a href="help.php">Help</a> + <li><a href="faq.php">FAQ</a> + <li><a href="home.php">Home</a> + + +</ul> + +<div id="outer"> +<!-- Main content --> +<br> +<h1>There was an error in an input or network ID value. The network ID must be three characters and contain only upper and lowercase letters.</h1> +</div> +</body> +</html> diff --git a/sourcecodes/kfold_cv.php b/sourcecodes/kfold_cv.php new file mode 100644 index 00000000..6cae9538 --- /dev/null +++ b/sourcecodes/kfold_cv.php @@ -0,0 +1,150 @@ +<?php +include("header_new.inc"); +include("input_validate.php"); +if($_GET["My_key"]!="") + $keyval=valid_keyval($_GET["My_key"]); +if($_POST["My_key"]!="") + $keyval=valid_keyval($_POST["My_key"]); +?> + +<?php +$varName = ""; +$varNameErr = ""; +$nm_folds=""; + +if ($_SERVER["REQUEST_METHOD"] == "POST") { + $nm_folds = (int)$_POST['nm_folds']; + if (empty($_POST["varName"])) { + $varNameErr = "Entering a variable name is required"; + } else { + // $varName = test_input($_POST["varName"]); + $varName = valid_input($_POST["varName"]); + $varNameErr = "1"; + // check if name only contains letters and whitespace + // if (!preg_match("/^[\w]*$/",$varName)) { + // $varNameErr = "The input string contains characters that are not allowed"; + // } + } +} + + +function test_input($data) { + $data = trim($data); + $data = stripslashes($data); + $data = htmlspecialchars($data); + return $data; +} + +?> + + +<!-- Site navigation menu --> +<ul class="navbar2"> + <li><p>Network ID:<br><?php print($keyval);?></p></li> +</ul> +<ul class="navbar"> + <li><a href="javascript:void(0);" + NAME="Network" title="Network" onClick=window.open("layout.php?My_key=<?php print($keyval);?>","_self");>Return to network</a> + <li><a href="javascript:void(0);" + NAME="CV_predictions" title="CV_pred" onClick=window.open("cv_predictions.php?My_key=<?php print($keyval);?>","_self");>Return to validation and predictions menu</a> + + <li><a href="help.php">Help</a> + <li><a href="home.php">Home</a> + + +</ul> + + + + +<div id="outer"> +<!-- Main content --> + +<?php + $filename1="./data/".$keyval."kfoldCV.txt"; + $filename2="./data/".$keyval."kfoldCV_temp.txt"; +if(file_exists($filename2)) + {?> +<br> + <h2> k-fold cross-validation results are being calculated</h2> +<br> +<?php + } + else if(file_exists($filename1)) + {?> +<br> + <h2> <a href=<?php $d="./data/".$keyval."kfoldCV.txt"; print($d);?>>View cross-validation results</a></h2> +<br> +<h3>Perform k-fold cross-validation of another network variable</h3> +<p align="justify"> + Enter the name of variable and number of folds below to validate predictions of that variable. +<br> +</p> +<FORM METHOD="post" ACTION="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> + Variable name:<INPUT TYPE="text" name="varName" value="<?php echo $varName;?>" style="padding: 2px 5px; border: 2px solid; border-color: black black black black; font-family: Georgia, ..., serif; font-size: 18px; display: block; height: 30px; width: 300px;"> +<span class="error"> <?php if($varNameErr!="1") {echo $varNameErr;};?></span> +<br> + Number of folds:<br><SELECT NAME="nm_folds"> + <option value="2">2</option> + <option value="3">3</option> + <option value="4">4</option> + <option value="5">5</option> + <option value="6">6</option> + <option value="7">7</option> + <option value="8">8</option> + <option value="9">9</option> + <option value="10">10</option> + </select> + <input type='hidden' name='My_key' value='<?php print($keyval)?>'> + <br><br><input type="submit" name="submit" value="Submit" style="display: block; height: 30px; width:100px; font-family: Georgia, ..., serif; font-size: 16px;"> +</FORM> +<br> +<?php + } else { +?> +<h2>Perform k-fold cross-validation of network</h2> +<p align="justify"> + To perform cross-validation, enter the name of the variable <br>that you want to test the predictions of and the number <br>of folds that the data should be separated into below. +<br> +<FORM METHOD="post" ACTION="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> + Variable Name:<INPUT TYPE="text" name="varName" value="<?php echo $varName;?>" + style="padding: 2px 5px; border: 2px solid; border-color: black black black black; font-family: Georgia, ..., serif; font-size: 18px; display: block; height: 30px; width: 300px;"> + <span class="error"> <?php if($varNameErr!="1") {echo $varNameErr;};?></span> + <br> + Number of folds:<br><SELECT NAME="nm_folds"> + <option value="2">2</option> + <option value="3">3</option> + <option value="4">4</option> + <option value="5">5</option> + <option value="6">6</option> + <option value="7">7</option> + <option value="8">8</option> + <option value="9">9</option> + <option value="10">10</option> + </select> + <input type='hidden' name='My_key' value='<?php print($keyval)?>'> + <br><br><input type="submit" name="submit" value="Submit" style="display: block; height: 30px; width:100px; font-family: Georgia, ..., serif; font-size: 16px;"> +</FORM> +</p> +<br> + +<?php +} + +if($nm_folds!="") +{ + $command = './run_kfold '.$keyval.' '.$varName.' '.$nm_folds; + $output = shell_exec("$command > /dev/null 2 > /dev/null &"); + $pred_link='cv_predictions.php?My_key='.$keyval; + sleep(1); + echo "<br>"; + echo "Calculation submitted"; + echo "<br>"; + echo "<a href=$pred_link>Click to return to cross-validation and predictions menu</a>"; +} +?> + +</div> +</body> + + diff --git a/sourcecodes/kfold_cv_example.php b/sourcecodes/kfold_cv_example.php new file mode 100644 index 00000000..44b56fa5 --- /dev/null +++ b/sourcecodes/kfold_cv_example.php @@ -0,0 +1,150 @@ +<?php +include("header_new.inc"); +include("input_validate.php"); +if($_GET["My_key"]!="") + $keyval=valid_keyval($_GET["My_key"]); +if($_POST["My_key"]!="") + $keyval=valid_keyval($_POST["My_key"]); +?> + +<?php +$varName = ""; +$varNameErr = ""; +$nm_folds=""; + +if ($_SERVER["REQUEST_METHOD"] == "POST") { + $nm_folds = (int)$_POST['nm_folds']; + if (empty($_POST["varName"])) { + $varNameErr = "Entering a variable name is required"; + } else { + // $varName = test_input($_POST["varName"]); + $varName = valid_input($_POST["varName"]); + $varNameErr = "1"; + // check if name only contains letters, numbers, and whitespace + // if (!preg_match('/^[-A-Za-z\d\ \t\r\n_\.]+$',$varName)) { + // $varNameErr = "The input string contains characters that are not allowed"; + // } + } +} + + +function test_input($data) { + $data = trim($data); + $data = stripslashes($data); + $data = htmlspecialchars($data); + return $data; +} + +?> + + +<!-- Site navigation menu --> +<ul class="navbar2"> + <li><p>Network ID:<br><?php print($keyval);?></p></li> +</ul> +<ul class="navbar"> + <li><a href="javascript:void(0);" + NAME="Network" title="Network" onClick=window.open("layout_example.php?My_key=<?php print($keyval);?>","_self");>Return to network</a> + <li><a href="javascript:void(0);" + NAME="CV_predictions" title="CV_pred" onClick=window.open("cv_predictions_example.php?My_key=<?php print($keyval);?>","_self");>Return to validation and predictions menu</a> + + <li><a href="help.php">Help</a> + <li><a href="home.php">Home</a> + + +</ul> + + + + +<div id="outer"> +<!-- Main content --> + +<?php + $filename1="./data/".$keyval."kfoldCV.txt"; + $filename2="./data/".$keyval."kfoldCV_temp.txt"; +if(file_exists($filename2)) + {?> +<br> + <h2> k-fold cross-validation results are being calculated</h2> +<br> +<?php + } + else if(file_exists($filename1)) + {?> +<br> + <h2> <a href=<?php $d="./data/".$keyval."kfoldCV.txt"; print($d);?>>View cross-validation results</a></h2> +<br> +<h3>Perform k-fold cross-validation of another network variable</h3> +<p align="justify"> + Enter the name of variable and number of folds below to validate predictions of that variable. +<br> +</p> +<FORM METHOD="post" ACTION="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> + Variable name:<INPUT TYPE="text" name="varName" value="<?php echo $varName;?>" style="padding: 2px 5px; border: 2px solid; border-color: black black black black; font-family: Georgia, ..., serif; font-size: 18px; display: block; height: 30px; width: 300px;"> +<span class="error"> <?php if($varNameErr!="1") {echo $varNameErr;};?></span> +<br> + Number of folds:<br><SELECT NAME="nm_folds"> + <option value="2">2</option> + <option value="3">3</option> + <option value="4">4</option> + <option value="5">5</option> + <option value="6">6</option> + <option value="7">7</option> + <option value="8">8</option> + <option value="9">9</option> + <option value="10">10</option> + </select> + <input type='hidden' name='My_key' value='<?php print($keyval)?>'> + <br><br><input type="submit" name="submit" value="Submit" style="display: block; height: 30px; width:100px; font-family: Georgia, ..., serif; font-size: 16px;"> +</FORM> +<br> +<?php + } else { +?> +<h2>Perform k-fold cross-validation of network</h2> +<p align="justify"> + To perform cross-validation, enter the name of the variable <br>that you want to test the predictions of and the number <br>of folds that the data should be separated into below. +<br> +<FORM METHOD="post" ACTION="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> + Variable Name:<INPUT TYPE="text" name="varName" value="<?php echo $varName;?>" + style="padding: 2px 5px; border: 2px solid; border-color: black black black black; font-family: Georgia, ..., serif; font-size: 18px; display: block; height: 30px; width: 300px;"> + <span class="error"> <?php if($varNameErr!="1") {echo $varNameErr;};?></span> + <br> + Number of folds:<br><SELECT NAME="nm_folds"> + <option value="2">2</option> + <option value="3">3</option> + <option value="4">4</option> + <option value="5">5</option> + <option value="6">6</option> + <option value="7">7</option> + <option value="8">8</option> + <option value="9">9</option> + <option value="10">10</option> + </select> + <input type='hidden' name='My_key' value='<?php print($keyval)?>'> + <br><br><input type="submit" name="submit" value="Submit" style="display: block; height: 30px; width:100px; font-family: Georgia, ..., serif; font-size: 16px;"> +</FORM> +</p> +<br> + +<?php +} + +if($nm_folds!="") +{ + $command = './run_kfold '.$keyval.' '.$varName.' '.$nm_folds; + $output = shell_exec("$command > /dev/null 2 > /dev/null &"); + $pred_link='cv_predictions_example.php?My_key='.$keyval; + sleep(1); + echo "<br>"; + echo "Calculation submitted"; + echo "<br>"; + echo "<a href=$pred_link>Click to return to cross-validation and predictions menu</a>"; +} +?> + +</div> +</body> + + diff --git a/sourcecodes/layout.php b/sourcecodes/layout.php index e5f4c6b1..75748639 100644 --- a/sourcecodes/layout.php +++ b/sourcecodes/layout.php @@ -1,13 +1,8 @@ <?php include("header_new.inc"); - -$keyval=$_GET["My_key"]; - - - - - +include("input_validate.php"); +$keyval=valid_keyval($_GET["My_key"]); $dir="./data/"; @@ -77,10 +72,14 @@ function calcHeight() <!-- Site navigation menu --> <ul class="navbar2"> <li><p>Selected mode:<br><?php print($radiovalue);?></p></li> + <li><p>Network ID:<br><?php print($keyval);?></p></li> </ul> <ul class="navbar"> <li><a href="clear.php?My_key=<?php print($keyval);?>" target='_blank'>Clear evidence</a> +<!--- +<li><a href="cv_predictions.php?My_key=<?php print($keyval);?>";>Cross validation and predictions</a> +---> <li><a href="javascript:void(0);" NAME="Model Averaging Matrix" title="Model Averaging Matrix" onClick=window.open("matrix.php?My_key=<?php print($keyval);?>","Ratting","width=950,height=270,0,status=0,");>Display structure matrix</a> diff --git a/sourcecodes/layout_example.php b/sourcecodes/layout_example.php index 130b8b7c..a675da8c 100644 --- a/sourcecodes/layout_example.php +++ b/sourcecodes/layout_example.php @@ -1,13 +1,9 @@ <?php include("header_new.inc"); +include("input_validate.php"); -$keyval=$_GET["My_key"]; - - - - - +$keyval=valid_keyval($_GET["My_key"]); $dir="./data/"; @@ -77,10 +73,14 @@ function calcHeight() <!-- Site navigation menu --> <ul class="navbar2"> <li><p>Selected mode:<br><?php print($radiovalue);?></p></li> + <li><p>Network ID:<br><?php print($keyval);?></p></li> </ul> <ul class="navbar"> <li><a href="clear_example.php?My_key=<?php print($keyval);?>" target='_blank'>Clear evidence</a> +<!--- +<li><a href="cv_predictions_example.php?My_key=<?php print($keyval);?>";>Cross validation and predictions</a> +---> <li><a href="javascript:void(0);" NAME="Model Averaging Matrix" title="Model Averaging Matrix" onClick=window.open("matrix.php?My_key=<?php print($keyval);?>","Ratting","width=950,height=270,0,status=0,");>Display structure matrix</a> diff --git a/sourcecodes/matrix.php b/sourcecodes/matrix.php index 7d6eb87f..c1e56cf6 100644 --- a/sourcecodes/matrix.php +++ b/sourcecodes/matrix.php @@ -1,5 +1,6 @@ <?php -$keyval=$_GET["My_key"]; +include("input_validate.php"); +$keyval=valid_keyval($_GET["My_key"]); $dir="./data/"; $matfile=$dir.$keyval."structure_input_temp.txt"; diff --git a/sourcecodes/net_structure.php b/sourcecodes/net_structure.php index ba1b9de1..ac61e143 100644 --- a/sourcecodes/net_structure.php +++ b/sourcecodes/net_structure.php @@ -1,6 +1,7 @@ <?php include("header_new.inc"); include("header_batchsearch.inc"); +include("input_validate.php"); ////////////////continuous/////////////// $searchID=""; $UploadValue="NO"; @@ -12,7 +13,7 @@ if($_POST["My_key"]!="") if($_GET["My_key"]!="") $keyval=$_GET["My_key"]; - +$keyval=valid_keyval($keyval); $sid="structure_input"; $dir="./data/$keyval"; diff --git a/sourcecodes/network_layout_evd.php b/sourcecodes/network_layout_evd.php index 27e4fb06..661caebc 100644 --- a/sourcecodes/network_layout_evd.php +++ b/sourcecodes/network_layout_evd.php @@ -1,5 +1,7 @@ <?php include("structuremap.php"); +include("header_batchsearch.inc"); +include("input_validate.php"); //This function is used to transfer between the integral // levels for discrete nodes that required by BNT and @@ -29,7 +31,7 @@ foreach($leve_l as $l) $dir="./data/"; -$keyval=$_GET["My_key"]; +$keyval=valid_keyval($_GET["My_key"]); $matfile=$dir."$keyval"."net_figure.txt"; @@ -323,9 +325,15 @@ for($i=0;$i<$nnode;$i++) if (selectedItem) { var topping = data.getValue(selectedItem.row, 0); - var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); - - window.location.href = "add_evd.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); + if (input_check(s)) + { + window.location.href = "add_evd.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + } + else + { + window.location.href = "input_error_no_menu.php"; + } } } chart.draw(data, @@ -388,10 +396,16 @@ for($i=0;$i<$nnode;$i++) var topping = data.getValue(selectedItem.row, 0); var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); - window.location.href = "add_evd.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; - - } - } + if (input_check(s)) + { + window.location.href = "add_evd.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + } + else + { + window.location.href = "input_error_no_menu.php"; + } + } + } chart.draw(data, {curveType: "function", title:"<?php print($name);?>", titleTextStyle: {fontSize: <?php print($font);?>}, legend: {position: 'none'}, diff --git a/sourcecodes/network_layout_evd_2.php b/sourcecodes/network_layout_evd_2.php index df400828..931cc0b8 100644 --- a/sourcecodes/network_layout_evd_2.php +++ b/sourcecodes/network_layout_evd_2.php @@ -1,6 +1,7 @@ <?php //include("structuremap.php"); - +include("input_validate.php"); +include("header_batchsearch.inc"); function levelmap($inx,$name,$mapdata) { @@ -23,7 +24,7 @@ foreach($leve_l as $l) -$keyval=trim($_GET["My_key"]); +$keyval=valid_keyval($_GET["My_key"]); //////////////////////////Entered evidences////////////////////////////////////////// $dir="./data/"; @@ -546,12 +547,14 @@ else var topping = data.getValue(selectedItem.row, 0); var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); - - window.location.href = "add_evd.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; - - - - //alert('The user selected ' + topping + topname); + if (input_check(s)) + { + window.location.href = "add_evd.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + } + else + { + window.location.href = "input_error_no_menu.php"; + } } } chart.draw(data, @@ -695,9 +698,15 @@ else if (selectedItem) { var topping = data.getValue(selectedItem.row, 0); - var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); - window.location.href = "add_evd.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; - + var s = window.prompt('New selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); + if (input_check(s)) + { + window.location.href = "add_evd.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + } + else + { + window.location.href = "input_error_no_menu.php"; + } } } chart.draw(data, {curveType: "function", diff --git a/sourcecodes/network_layout_evd_2_example.php b/sourcecodes/network_layout_evd_2_example.php index d474b533..876d674f 100644 --- a/sourcecodes/network_layout_evd_2_example.php +++ b/sourcecodes/network_layout_evd_2_example.php @@ -1,6 +1,7 @@ <?php //include("structuremap.php"); - +include("input_validate.php"); +include("header_batchsearch.inc"); function levelmap($inx,$name,$mapdata) { @@ -23,7 +24,7 @@ foreach($leve_l as $l) -$keyval=trim($_GET["My_key"]); +$keyval=valid_keyval($_GET["My_key"]); //////////////////////////Entered evidences////////////////////////////////////////// $dir="./data/"; @@ -605,9 +606,14 @@ else var topping = data.getValue(selectedItem.row, 0); var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); - - window.location.href = "add_evd_example.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; - + if (input_check(s)) + { + window.location.href = "add_evd_example.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + } + else + { + window.location.href = "input_error_no_menu.php"; + } } } chart.draw(data, @@ -752,8 +758,14 @@ else var topping = data.getValue(selectedItem.row, 0); var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); - window.location.href = "add_evd_example.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; - + if (input_check(s)) + { + window.location.href = "add_evd_example.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + } + else + { + window.location.href = "input_error_no_menu.php"; + } } } chart.draw(data, {curveType: "function", diff --git a/sourcecodes/network_layout_evd_example.php b/sourcecodes/network_layout_evd_example.php index 3f22064d..56f80a4e 100644 --- a/sourcecodes/network_layout_evd_example.php +++ b/sourcecodes/network_layout_evd_example.php @@ -1,5 +1,7 @@ <?php //include("structuremap.php"); +include("header_batchsearch.inc"); +include("input_validate.php"); function levelmap($inx,$name,$mapdata) { @@ -25,7 +27,7 @@ foreach($leve_l as $l) $dir="./data/"; -$keyval=$_GET["My_key"]; +$keyval=valid_keyval($_GET["My_key"]); $matfile=$dir."$keyval"."net_figure.txt"; @@ -359,10 +361,14 @@ for($i=0;$i<$nnode;$i++) var topping = data.getValue(selectedItem.row, 0); var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); - - window.location.href = "add_evd_example.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; - - + if (input_check(s)) + { + window.location.href = "add_evd_example.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + } + else + { + window.location.href = "input_error_no_menu.php"; + } //alert('The user selected ' + topping + topname); } @@ -425,7 +431,14 @@ for($i=0;$i<$nnode;$i++) var topping = data.getValue(selectedItem.row, 0); var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); - window.location.href = "add_evd_example.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + if (input_check(s)) + { + window.location.href = "add_evd_example.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + } + else + { + window.location.href = "input_error_no_menu.php"; + } } } diff --git a/sourcecodes/network_layout_inv.php b/sourcecodes/network_layout_inv.php index b9375e67..f6856fe4 100644 --- a/sourcecodes/network_layout_inv.php +++ b/sourcecodes/network_layout_inv.php @@ -1,5 +1,7 @@ <?php //include("structuremap.php"); +include("header_batchsearch.inc"); +include("input_validate.php"); function levelmap($inx,$name,$mapdata) { @@ -20,7 +22,7 @@ foreach($leve_l as $l) ////////////////////////////////////Read data from net_figure file///////////////////////Graphp Display///////////////////////////////////////////// -$keyval=$_GET["My_key"]; +$keyval=valid_keyval($_GET["My_key"]); $dir="./data/"; $lfile=$dir.$keyval."nlevels.txt"; @@ -315,8 +317,14 @@ for($i=0;$i<$nnode;$i++) var topping = data.getValue(selectedItem.row, 0); var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); - - window.location.href = "add_inv.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + if (input_check(s)) + { + window.location.href = "add_inv.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + } + else + { + window.location.href = "input_error_no_menu.php"; + } } } chart.draw(data, @@ -378,8 +386,14 @@ for($i=0;$i<$nnode;$i++) var topping = data.getValue(selectedItem.row, 0); var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); - window.location.href = "add_inv.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; - + if (input_check(s)) + { + window.location.href = "add_inv.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + } + else + { + window.location.href = "input_error_no_menu.php"; + } } } chart.draw(data, {curveType: "function", diff --git a/sourcecodes/network_layout_inv_2.php b/sourcecodes/network_layout_inv_2.php index 550fdf4a..65451727 100644 --- a/sourcecodes/network_layout_inv_2.php +++ b/sourcecodes/network_layout_inv_2.php @@ -1,6 +1,7 @@ <?php //include("structuremap.php"); - +include("header_batchsearch.inc"); +include("input_validate.php"); function levelmap($inx,$name,$mapdata) { @@ -23,7 +24,7 @@ foreach($leve_l as $l) -$keyval=$_GET["My_key"]; +$keyval=valid_keyval($_GET["My_key"]); $dir="./data/"; @@ -753,9 +754,14 @@ else var topping = data.getValue(selectedItem.row, 0); var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); - - window.location.href = "add_inv.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; - + if (input_check(s)) + { + window.location.href = "add_inv.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + } + else + { + window.location.href = "input_error_no_menu.php"; + } //alert('The user selected ' + topping + topname); @@ -949,8 +955,14 @@ else var topping = data.getValue(selectedItem.row, 0); var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); - window.location.href = "add_inv.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; - + if (input_check(s)) + { + window.location.href = "add_inv.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + } + else + { + window.location.href = "input_error_no_menu.php"; + } } } chart.draw(data, {curveType: "function", diff --git a/sourcecodes/network_layout_inv_2_example.php b/sourcecodes/network_layout_inv_2_example.php index ab7b2546..b4878af9 100644 --- a/sourcecodes/network_layout_inv_2_example.php +++ b/sourcecodes/network_layout_inv_2_example.php @@ -1,6 +1,7 @@ <?php //include("structuremap.php"); - +include("header_batchsearch.inc"); +include("input_validate.php"); function levelmap($inx,$name,$mapdata) { @@ -23,7 +24,7 @@ foreach($leve_l as $l) -$keyval=$_GET["My_key"]; +$keyval=valid_keyval($_GET["My_key"]); $dir="./data/"; @@ -751,12 +752,14 @@ else var topping = data.getValue(selectedItem.row, 0); var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); - - window.location.href = "add_inv_example.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; - - - - //alert('The user selected ' + topping + topname); + if (input_check(s)) + { + window.location.href = "add_inv_example.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + } + else + { + window.location.href = "input_error_no_menu.php"; + } } } chart.draw(data, @@ -952,7 +955,14 @@ else var topping = data.getValue(selectedItem.row, 0); var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); - window.location.href = "add_inv_example.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + if (input_check(s)) + { + window.location.href = "add_inv_example.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + } + else + { + window.location.href = "input_error_no_menu.php"; + } } } diff --git a/sourcecodes/network_layout_inv_example.php b/sourcecodes/network_layout_inv_example.php index 24801cf0..076832b6 100644 --- a/sourcecodes/network_layout_inv_example.php +++ b/sourcecodes/network_layout_inv_example.php @@ -1,5 +1,7 @@ <?php //include("structuremap.php"); +include("header_batchsearch.inc"); +include("input_validate.php"); function levelmap($inx,$name,$mapdata) { @@ -22,7 +24,7 @@ foreach($leve_l as $l) ////////////////////////////////////Read data from net_figure file///////////////////////Graphp Display///////////////////////////////////////////// -$keyval=$_GET["My_key"]; +$keyval=valid_keyval($_GET["My_key"]); $dir="./data/"; $lfile=$dir.$keyval."nlevels.txt"; @@ -391,8 +393,14 @@ for($i=0;$i<$nnode;$i++) var topping = data.getValue(selectedItem.row, 0); var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); - - window.location.href = "add_inv_example.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + if (input_check(s)) + { + window.location.href = "add_inv_example.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + } + else + { + window.location.href = "input_error_no_menu.php"; + } } } chart.draw(data, @@ -456,8 +464,14 @@ for($i=0;$i<$nnode;$i++) var topping = data.getValue(selectedItem.row, 0); var s = window.prompt('Selected evidence ' + topping + ' for ' + cnode + '. Enter new evidence ', topping ); - window.location.href = "add_inv_example.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; - + if (input_check(s)) + { + window.location.href = "add_inv_example.php?name=" + cnode + "&evidence=" + s + "&My_key=" + keyv; + } + else + { + window.location.href = "input_error_no_menu.php"; + } } } chart.draw(data, {curveType: "function", diff --git a/sourcecodes/parameter_display.php b/sourcecodes/parameter_display.php index 7df6d282..1d65a11f 100644 --- a/sourcecodes/parameter_display.php +++ b/sourcecodes/parameter_display.php @@ -1,4 +1,7 @@ -<?php $keyval=$_GET["My_key"]; ?> +<?php +include("input_validate.php"); +$keyval=valid_keyval($_GET["My_key"]); +?> <h3> <a href=<?php $d="./data/".$keyval."parameters.txt"; print($d);?>>View original parameters</a></h3> <br> diff --git a/sourcecodes/parameter_learning/drawFigure.m b/sourcecodes/parameter_learning/drawFigure.m index 7da07a90..c48f5b2d 100644 --- a/sourcecodes/parameter_learning/drawFigure.m +++ b/sourcecodes/parameter_learning/drawFigure.m @@ -123,7 +123,8 @@ for i = 1:nnodes, fprintf(fileID,format,num_child(i),children(1,:)); end - predict = marginal_nodes(engine,i); +% predict = marginal_nodes(engine,i); + predict = marginal_nodes_no_ev(bnet,engine,i); if bnet.node_sizes(i) ~= 1, for j = 1:bnet.node_sizes(i), %%%For discrete nodes, the state and the percent of that state diff --git a/sourcecodes/parameter_learning/kfoldCrossValid.m b/sourcecodes/parameter_learning/kfoldCrossValid.m new file mode 100644 index 00000000..6306c511 --- /dev/null +++ b/sourcecodes/parameter_learning/kfoldCrossValid.m @@ -0,0 +1,322 @@ +function kfoldCrossValid(pre,predict_label,nfolds) +% This function will peform k-fold cross-validation. +% This requires the specification of the name of the variable +% that you want to predict and the number of folds that the +% data should be divided into. + +nfolds = uint8(str2num(nfolds)); + +sfile=strcat(pre,'structure_input.txt'); +dfile=strcat(pre,'continuous_input.txt'); +nnodefile=strcat(pre,'nnode.txt'); +fnnode = fopen(nnodefile,'r'); +nnodes = fscanf(fnnode,'%d'); + +Std_flag=true; +[labels,cases,bnet]=readInput(dfile,sfile,nnodes,Std_flag); + +for i=1:nnodes + if strcmp(labels(i),predict_label) + predict_node = i; + end +end + +predict_cases = bnet.node_sizes(predict_node); + +ncases = size(cases,2); + +kfold_index = kfold_bin(ncases,nfolds); + +if predict_cases == 1 + kfoldCV_continuous(pre,predict_label,nnodes,labels,cases,bnet,predict_node,predict_cases,nfolds,kfold_index); +else + kfoldCV_discrete(pre,predict_label,nnodes,labels,cases,bnet,predict_node,predict_cases,nfolds,kfold_index); +endif + + +end + + +function kfoldCV_continuous(pre,predict_label,nnodes,labels,cases,bnet,predict_node,predict_cases,nfolds,kfold_index) + +ncases = size(cases,2); + +%%Read in original means and standard deviations to report output as +%% untransformed values. +means_orig=cell(1,nnodes); +stdevs_orig=cell(1,nnodes); +labels_orig=cell(1,nnodes); +%Read in original means and standard deviations +mapfile = strcat(pre,'map.txt'); +fmap = fopen(mapfile,'r'); +for i=1:nnodes + buffer = fgetl(mapfile); + temp = cell(1,3); + for j=1:3 + [next,buffer] = strtok(buffer); + temp{j} = next; + end + labels_orig{i} = temp{1}; + means_orig{i} = str2num(temp{3}); + stdevs_orig{i} = str2num(temp{2}); +end +fclose(fmap); +%Need to map the means and stdevs to the correct labels +means = cell(1,nnodes); +stdevs = cell(1,nnodes); +for i = 1:nnodes + for j = 1:nnodes + if strcmp(labels{i},labels_orig{j}) + means{i} = means_orig{j}; + stdevs{i} = stdevs_orig{j}; + break + end + end +end + +kfoldPredictions=zeros(size(cases,2),2); + + +%t=cputime; +%First get predictions +for i =1:nfolds +% i + test_flag = false(ncases,1); + for j=1:ncases + if kfold_index(j) == i + test_flag(j) = true; + end + end + trainData = cases(:,~test_flag); + testData = cases(:,test_flag); + temp_index = zeros(size(testData,2),1); + temp = 1; + for j=1:ncases + if kfold_index(j) == i + temp_index(temp) = j; + temp = temp + 1; + end + end + [bnet] = parameterLearning(bnet,trainData); + for j=1:size(testData,2) + evidence = testData(:,j); + evidence{predict_node} = {}; + engine = jtree_inf_engine(bnet); + [engine,loglik] = enter_evidence(engine,evidence); + predict = marginal_nodes(engine,predict_node); + adj_mu = predict.mu*stdevs{predict_node}+means{predict_node}; + adj_sigma = stdevs{predict_node}*predict.Sigma; + kfoldPredictions(temp_index(j),1) = adj_mu; + kfoldPredictions(temp_index(j),2) = adj_sigma; + end +end +%e=cputime-t; + + +%Open output file. +filename = strcat(pre,'kfoldCV.txt'); +fileID = fopen(filename,'w'); + +fprintf(fileID,'Variable that was predicted: %s\n\n',predict_label); + +%Calculate RMSEP (root mean square error of prediction) and q^2 +%First, calculate TSS (total sum of squares) and +% PRESS (sum of squares of prediction errors) +average = mean(cell2mat(cases'))(predict_node); +%undo standardization +average = average*stdevs{predict_node}+means{predict_node}; +tss = 0; +press = 0; +case_adj=zeros(size(cases,2),1); +for i =1:ncases + case_adj(i) = cases{predict_node,i}*stdevs{predict_node}+means{predict_node}; + tss = (case_adj(i)-average)^2 + tss; + press = (kfoldPredictions(i,1)-case_adj(i))^2 + press; +end +rmsep = sqrt(press/ncases); +q_squared = 1 - press/tss; + +%% Print rmseq and q^2 +fprintf(fileID,'RMS error of predictions: %6.4f\n',rmsep); +fprintf(fileID,'Q^2 of predictions: %6.4f\n\n',q_squared); + + +%%Print the predictions +fprintf(fileID,'Predicted mean and standard deviation for each case:\n'); +fprintf(fileID,'CaseRow\tFoldNumber\tActualValue\tPredictionMean\tPredictionStDev\n'); +for i = 1:ncases + fprintf(fileID,'%i\t%i\t%6.4f\t',i,kfold_index(i),case_adj(i)); + fprintf(fileID,'%6.4f\t%6.4f\n',kfoldPredictions(i,:)); +end + +end + + +function kfoldCV_discrete(pre,predict_label,nnodes,labels,cases,bnet,predict_node,predict_cases,nfolds,kfold_index) + +ncases = size(cases,2); + +%This next section just gets the original names of the levels. +% so they can be written to the output file. +%%Get the maximum_number of states so array will be big enough +%%Add 1 because the input includes the node name +max_states = max(bnet.node_sizes) + 1; +disc_nodes = size(bnet.dnodes,2); + +%%Get mapping of discrete levels. +levelfile = strcat(pre,'nlevels.txt'); +flevels = fopen(levelfile,'r'); +levels = cell(disc_nodes,max_states); +ndisc_nodes = 0; +for i=1:disc_nodes + ndisc_nodes = ndisc_nodes + 1; + buffer = fgetl(flevels); + for j = 1:max_states + [next,buffer] = strtok(buffer); + if j == 1 + levels{i,j} = next; + else + levels{i,j} = next; + end + if length(buffer) < 1 + break + end + end +end + +pred_levels = cell(1,predict_cases); +for i = 1:disc_nodes + if strcmp(levels{i,1},predict_label); + for j = 1:predict_cases + pred_levels{j} = levels{i,j+1}; + end + break + end +end + +kfoldPredictions=zeros(size(cases,2),predict_cases); + +%t=cputime; +%First get kfold CV predictions +for i =1:nfolds + test_flag = false(ncases,1); + for j=1:ncases + if kfold_index(j) == i + test_flag(j) = true; + end + end + trainData = cases(:,~test_flag); + testData = cases(:,test_flag); + temp_index = zeros(size(testData,2),1); + temp = 1; + for j =1:ncases + if kfold_index(j) == i + temp_index(temp) = j; + temp = temp + 1; + end + end + [bnet] = parameterLearning(bnet,trainData); + for j = 1:size(testData,2) + evidence = testData(:,j); + evidence{predict_node} = {}; + engine = jtree_inf_engine(bnet); + [engine,loglik] = enter_evidence(engine,evidence); + predict = marginal_nodes(engine,predict_node); + for k = 1:predict_cases + kfoldPredictions(temp_index(j),k) = predict.T(k); + end + end +end +%e=cputime-t; + +%Now compare with actual outcomes +%actual_states = zeros(1,predict_cases); +%for i=1:ncases +% for j = 1:predict_cases +% if cell2mat(cases(predict_node,i)) == j +% actual_states(j) = actual_states(j) + 1; +% end +% end +%end + +pred_states = zeros(1,ncases); + +for i=1:ncases + max_state = 1; + for j = 2:predict_cases + if kfoldPredictions(i,j) > kfoldPredictions(i,max_state) + max_state = j; + end + end + pred_states(i) = max_state; +end + +correct = 0; +for i=1:ncases + if pred_states(i) == cell2mat(cases(predict_node,i)) + correct = correct + 1; + end +end + +accuracy = correct/ncases; + +%Open output file. +filename = strcat(pre,'kfoldCV.txt'); +fileID = fopen(filename,'w'); + +fprintf(fileID,'Variable that was predicted: %s\n\n',predict_label); + + +%%Print the accuracy +fprintf(fileID,'Fraction of accurate predictions: %6.4f\n\n',accuracy); + +%%Print the predictions +fprintf(fileID,'Predicted likelihood of each state for each case:\n'); +fprintf(fileID,'%s\t%s\t%s\t','CaseRow','FoldNumber','ActualState'); +fprintf(fileID,'%s\t',pred_levels{1:end-1}); +fprintf(fileID,'%s\n',pred_levels{end}); +for i = 1:ncases + fprintf(fileID,'%i\t%i\t',i,kfold_index(i)); + case_level = pred_levels{cases{predict_node,i}}; + fprintf(fileID,'%s\t',case_level); + fprintf(fileID,'%6.4f\t',kfoldPredictions(i,1:end-1)); + fprintf(fileID,'%6.4f\n',kfoldPredictions(i,end)); +end + +end + + +function [kfold_index] = kfold_bin(ncases,nfolds); +%This returns indexes for the different cases to separate data into folds. + +%Get array with random permutation of the number of cases +p = randperm(ncases); + +base_size = idivide(ncases,nfolds); +remainder = rem(ncases,nfolds); + +kfold_index = zeros(ncases,1); +group = 1; +count = 0; +for i=1:ncases + count = count + 1; + kfold_index(p(i)) = group; +%Need to do some checks if groups cannot be exactly equally sized +%If you have already added an extra member to the group, go to next group + if count > base_size + count = 0; + group = group + 1; +%If you have filled the group, check if an extra is needed + elseif count == base_size + if remainder > 0 + remainder = remainder - 1; + else + count = 0; + group = group + 1; + end + end +end + + +end + diff --git a/sourcecodes/parameter_learning/looCrossValid.m b/sourcecodes/parameter_learning/looCrossValid.m new file mode 100644 index 00000000..67b04409 --- /dev/null +++ b/sourcecodes/parameter_learning/looCrossValid.m @@ -0,0 +1,250 @@ +function looCrossValid(pre,predict_label) +% This function will peform leave-one-out cross-validation. +% This requires the specification of the name of the variable +% that you want to predict. + + + +sfile=strcat(pre,'structure_input.txt'); +dfile=strcat(pre,'continuous_input.txt'); +nnodefile=strcat(pre,'nnode.txt'); +fnnode = fopen(nnodefile,'r'); +nnodes = fscanf(fnnode,'%d'); + +Std_flag=true; +[labels,cases,bnet]=readInput(dfile,sfile,nnodes,Std_flag); + +for i=1:nnodes + if strcmp(labels(i),predict_label) + predict_node = i; + end +end + +predict_cases = bnet.node_sizes(predict_node); + +if predict_cases == 1 + looCV_continuous(pre,predict_label,nnodes,labels,cases,bnet,predict_node,predict_cases); +else + looCV_discrete(pre,predict_label,nnodes,labels,cases,bnet,predict_node,predict_cases); +endif + +end + +function looCV_continuous(pre,predict_label,nnodes,labels,cases,bnet,predict_node,predict_cases) + +ncases = size(cases,2); + +%%Read in original means and standard deviations to report output as +%% untransformed values. +means_orig=cell(1,nnodes); +stdevs_orig=cell(1,nnodes); +labels_orig=cell(1,nnodes); +%Read in original means and standard deviations +mapfile = strcat(pre,'map.txt'); +fmap = fopen(mapfile,'r'); +for i=1:nnodes + buffer = fgetl(mapfile); + temp = cell(1,3); + for j=1:3 + [next,buffer] = strtok(buffer); + temp{j} = next; + end + labels_orig{i} = temp{1}; + means_orig{i} = str2num(temp{3}); + stdevs_orig{i} = str2num(temp{2}); +end +fclose(fmap); +%Need to map the means and stdevs to the correct labels +means = cell(1,nnodes); +stdevs = cell(1,nnodes); +for i = 1:nnodes + for j = 1:nnodes + if strcmp(labels{i},labels_orig{j}) + means{i} = means_orig{j}; + stdevs{i} = stdevs_orig{j}; + break + end + end +end + +loopredictions=zeros(size(cases,2),2); + +%t=cputime; +%First get loo predictions +for i =1:ncases +% i + current_data = cases(:,i); + cases_new = cases; + cases_new(:,i) = []; + evidence = current_data; + evidence{predict_node} = {}; + [bnet]=parameterLearning(bnet,cases_new); + engine = jtree_inf_engine(bnet); + [engine,loglik] = enter_evidence(engine,evidence); + predict = marginal_nodes(engine,predict_node); + adj_mu = predict.mu*stdevs{predict_node}+means{predict_node}; + adj_sigma = stdevs{predict_node}*predict.Sigma; + loopredictions(i,1) = adj_mu; + loopredictions(i,2) = adj_sigma; +end +%e=cputime-t; + +%Open output file. +filename = strcat(pre,'looCV.txt'); +fileID = fopen(filename,'w'); + +fprintf(fileID,'Variable that was predicted: %s\n\n',predict_label); + +%Calculate RMSEP (root mean square error of prediction) and q^2 +%First, calculate TSS (total sum of squares) and +% PRESS (sum of squares of prediction errors) +average = mean(cell2mat(cases'))(predict_node); + +%undo standardization +average = average*stdevs{predict_node}+means{predict_node}; +tss = 0; +press = 0; +case_adj=zeros(size(cases,2),1); +for i =1:ncases + case_adj(i) = cases{predict_node,i}*stdevs{predict_node}+means{predict_node}; + tss = (case_adj(i)-average)^2 + tss; + press = (loopredictions(i,1)-case_adj(i))^2 + press; +end +rmsep = sqrt(press/ncases); +q_squared = 1 - press/tss; + +%% Print rmseq and q^2 +fprintf(fileID,'RMS error of predictions: %6.4f\n',rmsep); +fprintf(fileID,'Q^2 of predictions: %6.4f\n\n',q_squared); + + +%%Print the predictions +fprintf(fileID,'Predicted mean and standard deviation for each case:\n'); +fprintf(fileID,'CaseRow\tActualValue\tPredictionMean\tPredictionStDev\n'); +for i = 1:ncases + fprintf(fileID,'%i\t%6.4f\t',i,case_adj(i)); + fprintf(fileID,'%6.4f\t%6.4f\n',loopredictions(i,:)); +end + +end + + +function looCV_discrete(pre,predict_label,nnodes,labels,cases,bnet,predict_node,predict_cases) + +ncases = size(cases,2); + +%This next section just gets the original names of the levels. +% so they can be written to the output file. +%%Get the maximum_number of states so array will be big enough +%%Add 1 because the input includes the node name +max_states = max(bnet.node_sizes) + 1; +disc_nodes = size(bnet.dnodes,2); + +%%Get mapping of discrete levels. +levelfile = strcat(pre,'nlevels.txt'); +flevels = fopen(levelfile,'r'); +levels = cell(disc_nodes,max_states); +ndisc_nodes = 0; +for i=1:disc_nodes + ndisc_nodes = ndisc_nodes + 1; + buffer = fgetl(flevels); + for j = 1:max_states + [next,buffer] = strtok(buffer); + if j == 1 + levels{i,j} = next; + else + levels{i,j} = next; + end + if length(buffer) < 1 + break + end + end +end + +pred_levels = cell(1,predict_cases); +for i = 1:disc_nodes + if strcmp(levels{i,1},predict_label); + for j = 1:predict_cases + pred_levels{j} = levels{i,j+1}; + end + break + end +end + +loopredictions=zeros(size(cases,2),predict_cases); + +%t=cputime; +%First get loo predictions +for i =1:ncases +% i + current_data = cases(:,i); + cases_new = cases; + cases_new(:,i) = []; + evidence = current_data; + evidence{predict_node} = {}; + + [bnet]=parameterLearning(bnet,cases_new); + engine = jtree_inf_engine(bnet); + [engine,loglik] = enter_evidence(engine,evidence); + predict = marginal_nodes(engine,predict_node); + for j = 1:predict_cases + loopredictions(i,j) = predict.T(j); + end +end +%e=cputime-t; + +%Now compare with actual outcomes +%actual_states = zeros(1,predict_cases); +%for i=1:ncases +% for j = 1:predict_cases +% if cell2mat(cases(predict_node,i)) == j +% actual_states(j) = actual_states(j) + 1; +% end +% end +%end + +pred_states = zeros(1,ncases); + +for i=1:ncases + max_state = 1; + for j = 2:predict_cases + if loopredictions(i,j) > loopredictions(i,max_state) + max_state = j; + end + end + pred_states(i) = max_state; +end + +correct = 0; +for i=1:ncases + if pred_states(i) == cell2mat(cases(predict_node,i)) + correct = correct + 1; + end +end + +accuracy = correct/ncases; + +%Open output file. +filename = strcat(pre,'looCV.txt'); +fileID = fopen(filename,'w'); + +fprintf(fileID,'Variable that was predicted: %s\n\n',predict_label); + + +%%Print the accuracy +fprintf(fileID,'Fraction of accurate predictions: %6.4f\n\n',accuracy); + +%%Print the predictions +fprintf(fileID,'Predicted likelihood of each state for each case:\n'); +fprintf(fileID,'%s\t%s\t','CaseRow','ActualState'); +fprintf(fileID,'%s\t',pred_levels{1:end-1}); +fprintf(fileID,'%s\n',pred_levels{end}); +for i = 1:ncases + fprintf(fileID,'%i\t',i); + case_level = pred_levels{cases{predict_node,i}}; + fprintf(fileID,'%s\t',case_level); + fprintf(fileID,'%6.4f\t',loopredictions(i,1:end-1)); + fprintf(fileID,'%6.4f\n',loopredictions(i,end)); +end + +end diff --git a/sourcecodes/parameter_learning/parameterLearning.m b/sourcecodes/parameter_learning/parameterLearning.m index 3ef6c0b3..2c4a1f9f 100644 --- a/sourcecodes/parameter_learning/parameterLearning.m +++ b/sourcecodes/parameter_learning/parameterLearning.m @@ -4,7 +4,7 @@ function [ bnet ] = parameterLearning( bnet,cases,engine_name ) % % This is very basic now. It could be modified to use different engine % types in the future. Now, I always use the 'jtree_inf_engine'. -% +% with dirichlet priors % % parameterLearning is called by runBN_initial.m, % Predictmultiple.m, and Predictmultipleintervention.m @@ -35,7 +35,8 @@ nnodes = size(dnodes,2)+size(cnodes,2); %make dnodes tabular_CPT for i = 1:size(dnodes,2) - bnet.CPD{dnodes(i)} = tabular_CPD(bnet,dnodes(i)); +% bnet.CPD{dnodes(i)} = tabular_CPD(bnet,dnodes(i)); + bnet.CPD{dnodes(i)} = tabular_CPD(bnet,dnodes(i),'prior_type','dirichlet'); end for i = 1:size(cnodes,2) diff --git a/sourcecodes/parameter_learning/prepareInput.m b/sourcecodes/parameter_learning/prepareInput.m index 84d2ae17..5268f872 100644 --- a/sourcecodes/parameter_learning/prepareInput.m +++ b/sourcecodes/parameter_learning/prepareInput.m @@ -274,7 +274,7 @@ for i = 1:nnodes if levels{i} > 1 for j = 1:ncases for k=1:size(states{i},1) - if data{j,i} == states{i}{k} + if strcmp(data{j,i},states{i}{k}) data{j,i} = sprintf('%i',num2cell(k){1});; break end diff --git a/sourcecodes/parameter_learning/testSetPredictions.m b/sourcecodes/parameter_learning/testSetPredictions.m new file mode 100644 index 00000000..0fff197d --- /dev/null +++ b/sourcecodes/parameter_learning/testSetPredictions.m @@ -0,0 +1,361 @@ +function [ ] = testSetPredictions( pre ) + % + % This function will make predictions for the cases included + % in the uploaded data file. + % + % + % Input: ???ts_input.txt + % This is the input file that is uploaded to BNW. + % It is directly written out by the BNW php code with no modification. + % The file format is a header line containing the variable that you want to predict. + % Then, there is a second header line with the variable names + % Finally, the file contains the data, with each case in a row. + % If there is missing data, an "NA" should be entered. + % + % Output: ???ts_output.txt + % + % It is called by the run_test_set script in the 'sourcecodes' directory. + + +% open file for input, include error handling +dfile=strcat(pre,'ts_upload.txt'); + +fin = fopen(dfile,'r'); +if fin < 0 + error(['Could not open ',dfile,' for input']); +end + +% Get the number of cases (the number of rows in the file excluding the header) +ntestcases = fskipl(fin,Inf) - 2; + +frewind(fin); + + + +% Read in first line to get the node label of the variable that should be predicted. +buffer = fgetl(fin); +[predict_label,buffer] = strtok(buffer); + +% Read in second line to get the number of nodes and the node labels. +buffer = fgetl(fin); %get header line as a string +nnodes = numel(strfind(buffer,"\t")) + 1; +labels_test = cell(1,nnodes); +for j=1:nnodes + [next,buffer] = strtok(buffer); + labels_test{j} = next; +end + +% Read in the test_data +data_test_temp = cell(ntestcases,nnodes); +for i = 1:ntestcases + buffer = fgetl(fin); + for j = 1:nnodes + [next,buffer] = strtok(buffer); + data_test_temp{i,j} = next; + end +end + + +% Read in the training (original) data and network structure. +sfile=strcat(pre,'structure_input.txt'); +dfile=strcat(pre,'continuous_input.txt'); +nnodefile=strcat(pre,'nnode.txt'); +fnnode = fopen(nnodefile,'r'); +nnodes = fscanf(fnnode,'%d'); + +Std_flag=true; +[labels,cases,bnet]=readInput(dfile,sfile,nnodes,Std_flag); +[bnet] = parameterLearning(bnet,cases); + +%Get node id in actual network for variable to be predicted +for i=1:nnodes + if strcmp(labels(i),predict_label) + predict_node = i; + end +end + +%Reformat test data so the columns match bnet structure +label_map = cell(2,nnodes); +for i=1:nnodes + label_map{1,i} = labels_test{i}; + for j=1:nnodes + if strcmp(labels_test(i),labels(j)) + label_map{2,i} = j; + break + end + end +end + + +data_test = cell(ntestcases,nnodes); +for i=1:nnodes + data_test(:,label_map{2,i}) = data_test_temp(:,i); +end + +%%Read in training data means and standard deviations +means_orig=cell(1,nnodes); +stdevs_orig=cell(1,nnodes); +labels_orig=cell(1,nnodes); +%Read in original means and standard deviations +mapfile = strcat(pre,'map.txt'); +fmap = fopen(mapfile,'r'); +for i=1:nnodes + buffer = fgetl(mapfile); + temp = cell(1,3); + for j=1:3 + [next,buffer] = strtok(buffer); + temp{j} = next; + end + labels_orig{i} = temp{1}; + means_orig{i} = str2num(temp{3}); + stdevs_orig{i} = str2num(temp{2}); +end +fclose(fmap); +%Need to map the means and stdevs to the correct labels +means = cell(1,nnodes); +stdevs = cell(1,nnodes); +for i = 1:nnodes + for j = 1:nnodes + if strcmp(labels{i},labels_orig{j}) + means{i} = means_orig{j}; + stdevs{i} = stdevs_orig{j}; + break + end + end +end + +%Get mapping of discrete levels. +max_states = max(bnet.node_sizes) + 1; +disc_nodes = size(bnet.dnodes,2); +levelfile = strcat(pre,'nlevels.txt'); +flevels = fopen(levelfile,'r'); +levels = cell(disc_nodes,max_states); +ndisc_nodes = 0; +for i=1:disc_nodes + ndisc_nodes = ndisc_nodes + 1; + buffer = fgetl(flevels); + for j = 1:max_states + [next,buffer] = strtok(buffer); + if j == 1 + levels{i,j} = next; + else + levels{i,j} = next; + end + if length(buffer) < 1 + break + end + end +end + +%Standardize continuous data and map data to levels. +for i=1:nnodes + if bnet.node_sizes(i) == 1 + for j=1:ntestcases + if !strcmp(data_test{j,i},"NA") + data_test{j,i} = (str2num(data_test{j,i}) - means{i})/stdevs{i}; + end + end + else + for j=1:ntestcases + labels{i} + if !strcmp(data_test{j,i},"NA") + for jj = 1:size(levels,1) + if strcmp(labels{i},levels{jj,1}) + break + endif + end + for k = 1:bnet.node_sizes(i) + if strcmp(data_test{j,i},levels{jj,k+1}) + data_test{j,i} = k; + end + end + end + end +end +end + + +%Now make predictions +predict_cases = bnet.node_sizes(predict_node); + +if predict_cases == 1 + ts_continuous(pre,bnet,nnodes,predict_label,predict_node,data_test,means,stdevs) +else + pred_levels = cell(1,predict_cases); + for i = 1:disc_nodes + if strcmp(levels{i,1},predict_label); + for j = 1:predict_cases + pred_levels{j} = levels{i,j+1}; + end + break + end + end + ts_discrete(pre,bnet,nnodes,predict_label,predict_node,data_test,pred_levels,predict_cases) +end + +%delete(dfile) + +end + +function ts_continuous(pre,bnet,nnodes,predict_label,predict_node,data_test,means,stdevs) + +ntestcases = size(data_test,1); + +predictions = zeros(ntestcases,2); + +for i = 1:ntestcases + evidence = data_test(i,:); + evidence{predict_node} = {}; + for j=1:nnodes + if strcmp(evidence{j},"NA") + evidence{j} = {}; + end + end + engine = jtree_inf_engine(bnet); + [engine,loglik] = enter_evidence(engine,evidence); + predict = marginal_nodes(engine,predict_node); + adj_mu = predict.mu*stdevs{predict_node}+means{predict_node}; + adj_sigma = stdevs{predict_node}*predict.Sigma; + predictions(i,1) = adj_mu; + predictions(i,2) = adj_sigma; +end + +%Open output file. +filename = strcat(pre,'ts_output.txt'); +fileID = fopen(filename,'w'); + +fprintf(fileID,'Variable that was predicted: %s\n\n',predict_label); + + +%Calculate RMSEP (root mean square error of prediction) and q^2 +%First, calculate TSS (total sum of squares) and +% PRESS (sum of squares of prediction errors) +%Get rid of 'NA' data for predicted data. +actual_values = []; +predictions_removeNA = []; +for i=1:ntestcases + if !strcmp(data_test(i,predict_node),'NA') + actual_values = [actual_values, cell2num(data_test(i,predict_node))] + predictions_removeNA = [predictions_removeNA,predictions(i,1)] + end +end + +size(actual_values) +size(predictions_removeNA) + +average = mean(actual_values); +average = average*stdevs{predict_node}+means{predict_node}; +tss = 0; +press = 0; +for i=1:length(actual_values) + actual_values(i) = actual_values(i)*stdevs{predict_node}+means{predict_node}; + tss = (actual_values(i)-average)^2 + tss; + press = (predictions_removeNA(i)-actual_values(i))^2 + press; +end +rmsep = sqrt(press/length(actual_values)); +q_squared = 1 - press/tss; + +%% Print rmseq and q^2 +fprintf(fileID,'RMS error of predictions: %6.4f\n',rmsep); +fprintf(fileID,'Q^2 of predictions: %6.4f\n\n',q_squared); + + +%%Print the predictions +fprintf(fileID,'Predicted mean and standard deviation for each case:\n'); +fprintf(fileID,'CaseRow\tActualValue\tPredictionMean\tPredictionStDev\n'); +for i = 1:ntestcases + if strcmp(data_test{i,predict_node},"NA") + fprintf(fileID,'%i\t%s\t',i,data_test{i,predict_node}); + else + temp = data_test{i,predict_node}*stdevs{predict_node}+means{predict_node}; + fprintf(fileID,'%i\t%6.4f\t',i,temp); + end + fprintf(fileID,'%6.4f\t%6.4f\n',predictions(i,:)); +end + + +end + +function ts_discrete(pre,bnet,nnodes,predict_label,predict_node,data_test,pred_levels,predict_cases) + +ntestcases = size(data_test,1); + +predictions=zeros(ntestcases,predict_cases); + +for i = 1:ntestcases + evidence = data_test(i,:); + evidence{predict_node} = {}; + for j=1:nnodes + if strcmp(evidence{j},"NA") + evidence{j} = {}; + end + end + engine = jtree_inf_engine(bnet); + [engine,loglik] = enter_evidence(engine,evidence); + predict = marginal_nodes(engine,predict_node); + for j = 1:predict_cases + predictions(i,j) = predict.T(j); + end +end + + +pred_states = []; +for i=1:ntestcases + if !strcmp(data_test(i,predict_node),'NA') + max_state = 1; + for j = 2:predict_cases + if predictions(i,j) > predictions(i,max_state) + max_state = j; + end + end + pred_states = [pred_states,max_state]; + end +end + + +correct = 0; +j = 0; +for i=1:ntestcases + if !strcmp(data_test(i,predict_node),'NA') + j = j + 1; + if pred_states(j) == cell2mat(data_test(i,predict_node)) + correct = correct + 1; + end + end +end + +accuracy = correct/length(pred_states); + + +%Open output file. +filename = strcat(pre,'ts_output.txt'); +fileID = fopen(filename,'w'); + +fprintf(fileID,'Variable that was predicted: %s\n\n',predict_label); + +%%Print the accuracy +fprintf(fileID,'Fraction of accurate predictions: %6.4f\n\n',accuracy); + +%%Print the predictions +fprintf(fileID,'Predicted likelihood of each state for each case:\n'); +fprintf(fileID,'%s\t%s\t','CaseRow','ActualState'); +fprintf(fileID,'%s\t',pred_levels{1:end-1}); +fprintf(fileID,'%s\n',pred_levels{end}); +for i = 1:ntestcases + fprintf(fileID,'%i\t',i); + if strcmp(data_test{i,predict_node},"NA") + fprintf(fileID,'%s\t',data_test{i,predict_node}); + else + case_level = pred_levels{data_test{i,predict_node}}; + fprintf(fileID,'%s\t',case_level); + end + fprintf(fileID,'%6.4f\t',predictions(i,1:end-1)); + fprintf(fileID,'%6.4f\n',predictions(i,end)); +end + + + + + +end + diff --git a/sourcecodes/parameter_learning/writeParameters.m b/sourcecodes/parameter_learning/writeParameters.m index 42b2a4ef..6efafe8a 100644 --- a/sourcecodes/parameter_learning/writeParameters.m +++ b/sourcecodes/parameter_learning/writeParameters.m @@ -70,7 +70,8 @@ for i = 1:nnodes break end end - predict = marginal_nodes(engine,nodeid); +% predict = marginal_nodes(engine,nodeid); + predict = marginal_nodes_no_ev(bnet,engine,nodeid); %%%Print the name of the node fprintf(fileID,'%s\n',labels{nodeid}); %%%Print the type of node diff --git a/sourcecodes/run_kfold b/sourcecodes/run_kfold new file mode 100644 index 00000000..ad87b5d1 --- /dev/null +++ b/sourcecodes/run_kfold @@ -0,0 +1,14 @@ +#!/usr/bin/octave -qf +cd ./data +arg_list = argv(); +addpath("../bnt-master"); +addpath(genpathKPM("../bnt-master")); +addpath("../parameter_learning"); +filename=strcat(arg_list{1},"kfoldCV.txt"); +delete(filename); +filename=strcat(arg_list{1},"kfoldCV_temp.txt"); +fout_temp=fopen(filename,'w'); +fprintf(fout_temp,arg_list{2}); +kfoldCrossValid(arg_list{1},arg_list{2},arg_list{3}); +fclose(fout_temp); +delete(filename); \ No newline at end of file diff --git a/sourcecodes/run_loo b/sourcecodes/run_loo new file mode 100644 index 00000000..8c164651 --- /dev/null +++ b/sourcecodes/run_loo @@ -0,0 +1,14 @@ +#!/usr/bin/octave -qf +cd ./data +arg_list = argv(); +addpath("../bnt-master"); +addpath(genpathKPM("../bnt-master")); +addpath("../parameter_learning"); +filename=strcat(arg_list{1},"looCV.txt"); +delete(filename); +filename=strcat(arg_list{1},"looCV_temp.txt"); +fout_temp=fopen(filename,'w'); +fprintf(fout_temp,arg_list{2}); +looCrossValid(arg_list{1},arg_list{2}); +fclose(fout_temp); +delete(filename); \ No newline at end of file diff --git a/sourcecodes/run_test_set b/sourcecodes/run_test_set new file mode 100644 index 00000000..503032f0 --- /dev/null +++ b/sourcecodes/run_test_set @@ -0,0 +1,11 @@ +#!/usr/bin/octave -qf +cd ./data +arg_list = argv(); +addpath("../bnt-master"); +addpath(genpathKPM("../bnt-master")); +addpath("../parameter_learning"); +filename=strcat(arg_list{1},"ts_output.txt"); +delete(filename); +testSetPredictions(arg_list{1}); +filename=strcat(arg_list{1},"ts_upload.txt"); +delete(filename); \ No newline at end of file diff --git a/sourcecodes/test_set_predictions.php b/sourcecodes/test_set_predictions.php new file mode 100644 index 00000000..b6a1df80 --- /dev/null +++ b/sourcecodes/test_set_predictions.php @@ -0,0 +1,158 @@ +<?php +include("header_new.inc"); +include("header_batchsearch.inc"); +include("input_validate.php"); +if($_GET["My_key"]!="") + $keyval=valid_keyval($_GET["My_key"]); +if($_POST["My_key"]!="") + $keyval=valid_keyval($_POST["My_key"]); +$searchID=""; +$UploadValue="NO"; +$TextFile=$HTTP_POST_FILES["MyFile"]["name"]; +$TextinFile="./data/".$keyval."ts_upload.txt"; +?> + +<?php +if(isset($HTTP_POST_VARS["searchkey"])) + { + $searchID=$HTTP_POST_VARS["searchkey"]; + + } + +if(isset($HTTP_POST_VARS["MyUpload"])) + { + $UploadValue=$HTTP_POST_VARS["MyUpload"]; + if ($UploadValue=="YES") + { + if($TextFile!="") + { + $sta=move_uploaded_file($HTTP_POST_FILES['MyFile']['tmp_name'],$TextinFile); + if(!$sta) + { + echo "<script type='text/javascript'> window.alert ('Sorry, error uploading $TextFile.')</script>\ +"; + flush(); + exit(); + } + else + { + $searchID=file_get_contents("$TextinFile"); + //unlink($TextinFile); + + } + + } + + else + { + echo "<script type='text/javascript'> window.alert ('Sorry, please select upload file.')</script>"; + } + } + } + + +?> + +<!-- Site navigation menu --> +<ul class="navbar2"> + <li><p>Network ID:<br><?php print($keyval);?></p></li> +</ul> +<ul class="navbar"> + <li><a href="javascript:void(0);" + NAME="Network" title="Network" onClick=window.open("layout.php?My_key=<?php print($keyval);?>","_self");>Return to network</a> + <li><a href="javascript:void(0);" + NAME="CV_predictions" title="CV_pred" onClick=window.open("cv_predictions.php?My_key=<?php print($keyval);?>","_self");>Return to validation and predictions menu</a> + <li><a href="help.php">Help</a> + <li><a href="home.php">Home</a> +</ul> + +<div id="outer"> +<!-- Main content --> + +<?php + $filename1="./data/".$keyval."ts_upload.txt"; + $filename2="./data/".$keyval."ts_output.txt"; +if(file_exists($filename1)) + {?> +<br> +Calculation submitted. +<br> +<a href="cv_predictions.php?My_key=<?php print($keyval);?>">Click to return to cross-validation and predictions menu</a> +<br> +<?php + } +else if(file_exists($filename2)) + {?> + <br> + <h2> <a href=<?php $d="./data/".$keyval."ts_output.txt"; print($d);?>>View predictions</a></h2> + <br> +<h3>Make a new set of predictions by submitting data file below</h3> +<FORM name="key_search" enctype="multipart/form-data" ACTION="test_set_predictions.php" METHOD=POST> +<table> +<tr> +<td> +<INPUT style="background-color:#FFFFFF;color:#0000FF" type="file" name="MyFile" size=45 > +<INPUT TYPE="submit" value=" Submit " onclick="return Upload();"> +<INPUT TYPE="hidden" NAME="My_key" value=<?php print($keyval) ?> > +<INPUT TYPE="hidden" name="MyUpload" value="NO"> +</td> +</tr> +<tr> +<!--- +<td align="left"><font color=#33339f><br>Content of uploaded data file:</font><br> + <textarea name="searchkey" rows="8" cols="100"><?PHP print($searchID)?> </textarea> +</td> +---!> +</tr> +</table> +</FORM> +</div> + <?php + } else { +?> +<h2>Make predictions of test data file</h2> + To make prediction for several test cases, upload a file containing the test cases. +<br> +<br> + <FORM name="key_search" enctype="multipart/form-data" ACTION="test_set_predictions.php" METHOD=POST> +<table> +<tr> +<td> +<INPUT style="background-color:#FFFFFF;color:#0000FF" type="file" name="MyFile" size=45 > +<INPUT TYPE="submit" value=" Submit " onclick="return Upload();"> +<INPUT TYPE="hidden" NAME="My_key" value=<?php print($keyval) ?> > +<INPUT TYPE="hidden" name="MyUpload" value="NO"> +</td> +</tr> +<tr> +<!--- +<td align="left"><font color=#33339f><br>Content of uploaded data file:</font><br> + <textarea name="searchkey" rows="8" cols="100"><?PHP print($searchID)?> </textarea> +</td> +---!> +</tr> +</table> +</FORM> +</div> +<br> + +<?php +} + +if($searchID!="") +{ + if($UploadValue=="NO") + { + $fpdata = fopen("./data/".$keyval."ts_input.txt","w"); + fwrite($fpdata,$searchID); + } + $command = './run_test_set '.$keyval; + $output = shell_exec("$command > /dev/null 2 > /dev/null &"); + $pred_link='cv_predictions.php?My_key='.$keyval; +} +?> + +</div> +</body> + + diff --git a/sourcecodes/test_set_predictions_example.php b/sourcecodes/test_set_predictions_example.php new file mode 100644 index 00000000..bdaeb170 --- /dev/null +++ b/sourcecodes/test_set_predictions_example.php @@ -0,0 +1,158 @@ +<?php +include("header_new.inc"); +include("header_batchsearch.inc"); +include("input_validate.php"); +if($_GET["My_key"]!="") + $keyval=valid_keyval($_GET["My_key"]); +if($_POST["My_key"]!="") + $keyval=valid_keyval($_POST["My_key"]); +$searchID=""; +$UploadValue="NO"; +$TextFile=$HTTP_POST_FILES["MyFile"]["name"]; +$TextinFile="./data/".$keyval."ts_upload.txt"; +?> + +<?php +if(isset($HTTP_POST_VARS["searchkey"])) + { + $searchID=$HTTP_POST_VARS["searchkey"]; + + } + +if(isset($HTTP_POST_VARS["MyUpload"])) + { + $UploadValue=$HTTP_POST_VARS["MyUpload"]; + if ($UploadValue=="YES") + { + if($TextFile!="") + { + $sta=move_uploaded_file($HTTP_POST_FILES['MyFile']['tmp_name'],$TextinFile); + if(!$sta) + { + echo "<script type='text/javascript'> window.alert ('Sorry, error uploading $TextFile.')</script>\ +"; + flush(); + exit(); + } + else + { + $searchID=file_get_contents("$TextinFile"); + //unlink($TextinFile); + + } + + } + + else + { + echo "<script type='text/javascript'> window.alert ('Sorry, please select upload file.')</script>"; + } + } + } + + +?> + +<!-- Site navigation menu --> +<ul class="navbar2"> + <li><p>Network ID:<br><?php print($keyval);?></p></li> +</ul> +<ul class="navbar"> + <li><a href="javascript:void(0);" + NAME="Network" title="Network" onClick=window.open("layout_example.php?My_key=<?php print($keyval);?>","_self");>Return to network</a> + <li><a href="javascript:void(0);" + NAME="CV_predictions" title="CV_pred" onClick=window.open("cv_predictions_example.php?My_key=<?php print($keyval);?>","_self");>Return to validation and predictions menu</a> + <li><a href="help.php">Help</a> + <li><a href="home.php">Home</a> +</ul> + +<div id="outer"> +<!-- Main content --> + +<?php + $filename1="./data/".$keyval."ts_upload.txt"; + $filename2="./data/".$keyval."ts_output.txt"; +if(file_exists($filename1)) + {?> +<br> +Calculation submitted. +<br> +<a href="cv_predictions_example.php?My_key=<?php print($keyval);?>">Click to return to cross-validation and predictions menu</a> +<br> +<?php + } +else if(file_exists($filename2)) + {?> + <br> + <h2> <a href=<?php $d="./data/".$keyval."ts_output.txt"; print($d);?>>View predictions</a></h2> + <br> +<h3>Make a new set of predictions by submitting data file below</h3> +<FORM name="key_search" enctype="multipart/form-data" ACTION="test_set_predictions_example.php" METHOD=POST> +<table> +<tr> +<td> +<INPUT style="background-color:#FFFFFF;color:#0000FF" type="file" name="MyFile" size=45 > +<INPUT TYPE="submit" value=" Submit " onclick="return Upload();"> +<INPUT TYPE="hidden" NAME="My_key" value=<?php print($keyval) ?> > +<INPUT TYPE="hidden" name="MyUpload" value="NO"> +</td> +</tr> +<tr> +<!--- +<td align="left"><font color=#33339f><br>Content of uploaded data file:</font><br> + <textarea name="searchkey" rows="8" cols="100"><?PHP print($searchID)?> </textarea> +</td> +---!> +</tr> +</table> +</FORM> +</div> + <?php + } else { +?> +<h2>Make predictions of test data file</h2> + To make prediction for several test cases, upload a file containing the test cases. +<br> +<br> + <FORM name="key_search" enctype="multipart/form-data" ACTION="test_set_predictions_example.php" METHOD=POST> +<table> +<tr> +<td> +<INPUT style="background-color:#FFFFFF;color:#0000FF" type="file" name="MyFile" size=45 > +<INPUT TYPE="submit" value=" Submit " onclick="return Upload();"> +<INPUT TYPE="hidden" NAME="My_key" value=<?php print($keyval) ?> > +<INPUT TYPE="hidden" name="MyUpload" value="NO"> +</td> +</tr> +<tr> +<!--- +<td align="left"><font color=#33339f><br>Content of uploaded data file:</font><br> + <textarea name="searchkey" rows="8" cols="100"><?PHP print($searchID)?> </textarea> +</td> +---!> +</tr> +</table> +</FORM> +</div> +<br> + +<?php +} + +if($searchID!="") +{ + if($UploadValue=="NO") + { + $fpdata = fopen("./data/".$keyval."ts_input.txt","w"); + fwrite($fpdata,$searchID); + } + $command = './run_test_set '.$keyval; + $output = shell_exec("$command > /dev/null 2 > /dev/null &"); + $pred_link='cv_predictions_example.php?My_key='.$keyval; +} +?> + +</div> +</body> + + diff --git a/sourcecodes/tier_description_processing_gom.php b/sourcecodes/tier_description_processing_gom.php index 48ac172c..de37d02a 100644 --- a/sourcecodes/tier_description_processing_gom.php +++ b/sourcecodes/tier_description_processing_gom.php @@ -1,6 +1,6 @@ <?php - -$keyval=$_GET["My_key"]; +include("input_validate.php"); +$keyval=valid_keyval($_GET["My_key"]); function get_tier($keyval) { diff --git a/sourcecodes/upload_structure_file.php b/sourcecodes/upload_structure_file.php index cb59f560..170bcfae 100644 --- a/sourcecodes/upload_structure_file.php +++ b/sourcecodes/upload_structure_file.php @@ -6,6 +6,8 @@ include("header_new.inc"); include("header_batchsearch.inc"); include("runtime_check.php"); +include("input_validate.php"); + $searchID=""; $UploadValue="NO"; $TextFile=$HTTP_POST_FILES["MyFile"]["name"]; @@ -26,6 +28,7 @@ $keyval=$alpha; if($_POST["My_key"]!="") $keyval=$_POST["My_key"]; +$keyval=valid_keyval($keyval); $sid=$keyval."continuous_input"; $dir="./data/"; |
