###
### Important: get the xml file form the server.
###
-getProjectsXML($parm);
+my $projects_file = getProjectsXML($parm);
my $xmldoc = XML::Simple->new();
-my $xmlfile = "Projects.xml";
+my $xmlfile = $projects_file;
my $xml = $xmldoc->XMLin($xmlfile, ForceArray => ['Project','ComparePeakCalls','CompareLibraries','PeakCalling','ProfileReads','qPCR','MotifFinding'], KeepRoot=>1);
my $projects = "";
open(MAKE,">$data_dir/Projects/TaskMakefile");
print MAKE "all: $unique_task_dirs\n\n.PHONY: $unique_task_dirs\n\n";
-for(split(/ /,$unique_tasks)) { print MAKE "../Tasks/$_:\n\t".'if ! $(MAKE) -C $@; then $root_dir/scripts/analys_track_main.py updsts '.$_.' "Error"; fi;'."\n\n"; }
+for(split(/ /,$unique_tasks)) { print MAKE "../Tasks/$_:\n\t".'if ! $(MAKE) -C $@; then '.$root_dir.'/scripts/analys_track_main.py updsts '.$_.' "Error"; fi;'."\n\n"; }
close(MAKE);
print STDERR "Task makefile complete\n";
print STDERR "Project makefile compete. Starting to build tasks\n";
-##`make -j 2 -f TaskMakefile > make_tasks.log 2> make_tasks.err`;
+`make -j 4 -f TaskMakefile > make_tasks.log 2> make_tasks.err`;
sub writeProject {
my $project = shift;
print STDERR "Created directory $projectdir\n";
- $xmldoc->XMLout($project, OutputFile=>"$data_dir/Projects/Project.xml", RootName=>"Project", XMLDecl=>1);
+ $xmldoc->XMLout($project, OutputFile=>"$data_dir/Projects/$projectid/Project.xml", RootName=>"Project", XMLDecl=>1);
print STDERR "Wrote configureation for project $projectdir\n";
$cmds .= "\t$seqcheck\n";
$cmds .= "\t".$PROFILEDIR.'/profile_reads_wig ~Data/Libraries/'.$lib.'.txt "'.$name.'" "'.$name.'" | gzip > '.$lib.'.wig.gz';
$cmds .= "\n\n";
- $cmds .= $lib.'.profile.gif: ~Data/Libraries/'.$lib.'.txt $root_dir/scripts/profile_reads/'.$genome.'_tx_start_sites'."\n";
- $cmds .= "\t".$PROFILEDIR.'/profile_reads_against_features $^ | $root_dir/scripts/profile_to_svg.pm | /opt/local/bin/convert - $@'."\n";
+ $cmds .= $lib.'.profile.gif: ~Data/Libraries/'.$lib.'.txt '.$root_dir.'/reference_data/'.$genome.'_tx_start_sites'."\n";
+ $cmds .= "\t".$PROFILEDIR.'/profile_reads_against_features $^ | '.$root_dir.'/scripts/profile_to_svg.pm | /opt/local/bin/convert - $@'."\n";
$cmds .= "\n";
writeTask($profile, "ProfileReads", $outfile, $cmds);
$cmd .= "\t$seqcheck\n";
$cmd .= "\trm -f background_RX_noIP.align.txt\n";
$cmd .= "\trm -f pseudo_ChIP_RX_noIP.align.txt\n";
- $cmd .= "\t".$QUESTDIR.'/generate_QuEST_parameters.pl -rp '.$GENOMEDIR.'/QuEST_'.$genome.' -solexa_align_ChIP ~Data/Libraries/'.$signal.'.txt -solexa_align_RX_noIP ~Data/Libraries/'.$bg.'.txt -ap ./ -silent > '.$name.'.QuEST.log;'."\n";
+ $cmd .= "\t".$QUESTDIR.'/generate_QuEST_parameters.pl -rp '.$GENOMEDIR.'/QuEST_'.$genome.' -solexa_align_ChIP ~Data/Libraries/'.$signal.'.txt -solexa_align_RX_noIP ~Data/Libraries/'.$bg.'.txt -ap '.$data_dir.'/Tasks/'.$task.' -silent > '.$name.'.QuEST.log;'."\n";
$cmd .= "\t".$QUESTDIR.'/run_QuEST_with_param_file.pl -p QuEST.batch.pars >> '.$name.'.QuEST.log;'."\n";
$cmd .= "\t".'rm -rf scores;'."\n\n";
$cmd .= "\t$root_dir/scripts/QuEST_2_BED.pm \$< $name\n";
$cmd .= "peak_caller.ChIP.out.fasta: peak_caller.ChIP.out.tab\n";
- $cmd .= "\t".'cat $< | $root_dir/scripts/extract_peaks.pm $root_dir/reference_data/hg18_chrom_list.txt > $@'."\n";
+ $cmd .= "\t".'cat $< | '.$root_dir.'/scripts/extract_peaks.pm '.$root_dir.'/reference_data/hg18_chrom_list.txt > $@'."\n";
} elsif($caller eq "WingPeaks") {
$outfile .= "$name.peaks $name.peaks.fasta ";
$cmd .= "\t".'cat $< | awk \'{ print $$1"\t"$$2"\t"$$3"\t"$$4"\t"$$7}\' > $@'."\n\n";
$cmd .= "%.peaks.fasta: %.peaks.tab\n";
- $cmd .= "\t".'cat $< | $root_dir/scripts/extract_peaks.pm $root_dir/reference_data/hg18_chrom_list.txt > $@'."\n\n";
+ $cmd .= "\t".'cat $< | '.$root_dir.'/scripts/extract_peaks.pm '.$root_dir.'/reference_data/hg18_chrom_list.txt > $@'."\n\n";
} elsif($caller eq "MACS") {
$outfile .= $name."_peaks.bed ".$name."_peaks.fasta ";
$cmd .= $name."_peaks.bed: ~Data/Libraries/$signal.txt ~Data/Libraries/$bg.txt\n";
$cmd .= "\t$seqcheck\n";
- $cmd .= "\tcat ~Data/Libraries/$signal.txt | $MACSDIR/align_to_bed.pm > $signal.bed\n";
- $cmd .= "\tcat ~Data/Libraries/$bg.txt | $MACSDIR/align_to_bed.pm > $bg.bed\n";
+ $cmd .= "\tcat ~Data/Libraries/$signal.txt | $root_dir/scripts/align_to_bed.pm > $signal.bed\n";
+ $cmd .= "\tcat ~Data/Libraries/$bg.txt | $root_dir/scripts/align_to_bed.pm > $bg.bed\n";
$cmd .= "\t$MACSDIR/macs -t $signal.bed -c ./$bg.bed --name=$name --pvalue=1e-10 > $name.log 2> $name.err\n";
$cmd .= "\t".'echo "track name="'.$name.'" description="'.$name.'"GR_EtOH_Rep2_Peak_Calls" > header';
$cmd .= "\t".'cat header '.$name.'_peaks.bed > t; mv t '.$name.'_peaks.bed'."\n";
$cmd .= "\t".'cat $< | awk \'{print NR"\t"$$1"\t"$$2"\t"$$3"\t1"}\' > $@'."\n\n";
$cmd .= "%_peaks.fasta: %_peaks.tab\n";
- $cmd .= "\t".'cat $< | $root_dir/scripts/extract_peaks.pm $root_dir/reference_data/hg18_chrom_list.txt > $@'."\n\n";
+ $cmd .= "\t".'cat $< | '.$root_dir.'/scripts/extract_peaks.pm '.$root_dir.'/reference_data/hg18_chrom_list.txt > $@'."\n\n";
}
writeTask($peakcall, "PeakCalling", $outfile, $cmd);
sub getProjectsXML {
my $option = shift;
+ my $dir= "$data_dir/Projects";
+ my $filename = "$dir/Projects.xml";
if(!defined($option)) { $option = ""; }
- `$root_dir/scripts/analys_track_main.py getProjects $option`;
- `cat Projects.xml | sed -e "s/\&/_and_/" > t; mv t Projects.xml`;
+ `$root_dir/scripts/analys_track_main.py getProjects $option $dir`;
+ `cat $filename | sed -e "s/\&/_and_/" > t; mv t $filename`;
+ return $filename;
}