[Bio] / FigKernelScripts / ma_pipeline.pl Repository:
ViewVC logotype

View of /FigKernelScripts/ma_pipeline.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.11 - (download) (as text) (annotate)
Sat Jun 5 15:38:44 2010 UTC (9 years, 6 months ago) by overbeek
Branch: MAIN
Changes since 1.10: +2 -1 lines
minor fix

use strict;
use Data::Dumper;

my $usage = "usage: ma_pipeline Genome RMA-key";

my($genome,$orgD);
(
 ($genome = shift @ARGV) && ($orgD = "$FIG_Config::organisms/$genome")
 )
    || die $usage;

(-d $orgD) || die "invalid organism directory";

(my $rma_key = shift @ARGV) 
    || die $usage;

my $exp_ed = "$orgD/UserSpace/ExpressionData";
(-d $exp_ed)
    || die "Where is $exp_ed?";
(-s "$exp_ed/probes")
    || die "Where is $exp_ed/probes?";
(-s "$orgD/contigs")
    || die "Where is $orgD/contigs?";
(-s "$orgD/Features/peg/tbl")
    || die "Where is $orgD/Features/peg/tbl?";

my $tbl = (-s "$exp_ed/tbl") ? "$exp_ed/tbl" : "$orgD/Features/peg/tbl";
&run("make_probes_to_genes $exp_ed/probes $orgD/contigs $tbl $exp_ed/peg.probe.table $exp_ed/probe.occ.table 2> $exp_ed/problems");
&run("remove_multiple_occurring_probes $exp_ed/peg.probe.table $exp_ed/probe.occ.table > $exp_ed/peg.probe.table.no.multiple");
chdir $exp_ed;

&make_missing_probes("$exp_ed/peg.probe.table.no.multiple", "$exp_ed/probes", "$exp_ed/probe.no.match");

&run("Rscript $FIG_Config::bin/RunRMA.R $rma_key $exp_ed $exp_ed/Experiments 2> $exp_ed/stderr.RMA");
&run("$FIG_Config::bin/call_coregulated_clusters_on_chromosome $genome $exp_ed/raw_data.tab > $exp_ed/coregulated.clusters 2> $exp_ed/stderr.coregulated.clusters");
&run("$FIG_Config::bin/make_coreg_conjectures_based_on_subsys  $genome $exp_ed/raw_data.tab > $exp_ed/coregulated.subsys   2> $exp_ed/stderr.coregulated.subsys");
&run("cat $exp_ed/coregulated.clusters $exp_ed/coregulated.subsys | cut -f1 | $FIG_Config::bin/merge_gene_sets | filter_on_known $exp_ed/raw_data.tab > $exp_ed/merged.clusters");

&run("get_ON_probes $genome $exp_ed/probe.occ.table $exp_ed/peg.probe.table $exp_ed/raw_data.tab > $exp_ed/probes.always.on");
&run("cut -f2 $exp_ed/probes.always.on | sort -u > $exp_ed/pegs.always.on");
&run("Rscript $FIG_Config::bin/Pipeline.R $exp_ed/pegs.always.on $exp_ed/merged.clusters > $exp_ed/comments.by.Pipeline.R");
&run("Rscript $FIG_Config::bin/SplitGeneSets.R $exp_ed/merged.clusters 0.7 > $exp_ed/split.clusters");
&run("$FIG_Config::bin/compute_atomic_regulons $genome");

sub make_missing_probes
{
    my($probe_table, $probes, $output) = @_;
    open(MATCH,"<", $probe_table) or die "Cannot open $probe_table: $!";
    open(PROBES,"<", $probes) or die "Cannot open $probes: $!";
    open(OUTPUT, ">", $output) or die "Cannot open $output: $!";
    my %locations;
    while(<MATCH>)
    {
	chomp;
	my($peg,$loc)=split "\t";
	$locations{$loc} = $peg;
    }
    
    while(<PROBES>)
    {
	chomp;
	my($loc,$seq) = split "\t";
	print OUTPUT $loc, "\n" if ! exists $locations{$loc};
    }
    close(MATCH);
    close(PROBES);
    close(OUTPUT);
}

sub run {
    shift if UNIVERSAL::isa($_[0],__PACKAGE__);
    my($cmd) = @_;

    if ($ENV{FIG_VERBOSE}) {
        my @tmp = `date`;
        chomp @tmp;
        print STDERR "$tmp[0]: running $cmd\n";
    }
    (system($cmd) == 0) || die("FAILED: $cmd");
}


MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3