Added framework for methylseq analysis.
[htsworkflow.git] / htswanalysis / scripts / ConfigureTasks.pm
index b250f39a5601eb0b76aea04acfd58d4ce9c94ca0..869af453954d623c046d8eed9f8d27ff31500320 100755 (executable)
@@ -36,6 +36,7 @@ my $WINGPEAKSGENOMEDIR = "$root_dir/reference_data";
 my $PROFILEDIR = "$root_dir/bin";
 my $GENOMEDIR = "/Volumes/Genomes";
 my $QPCRDIR = "$root_dir/bin";
+my $METHYLSEQDIR = "$root_dir/bin";
 my $QPCRTESTDIR = "$root_dir/reference_data/qPCR_Tests";
 my $QPCRBACKGROUND = "$root_dir/reference_data/GenericBackground";
 
@@ -56,7 +57,7 @@ my $projects_file = getProjectsXML($parm);
 my $xmldoc = XML::Simple->new();
 
 my $xmlfile = $projects_file;
-my $xml = $xmldoc->XMLin($xmlfile, ForceArray => ['Project','ComparePeakCalls','CompareLibraries','PeakCalling','ProfileReads','qPCR','MotifFinding'], KeepRoot=>1);
+my $xml = $xmldoc->XMLin($xmlfile, ForceArray => ['Project','MethylSeq', 'ComparePeakCalls','CompareLibraries','PeakCalling','ProfileReads','qPCR','MotifFinding'], KeepRoot=>1);
 
 my $projects = "";
 
@@ -109,6 +110,7 @@ sub writeProject {
   my $projectdir = $projectid;
 
   my $tasks = "";
+  $tasks .= WriteMethylseqTasks($project);
   $tasks .= WriteQPCRTasks($project);
   $tasks .= WriteProfileTasks($project);
   $tasks .= WriteCompareLibTasks($project);
@@ -164,6 +166,39 @@ sub writeTask {
   registerTask($taskid);
 }
 
+sub WriteMethylseqTasks {
+  my $project = shift;
+  my $root = "Methylseq";
+  my $tasks = "";
+  if(exists($project->{$root})) {
+    for my $mseq (@{$project->{$root}}) {
+      my $task   = $mseq->{TaskId};
+      my $genome = $mseq->{Genome};
+      my $name   = $mseq->{Name}; $name =~ tr/ \(\)\./____/;
+
+      my $msp1   = $mseq->{Msp1}->{Library};
+      my $hpa2   = $mseq->{Hpa2}->{Library};
+
+      my $outfile = "methylseq_summary";
+  
+      my $seqcheck  = "if [ ! -e $data_dir/Libraries/$msp1.txt ]; then $root_dir/scripts/analys_track_main.py updsts $task \"Waiting for sequencing.\"; fi;"; 
+         $seqcheck .= "if [ ! -e $data_dir/Libraries/$hpa2.txt ]; then $root_dir/scripts/analys_track_main.py updsts $task \"Waiting for sequencing.\"; fi;"; 
+         $seqcheck .= "if [ ! -e $root_dir/reference_data/".$genome."_methylseq_regions ]; then $root_dir/scripts/analys_track_main.py updsts $task \"No methylseq regions available for $genome.\"; fi;"; 
+
+      my $cmd  = "$outfile: $data_dir/Libraries/$msp1.txt $data_dir/Libraries/$hpa2.txt\n";
+         $cmd .= "\t$METHYLSEQDIR/Methylseq_Analysis $data_dir/Libraries/$msp1.txt $root_dir/reference_data/".$genome."_methylseq_regions $data_dir/Libraries/$hpa2.txt > \$@\n";
+      writeTask($mseq, $root, $outfile, $cmd, $seqcheck);
+
+      $tasks .= $task." ";
+    }
+  }
+  return $tasks;
+}
+
+sub WriteProfileTasks {
+
+} 
+
 sub WriteQPCRTasks {
   my $project = shift;
   my $tasks = "";