| 
					
				 | 
			
			
				@@ -756,6 +756,8 @@ function convert_tsv2gff3($blast_tsv,$blast_gff){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!$last_q or  $q != $last_q) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           $count++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           $hsp=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          printGFF_parent_children($gff,$IDs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          $IDs = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $q_strand = '+'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if ($qs > $qe) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -782,21 +784,34 @@ function convert_tsv2gff3($blast_tsv,$blast_gff){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $last_q = $q; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    printGFF_parent_children($gff,$IDs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // Now can print a parent gff line and all the children. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // Note: the evalues seem to be sorted properly without actually sorting them. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // @todo: need to make sure this is always true. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  foreach ($IDs as $sq => $value ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//  foreach ($IDs as $sq => $value ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    list ($s,$q) = preg_split('/,/' , $sq); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    $evalue =  $IDs["$s,$q"]['E']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    $parent =  join ("\t", array($s, "BLASTRESULT" , "match" , $IDs["$s,$q"]['SS'] , $IDs["$s,$q"]['SE'] , $IDs["$s,$q"]['E'] , $IDs["$s,$q"]['strand'] , '.' , "ID=$s.$count;Name=$q($evalue)")) . "\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    $child = join ("\n",$IDs[$sq]['HSPs']) . "\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    fwrite($gff,$parent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    fwrite($gff,$child); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // Close the files. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  fclose($tsv); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  fclose($gff); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function printGFF_parent_children ($gff,$blast_feature_array){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  foreach ($blast_feature_array as $sq => $value ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     list ($s,$q) = preg_split('/,/' , $sq); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $evalue =  $IDs["$s,$q"]['E']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $parent =  join ("\t", array($s, "BLASTRESULT" , "match" , $IDs["$s,$q"]['SS'] , $IDs["$s,$q"]['SE'] , $IDs["$s,$q"]['E'] , $IDs["$s,$q"]['strand'] , '.' , "ID=$s.$count;Name=$q($evalue)")) . "\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $child = join ("\n",$IDs[$sq]['HSPs']) . "\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $evalue =  $blast_feature_array["$s,$q"]['E']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $parent =  join ("\t", array($s, "BLASTRESULT" , "match" , $blast_feature_array["$s,$q"]['SS'] , $blast_feature_array["$s,$q"]['SE'] , $blast_feature_array["$s,$q"]['E'] , $blast_feature_array["$s,$q"]['strand'] , '.' , "ID=$s.$count;Name=$q($evalue)")) . "\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $child = join ("\n",$blast_feature_array[$sq]['HSPs']) . "\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     fwrite($gff,$parent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     fwrite($gff,$child); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Close the files. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  fclose($tsv); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  fclose($gff); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |