changeset 0:6f11162b6fa2 draft

planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
author dereeper
date Tue, 14 Aug 2018 08:04:23 -0400
parents
children 8e248dc6ad56
files Haplophyle.pl Haplophyle.sh Haplophyle.xml HaplophyleInBatch.pl NetworkCreator_fat.jar test-data/cytoscape.html test-data/dotfile.txt test-data/filelog.txt test-data/haplotype.fasta test-data/haplotype.txt test-data/network.txt test-data/output.json
diffstat 12 files changed, 721 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Haplophyle.pl	Tue Aug 14 08:04:23 2018 -0400
@@ -0,0 +1,142 @@
+#!/usr/bin/perl
+
+use strict;
+use Getopt::Long;
+use Bio::SeqIO;
+
+use Cwd;
+my $dir = getcwd;
+
+
+my $usage = qq~Usage:$0 <args> [<opts>]
+where <args> are:
+    -i, --input         <input>
+    -o, --output        <output>
+    -d, --dotfile       <dotfile>
+<opts> are:
+    -g, --groups        <groupfile>
+    -s, --stats         <statfile>
+    -t, --tool_path     <tool_path>
+~;
+$usage .= "\n";
+
+my ($infile,$output,$outfile,$groupfile,$statfile,$tool_path);
+
+
+GetOptions(
+	"input=s"    => \$infile,
+	"output=s"   => \$output,
+	"dot=s"      => \$outfile,
+	"groups=s"   => \$groupfile,
+	"stats=s"    => \$statfile,
+	"tool_path=s"=> \$tool_path
+);
+
+
+die $usage
+  if ( !$infile);
+
+
+my $HAPLOPHYLE_EXE = "java -Xmx2048m -jar NetworkCreator_fat.jar";
+if ($tool_path){
+	$HAPLOPHYLE_EXE = "java -Xmx2048m -jar $tool_path/NetworkCreator_fat.jar";
+}
+  
+	
+my $out_png = "network.png";
+
+my $command = "$HAPLOPHYLE_EXE -in $infile -out $outfile";
+system($command);
+
+
+
+my %groups;
+my %groups2;
+my %hash;
+my %haplosize;
+if ($groupfile && $statfile){
+	open(G,$groupfile);
+	while(<G>){
+		my $line = $_;$line=~s/\n//g;$line=~s/\r//g;
+		my ($ind,$group) = split(";",$line);
+		if ($group =~/\w+/ && $ind=~/\w+/){
+			$groups{$group}.=$ind.",";	
+			$groups2{$ind} = $group;
+		}
+	}
+	close(G);
+
+	open(S,$statfile);
+	while(<S>){
+		if (/^(haplo\d+):(\d+):(.*)/){
+			my $haplo_num = $1;
+			my $nb_haplo = $2;
+			my $inds = $3;
+			my @inds = split(",",$3);
+			foreach my $ind(@inds){
+				my ($indname,$rank) = split("_",$ind);
+				my $group = $groups2{$indname};
+				$hash{$haplo_num}{$group}++;
+				$haplosize{$haplo_num}++;
+			}
+		}
+	}
+	close(S);	
+}
+
+my $nb_groups = scalar keys(%groups);
+my @colors = ("#ed292a","#ed292a","#82ABA0","#2255a6","#6ebe43","#e76599","#662e91","#c180ff","#ea8b2f","#fff100","#666666","#01ffff","#bfbfbf","#2ac966","#666666");
+my $pie_block = "";
+my %correspondence_groups;
+my $i = 0;
+foreach my $group(keys(%groups)){
+	$i++;
+	$correspondence_groups{$i} = $group;
+	$pie_block .= "'pie-$i-background-color': '$colors[$i]',\n";
+	$pie_block .= "'pie-$i-background-size': 'mapData(group$i, 0, 10, 0, 100)',\n";
+}
+open(JSON_CYTOSCAPE,">$output");
+my $json = "{\"elements\": {\"nodes\": [";
+my $done = 0;
+open(OUTFILE,"$outfile");
+while(<OUTFILE>){
+                        if (/(^\w+)\s\[.*width=([\d\.]+),/){
+                                my $node = $1;
+                                my $size = $2;
+                               	my $ref_hash = $hash{$node};
+                                if ($ref_hash){
+                                        my %hash2 = %$ref_hash;
+                                        my $s = scalar keys(%hash2);
+					$json.= "{ \"data\": { \"id\": \"$node\", \"width\": $size";
+                                        for (my $i = 1; $i <= $nb_groups; $i++){
+						my $group = $correspondence_groups{$i};
+						my $ratio = 0;
+						if ($haplosize{$node} > 0 && $hash{$node}{$group} > 0){	
+	                                                $ratio = ($hash{$node}{$group}/$haplosize{$node}) * 10;
+						}
+						$json .= ", group$i: $ratio";
+                                        }
+					$json.= " } },\n";
+                                }
+                                else{
+					$json.= "{ \"data\": { \"id\": \"$node\", \"width\": $size} },\n";
+                                }
+                        }
+                        if (/(\w+) -- (\w+)/){
+                                if ($done == 0){
+                                        $done = 1;
+					chop($json);
+					chop($json);
+					$json .= "],\n";
+					$json .= "\"edges\": [\n";
+                                }
+                                $done = 1;
+				$json.= "{ \"data\": { \"id\": \"$1$2\", \"weight\": 1, \"source\": \"$1\", \"target\": \"$2\"} },\n";
+                        }
+}
+chop($json);
+chop($json);
+$json.="]}}";
+print JSON_CYTOSCAPE $json;
+close(JSON_CYTOSCAPE);
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Haplophyle.sh	Tue Aug 14 08:04:23 2018 -0400
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+# Config #######
+maxsizeseq=500
+maxnumseq=200
+################
+
+tool_path=$(dirname $0)
+
+filein=$1
+fileout=$2
+dotfile=$3
+logfile=$4
+filein2=$5
+groups=$6
+
+nbline=$(sed -n '$=' $filein)
+let "nbseq = $nbline / 2"
+seq=$(sed -n 2p $filein)
+sizeseq=${#seq}
+
+if [ $nbseq -lt $maxnumseq ]
+then
+        if [ $sizeseq -lt $maxsizeseq ]
+        then
+	        perl $tool_path/Haplophyle.pl --input $filein --groups $groups --stats $filein2 --dot $dotfile --out $fileout --tool_path $tool_path >>$logfile 2>&1
+        else
+                echo "Sequence size: $sizeseq"
+                echo "Input Sequences bust have a length < $maxsizeseq"
+                exit 1
+        fi
+else
+        echo "$nbseq sequences in the file"
+        echo "Input file must have less than $maxnumseq sequences"
+        exit 1
+fi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Haplophyle.xml	Tue Aug 14 08:04:23 2018 -0400
@@ -0,0 +1,227 @@
+<tool id="haplophyle" name="Haplophyle" version="1.0.0">
+    
+    <!-- [REQUIRED] Tool description displayed after the tool name -->
+    <description>Generates haplotype network</description>
+    
+    <!-- [OPTIONAL] 3rd party tools, binaries, modules... required for the tool to work -->
+    <requirements>
+        <requirement type="binary">perl</requirement>
+        <requirement type="package" version="1.6.924">perl-bioperl</requirement>
+    </requirements>
+    
+
+    <!-- [STRONGLY RECOMMANDED] Exit code rules -->
+    <stdio>
+        <!-- [HELP] If no exit code rule is defined, the tool will stop if anything is written to STDERR -->
+        <exit_code range="1:" level="fatal" />
+    </stdio>    
+
+    <!-- [REQUIRED] The command to execute -->
+    <command interpreter="perl">
+	Haplophyle.sh $input $fileout $dotfile $filelog
+        #if str( $color.choice ) == "yes":
+           $color.input2 $color.groups 
+        #end if
+    </command>
+    <!-- [REQUIRED] Input files and tool parameters -->
+    <inputs>
+	<param name="input" type="data" format="fasta" optional="false" label="Haplotype sequences in Fasta" />
+        <conditional name="color">
+           <param name="choice" type="boolean" truevalue="yes" falsevalue="no" label="Group colorization?"/>
+           <when value="no">
+           </when>
+           <when value="yes">
+ 	      <param name="input2" type="data" format="txt" optional="true" label="Haplotype sequences and individuals carrying the haplotype" help="See example below"/>
+              <param name="groups" type="data" format="txt" optional="true" label="Groups" help="Semicolon separated file (ind;group)"/>
+           </when>
+        </conditional>
+    </inputs>
+    
+    <!-- [REQUIRED] Output files -->
+    <outputs>
+	<data name="fileout" format="json" label="JSON for Cytoscape" />
+	<data name="dotfile" format="txt" label="Dot file" />
+	<data name="filelog" format="txt" label="Logfile" />
+    </outputs>
+
+    <!-- [OPTIONAL] Tests to be run manually by the Galaxy admin -->
+    <tests>
+        <!-- [HELP] Test files have to be in the ~/test-data directory -->
+        <test>
+            <param name="input" value="haplotype.fasta" />
+            <conditional name="color">
+               <param name="choice" value="yes" />
+               <param name="input2" value="haplotype.txt" />
+               <!--param name="groups" value="" /-->
+            </conditional>
+            <output name="fileout" file="output.json" compare="sim_size" delta="0"/>
+            <output name="dotfile" file="dotfile.txt" compare="sim_size" delta="0"/>
+        </test>
+        <test>
+            <param name="input" value="haplotype.fasta" />
+            <conditional name="color">
+               <param name="choice" value="no" />
+            </conditional>
+            <output name="fileout" file="output.json" compare="sim_size" delta="20"  />
+            <output name="dotfile" file="dotfile.txt" compare="sim_size" delta="0" />
+        </test>
+    </tests>
+
+    
+    <!-- [OPTIONAL] Help displayed in Galaxy -->
+    <help><![CDATA[
+
+.. class:: infomark
+
+**Authors**     Gautier Sarah : Haplophyle_
+
+.. _Haplophyle: http://haplophyle.cirad.fr/Haplophyle/
+
+.. class:: infomark
+
+**Galaxy integration** Provided by Southgreen & Dereeper Alexis (IRD) & Marcon Valentin (IFB & INRA)
+
+.. class:: infomark
+
+**Support** For any questions about Galaxy integration, please send an e-mail to alexis.dereeper@ird.fr
+
+---------------------------------------------------
+
+================
+Haplophyle
+================
+
+-----------
+Description
+-----------
+
+  | Create haplotype network from haplotype sequences
+
+----------
+Input file
+----------
+
+Haplotype fasta file
+	Haplotype fasta file with haplotype sequences and proportion
+Haplotype sequences and their individuals
+	Haplotype sequences and list of individuals holding the haplotype
+
+Groups
+
+------------
+Output files
+------------
+
+JSON file for Cytoscape
+Dot file
+Log file
+
+---------------------------------------------------
+
+---------------
+Working example
+---------------
+
+Input files
+===========
+
+Haplotype fasta file
+----------------------------
+
+::
+
+	>haplo1|1
+	AGAGGCCCATT
+	>haplo2|1
+	CGAGGTCCATT
+	>haplo3|1
+	CGGAGCCCATT
+	>haplo4|2
+	AGAGGTCTATT
+	>haplo5|1
+	CGAGGTCTATT
+	>haplo6|7
+	AGAGGTCCATT
+	>haplo7|3
+	CAAGATCCATC
+	>haplo8|1
+	CGAGGTTCATT
+	>haplo9|1
+	CGGAGCCCGTT
+	>haplo10|1
+	CGAGGCCCATT
+	>haplo11|1
+	AGAGGTTCATT
+	>haplo12|38
+	CAAGGTCCATT
+	>haplo13|3
+	CAAGGTCCACT
+	>haplo14|1
+	AGGAGCCCATT
+
+
+Haplotype sequences and their individuals
+----------------------------------------------
+
+::
+
+        haplo4:2:RS10_1,RS10_2,
+        GAGTGGGTTGCTTCCTTGCGTAGCCATCCGCCAACGACTGT
+        haplo5:2:RC3_1,RC3_2,
+        AGGTATACTGCCTGCTCGCGTAGTCAGCCGCCGACGGCTGG
+        haplo6:2:RS8_1,RS8_2,
+        GAGTGGGTTGCTTCCTTGCGTAGCCATCCACCAACGACTGT
+        haplo7:2:sativa_1,sativa_2,
+        GAGTGGGCTGCTTCCTCGCGTAGTCAGCCGCCGACAGCTGG
+
+
+
+Output files
+============
+
+output.json
+----------------------------
+
+::
+
+	{"elements": {"nodes": [{ "data": { "id": "MV1", "width": 0.1} },
+	{ "data": { "id": "MV2", "width": 0.1} },
+	{ "data": { "id": "MV3", "width": 0.1} },
+	{ "data": { "id": "haplo6", "width": 0.8 } },
+	{ "data": { "id": "haplo7", "width": 0.8 } },
+	{ "data": { "id": "haplo8", "width": 0.8 } }],
+	"edges": [
+	{ "data": { "id": "haplo4MV1", "weight": 1, "source": "haplo4", "target": "MV1"} },
+	{ "data": { "id": "haplo3haplo4", "weight": 1, "source": "haplo3", "target": "haplo4"} },
+	{ "data": { "id": "haplo5MV3", "weight": 1, "source": "haplo5", "target": "MV3"} },
+	{ "data": { "id": "MV1MV2", "weight": 1, "source": "MV1", "target": "MV2"} },
+	{ "data": { "id": "haplo8MV3", "weight": 1, "source": "haplo8", "target": "MV3"} }]}}
+
+
+dotfile.txt
+----------------------------
+
+::
+
+	graph G {
+	overlap="scale";
+	outputMode="nodesfirst";
+	MV1 [shape="circle", color="red", width=0.1, height=0.1,fixedsize=true];
+	MV2 [shape="circle", color="red", width=0.1, height=0.1,fixedsize=true];
+	haplo2 [shape="circle",style="filled", color="green" , imagescale="both", width=0.8, height=0.8,fixedsize=true];
+	haplo4 [shape="circle",style="filled", color="green" , imagescale="both", width=0.8, height=0.8,fixedsize=true];
+	haplo8 [shape="circle",style="filled", color="green" , imagescale="both", width=0.8, height=0.8,fixedsize=true];
+	haplo7 -- MV2 [len=0.2];
+	haplo1 -- haplo2 [len=0.2];
+	haplo4 -- MV1 [len=0.2];
+	MV2 -- MV3 [len=0.6];
+	haplo5 -- MV3 [len=0.8];
+	haplo8 -- MV3 [len=1,label="length: 24.0",color="red"];
+	}
+
+        
+
+
+    ]]></help>
+
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HaplophyleInBatch.pl	Tue Aug 14 08:04:23 2018 -0400
@@ -0,0 +1,107 @@
+#!/usr/bin/perl
+
+use strict;
+use Switch;
+use Getopt::Long;
+use Bio::SeqIO;
+
+my $HAPLOPHYLE_EXE = "java -Xmx2048m -jar /usr/local/bioinfo/sniplay/Haplophyle/NetworkCreator_fat.jar";
+my $NEATO_EXE = "neato";
+my $CONVERT_EXE = "convert";
+my $RSCRIPT_EXE = "/usr/local/bioinfo/R/default/bin/Rscript";
+
+my $usage = qq~Usage:$0 <args> [<opts>]
+where <args> are:
+    -i, --input         <input>
+<opts>
+    -r, --rscript       <R scripts in zipfile>
+~;
+$usage .= "\n";
+
+my ($infile,$r_zip);
+
+
+GetOptions(
+	"input=s"    => \$infile,
+	"rscript=s"  => \$r_zip
+);
+
+
+die $usage
+  if ( !$infile);
+
+
+if (-e $r_zip)
+{
+	system("unzip $r_zip");
+}
+  
+my %inputs;
+my $gene;
+my $data = "";
+open(my $I,$infile);
+while(<$I>) 
+{
+	if (/===(.*)===/)
+	{
+		$gene = $1;
+	}
+	else
+	{
+		$inputs{$gene}.= $_;
+	}
+}
+close($I);
+
+
+foreach my $gene(keys(%inputs))
+{
+	open(F,">$gene.distinct_haplo.fas");
+	print F $inputs{$gene};
+	close(F);
+	
+	my $input   = "$gene.distinct_haplo.fas";
+    my $outfile = "$gene.network.dot";
+    my $out_png = "$gene.network.png";
+
+	my $command = "$HAPLOPHYLE_EXE -in $input -out $outfile >> $gene.haplophyle.log 2>&1";
+	system($command);
+
+	
+
+	
+	open(OUTFILE,"$outfile");
+	open(OUTFILE2,">$outfile.vis");
+	print OUTFILE2 "var nodes = [\n";
+	open(INFILE,"$input");
+	while(<INFILE>)
+	{
+		if (/>haplo(\d+)\|(\d+)/)
+		{
+			print OUTFILE2 "{id: $1, label: 'Haplo$1',shape:'image',radius:'$2'}\n";
+		}
+	}
+	close(INFILE);
+	print OUTFILE2 "];\n";
+	print OUTFILE2 "var edges = [\n";
+	my $n = 0;
+	while(<OUTFILE>)
+	{
+		my $line = $_;
+		if (/^haplo(\d+) -- haplo(\d+)/)
+		{
+			my $from = $1;
+			my $to = $2;
+			
+			print OUTFILE2 "{from: $from, to: $to,length:'7',style: 'line',color:'black',},\n";
+		}	
+
+	}
+	close(OUTFILE);
+	print OUTFILE2 "];\n";
+	close(OUTFILE2);
+}
+
+system("zip networks.zip *network.dot");
+#system("zip pies.zip *pie.eps");
+
Binary file NetworkCreator_fat.jar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/cytoscape.html	Tue Aug 14 08:04:23 2018 -0400
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html><head>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
+<link href="http://sniplay.southgreen.fr/cytoscape/Pie_style/style.css" rel="stylesheet">
+<meta charset="utf-8">
+<meta name="viewport" content="user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, minimal-ui">
+<title>Pie style</title>
+<script src="http://sniplay.southgreen.fr/cytoscape/Pie_style/jquery.js"></script>
+<script src="http://sniplay.southgreen.fr/cytoscape/Pie_style/cytoscape.js"></script>
+<script type="text/javascript">
+$(function(){ // on dom ready
+
+$('#cy').cytoscape({
+
+  style: cytoscape.stylesheet()
+    .selector(':selected')
+      .css({
+        'background-color': 'black',
+        'line-color': 'black',
+        'opacity': 1
+      })
+    .selector('.faded')
+      .css({
+        'opacity': 0.25,
+        'text-opacity': 0
+      })
+    .selector('edge')
+      .css({
+                'width': 1,
+                'line-color': 'black',
+      })
+    .selector('node')
+      .css({
+        'width': 'mapData(width, 0, 10, 0, 100)',
+        'height': 'mapData(width, 0, 10, 0, 100)',
+        'content': 'data(id)',
+        'pie-size': '98%',
+        
+      }),
+elements: {
+    nodes: [
+{ data: { id: 'MV1', width: 0.1} },
+{ data: { id: 'MV2', width: 0.1} },
+{ data: { id: 'MV3', width: 0.1} },
+{ data: { id: 'haplo1', width: 1.2000000000000002 } },
+{ data: { id: 'haplo2', width: 0.8 } },
+{ data: { id: 'haplo3', width: 5.0 } },
+{ data: { id: 'haplo4', width: 0.8 } },
+{ data: { id: 'haplo5', width: 0.8 } },
+{ data: { id: 'haplo6', width: 0.8 } },
+{ data: { id: 'haplo7', width: 0.8 } },
+{ data: { id: 'haplo8', width: 0.8 } },
+],
+edges: [
+{ data: { id: 'haplo7MV2', weight: 1, source: 'haplo7', target: 'MV2'} },
+{ data: { id: 'haplo4haplo6', weight: 1, source: 'haplo4', target: 'haplo6'} },
+{ data: { id: 'haplo1haplo2', weight: 1, source: 'haplo1', target: 'haplo2'} },
+{ data: { id: 'haplo1MV1', weight: 1, source: 'haplo1', target: 'MV1'} },
+{ data: { id: 'haplo4MV1', weight: 1, source: 'haplo4', target: 'MV1'} },
+{ data: { id: 'haplo3haplo4', weight: 1, source: 'haplo3', target: 'haplo4'} },
+{ data: { id: 'MV2MV3', weight: 1, source: 'MV2', target: 'MV3'} },
+{ data: { id: 'haplo5MV3', weight: 1, source: 'haplo5', target: 'MV3'} },
+{ data: { id: 'MV1MV2', weight: 1, source: 'MV1', target: 'MV2'} },
+{ data: { id: 'haplo8MV3', weight: 1, source: 'haplo8', target: 'MV3'} },
+
+]
+  },
+layout: {
+        name: 'cose',
+    padding: 10
+  },
+
+  ready: function(){
+    window.cy = this;
+  }
+});
+
+});
+
+</script>
+</head>
+<body>
+<div id="cy">
+</div>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/dotfile.txt	Tue Aug 14 08:04:23 2018 -0400
@@ -0,0 +1,25 @@
+graph G {
+overlap="scale";
+outputMode="nodesfirst";
+MV1 [shape="circle", color="red", width=0.1, height=0.1,fixedsize=true];
+MV2 [shape="circle", color="red", width=0.1, height=0.1,fixedsize=true];
+MV3 [shape="circle", color="red", width=0.1, height=0.1,fixedsize=true];
+haplo1 [shape="circle",style="filled", color="green" , imagescale="both", width=1.2000000000000002, height=1.2000000000000002,fixedsize=true];
+haplo2 [shape="circle",style="filled", color="green" , imagescale="both", width=0.8, height=0.8,fixedsize=true];
+haplo3 [shape="circle",style="filled", color="green" , imagescale="both", width=5.0, height=5.0,fixedsize=true];
+haplo4 [shape="circle",style="filled", color="green" , imagescale="both", width=0.8, height=0.8,fixedsize=true];
+haplo5 [shape="circle",style="filled", color="green" , imagescale="both", width=0.8, height=0.8,fixedsize=true];
+haplo6 [shape="circle",style="filled", color="green" , imagescale="both", width=0.8, height=0.8,fixedsize=true];
+haplo7 [shape="circle",style="filled", color="green" , imagescale="both", width=0.8, height=0.8,fixedsize=true];
+haplo8 [shape="circle",style="filled", color="green" , imagescale="both", width=0.8, height=0.8,fixedsize=true];
+haplo7 -- MV2 [len=0.2];
+haplo4 -- haplo6 [len=0.2];
+haplo1 -- haplo2 [len=0.2];
+haplo1 -- MV1 [len=0.2];
+haplo4 -- MV1 [len=0.2];
+haplo3 -- haplo4 [len=0.2];
+MV2 -- MV3 [len=0.6];
+haplo5 -- MV3 [len=0.8];
+MV1 -- MV2 [len=1,label="length: 6.0",color="red"];
+haplo8 -- MV3 [len=1,label="length: 24.0",color="red"];
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/filelog.txt	Tue Aug 14 08:04:23 2018 -0400
@@ -0,0 +1,31 @@
+Determine Wed Jun 13 09:59:55 CEST 2018
+Triplets calculés Wed Jun 13 09:59:55 CEST 2018
+nb MV: 1
+MV: MVhaplo1-haplo4-haplo7
+Sequence: [1, 2, 1, 3, 1, 1, 1, 3, 3, 1, 4, 3, 3, 4, 4, 3, 3, 1, 4, 1, 3, 2, 1, 4, 4, 2, 3, 4, 4, 1, 4, 4, 1, 2, 4, 1, 2, 4, 3, 1, 3]
+nb Obsolete: 0
+Determine Wed Jun 13 09:59:55 CEST 2018
+Triplets calculés Wed Jun 13 09:59:55 CEST 2018
+nb MV: 1
+MV: MVhaplo5-haplo7-MVhaplo1-haplo4-haplo7
+Sequence: [1, 2, 1, 3, 1, 1, 1, 4, 3, 1, 4, 3, 3, 4, 4, 3, 4, 1, 4, 1, 3, 2, 1, 3, 4, 2, 1, 4, 4, 1, 4, 4, 1, 2, 4, 1, 1, 4, 3, 1, 1]
+nb Obsolete: 0
+Determine Wed Jun 13 09:59:55 CEST 2018
+Triplets calculés Wed Jun 13 09:59:55 CEST 2018
+nb MV: 2
+MV: MVhaplo8-MVhaplo1-haplo4-haplo7-MVhaplo5-haplo7-MVhaplo1-haplo4-haplo7
+Sequence: [1, 2, 1, 3, 1, 1, 1, 4, 3, 1, 4, 3, 3, 4, 4, 3, 3, 1, 4, 1, 3, 2, 1, 4, 4, 2, 1, 4, 4, 1, 4, 4, 1, 2, 4, 1, 1, 4, 3, 1, 1]
+MV: MVhaplo5-haplo8-MVhaplo5-haplo7-MVhaplo1-haplo4-haplo7
+Sequence: [1, 1, 1, 3, 1, 1, 1, 4, 3, 1, 4, 4, 3, 1, 4, 3, 4, 1, 4, 1, 3, 2, 1, 3, 4, 2, 1, 4, 4, 1, 4, 4, 1, 2, 4, 1, 1, 4, 3, 1, 1]
+nb Obsolete: 1
+Obsolete: MVhaplo8-MVhaplo1-haplo4-haplo7-MVhaplo5-haplo7-MVhaplo1-haplo4-haplo7
+nb Obsolete: 0
+Determine Wed Jun 13 09:59:55 CEST 2018
+Triplets calculés Wed Jun 13 09:59:55 CEST 2018
+nb MV: 0
+nb Obsolete: 0
+Generated 3 MV
+MV1 [1, 2, 1, 3, 1, 1, 1, 3, 3, 1, 4, 3, 3, 4, 4, 3, 3, 1, 4, 1, 3, 2, 1, 4, 4, 2, 3, 4, 4, 1, 4, 4, 1, 2, 4, 1, 2, 4, 3, 1, 3]
+MV2 [1, 2, 1, 3, 1, 1, 1, 4, 3, 1, 4, 3, 3, 4, 4, 3, 4, 1, 4, 1, 3, 2, 1, 3, 4, 2, 1, 4, 4, 1, 4, 4, 1, 2, 4, 1, 1, 4, 3, 1, 1]
+MV3 [1, 1, 1, 3, 1, 1, 1, 4, 3, 1, 4, 4, 3, 1, 4, 3, 4, 1, 4, 1, 3, 2, 1, 3, 4, 2, 1, 4, 4, 1, 4, 4, 1, 2, 4, 1, 1, 4, 3, 1, 1]
+Writing output to /tmp/tmpYCq49l/files/000/dataset_4.dat
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/haplotype.fasta	Tue Aug 14 08:04:23 2018 -0400
@@ -0,0 +1,16 @@
+>haplo1|3
+GAGTGGGTTGCTTCCCTGCGTAGCCATCCGCCGACGACTGT
+>haplo2|2
+GAATGGGTTGCTTCCCTGCGTAGCCATCCGCCGACGACTGT
+>haplo3|23
+GAGTGGGTTGCTTCCTTGCGTAGCCATCCGCCAACGACTAT
+>haplo4|2
+GAGTGGGTTGCTTCCTTGCGTAGCCATCCGCCAACGACTGT
+>haplo5|2
+AGGTATACTGCCTGCTCGCGTAGTCAGCCGCCGACGGCTGG
+>haplo6|2
+GAGTGGGTTGCTTCCTTGCGTAGCCATCCACCAACGACTGT
+>haplo7|2
+GAGTGGGCTGCTTCCTCGCGTAGTCAGCCGCCGACAGCTGG
+>haplo8|2
+GGGAGGGCAAGCCGTTTTGACGACTGGTTGTTGGGGGTAGG
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/haplotype.txt	Tue Aug 14 08:04:23 2018 -0400
@@ -0,0 +1,16 @@
+haplo1:3:RS2_2,RS4_1,RS4_2,
+GAGTGGGTTGCTTCCCTGCGTAGCCATCCGCCGACGACTGT
+haplo2:2:RS9_1,RS9_2,
+GAATGGGTTGCTTCCCTGCGTAGCCATCCGCCGACGACTGT
+haplo3:23:RC1_1,RC1_2,RC2_1,RC2_2,RC4_1,RC4_2,RC5_1,RC5_2,RC6_1,RC6_2,RC7_1,RC7_2,RC10_1,RC10_2,RS2_1,RS3_1,RS3_2,RS5_1,RS5_2,RS6_1,RS6_2,RS7_1,RS7_2,
+GAGTGGGTTGCTTCCTTGCGTAGCCATCCGCCAACGACTAT
+haplo4:2:RS10_1,RS10_2,
+GAGTGGGTTGCTTCCTTGCGTAGCCATCCGCCAACGACTGT
+haplo5:2:RC3_1,RC3_2,
+AGGTATACTGCCTGCTCGCGTAGTCAGCCGCCGACGGCTGG
+haplo6:2:RS8_1,RS8_2,
+GAGTGGGTTGCTTCCTTGCGTAGCCATCCACCAACGACTGT
+haplo7:2:sativa_1,sativa_2,
+GAGTGGGCTGCTTCCTCGCGTAGTCAGCCGCCGACAGCTGG
+haplo8:2:meridionalis_1,meridionalis_2,
+GGGAGGGCAAGCCGTTTTGACGACTGGTTGTTGGGGGTAGG
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/network.txt	Tue Aug 14 08:04:23 2018 -0400
@@ -0,0 +1,15 @@
+var nodes = [
+{id: 1, label: 'Haplo1',shape:'image',radius:'3'}
+{id: 2, label: 'Haplo2',shape:'image',radius:'2'}
+{id: 3, label: 'Haplo3',shape:'image',radius:'23'}
+{id: 4, label: 'Haplo4',shape:'image',radius:'2'}
+{id: 5, label: 'Haplo5',shape:'image',radius:'2'}
+{id: 6, label: 'Haplo6',shape:'image',radius:'2'}
+{id: 7, label: 'Haplo7',shape:'image',radius:'2'}
+{id: 8, label: 'Haplo8',shape:'image',radius:'2'}
+];
+var edges = [
+{from: 4, to: 6,length:'7',style: 'line',color:'black',},
+{from: 1, to: 2,length:'7',style: 'line',color:'black',},
+{from: 3, to: 4,length:'7',style: 'line',color:'black',},
+];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/output.json	Tue Aug 14 08:04:23 2018 -0400
@@ -0,0 +1,22 @@
+{"elements": {"nodes": [{ "data": { "id": "MV1", "width": 0.1} },
+{ "data": { "id": "MV2", "width": 0.1} },
+{ "data": { "id": "MV3", "width": 0.1} },
+{ "data": { "id": "haplo1", "width": 1.2000000000000002 } },
+{ "data": { "id": "haplo2", "width": 0.8 } },
+{ "data": { "id": "haplo3", "width": 5.0 } },
+{ "data": { "id": "haplo4", "width": 0.8 } },
+{ "data": { "id": "haplo5", "width": 0.8 } },
+{ "data": { "id": "haplo6", "width": 0.8 } },
+{ "data": { "id": "haplo7", "width": 0.8 } },
+{ "data": { "id": "haplo8", "width": 0.8 } }],
+"edges": [
+{ "data": { "id": "haplo4MV1", "weight": 1, "source": "haplo4", "target": "MV1"} },
+{ "data": { "id": "haplo3haplo4", "weight": 1, "source": "haplo3", "target": "haplo4"} },
+{ "data": { "id": "haplo4haplo6", "weight": 1, "source": "haplo4", "target": "haplo6"} },
+{ "data": { "id": "haplo1MV1", "weight": 1, "source": "haplo1", "target": "MV1"} },
+{ "data": { "id": "haplo1haplo2", "weight": 1, "source": "haplo1", "target": "haplo2"} },
+{ "data": { "id": "haplo7MV2", "weight": 1, "source": "haplo7", "target": "MV2"} },
+{ "data": { "id": "MV2MV3", "weight": 1, "source": "MV2", "target": "MV3"} },
+{ "data": { "id": "haplo5MV3", "weight": 1, "source": "haplo5", "target": "MV3"} },
+{ "data": { "id": "MV1MV2", "weight": 1, "source": "MV1", "target": "MV2"} },
+{ "data": { "id": "haplo8MV3", "weight": 1, "source": "haplo8", "target": "MV3"} }]}}
\ No newline at end of file