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

View of /FigKernelScripts/FFB2_compute_relationships_for_genera.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (download) (as text) (annotate)
Tue Nov 9 22:14:29 2010 UTC (9 years ago) by olson
Branch: MAIN
CVS Tags: mgrast_dev_08112011, mgrast_dev_08022011, rast_rel_2014_0912, myrast_rel40, mgrast_dev_05262011, mgrast_dev_04082011, mgrast_version_3_2, mgrast_dev_12152011, mgrast_dev_06072011, rast_rel_2014_0729, mgrast_dev_02212011, rast_rel_2010_1206, mgrast_release_3_0, mgrast_dev_03252011, rast_rel_2011_0119, mgrast_release_3_0_4, mgrast_release_3_0_2, mgrast_release_3_0_3, mgrast_release_3_0_1, mgrast_dev_03312011, mgrast_release_3_1_2, mgrast_release_3_1_1, mgrast_release_3_1_0, mgrast_dev_04132011, mgrast_dev_04012011, myrast_33, rast_rel_2011_0928, mgrast_dev_04052011, mgrast_dev_02222011, mgrast_dev_10262011, HEAD
New FIGfam merge code.

use Data::Dumper;
use strict;
use FIG_Config;
use SeedEnv;
use Proc::ParallelLoop;

$ENV{'SAS_SERVER'} = 'PSEED';

my $sap = SAPserver->new;

my $n_workers = 2;

@ARGV == 2 or die "Usage: $0 genus-list output-dir\n";

my $genus_file = shift;
my $workdir = shift;

-d $workdir or mkdir $workdir or die "cannot mkdir $workdir: $!";

open(G, "<", $genus_file) or die "cannot open $genus_file: $!";

my $all_genomes = $sap->all_genomes();
my @all_genomes = keys %$all_genomes;

my @work;

while (<G>) {
    chomp;
    my ($genus) = /(\S+)/;

    my @genomeList = grep { $all_genomes->{$_} =~ /^$genus/ } @all_genomes;
    if (@genomeList < 2)
    {
	print "Skip $genus @genomeList\n";
	next;
    }
    push(@work, [$genus, [@genomeList]]);
}

pareach \@work, sub {
    my $work = shift;
    my($genus, $genomes) = @$work;

    my $fh;
    my $inp = "$workdir/$genus.genomes";
    open($fh, ">", $inp) or die "cannot write $inp: $!";
    print $fh "$_\n" for @$genomes;
    close($fh);
    
    my $cmd = "$FIG_Config::bin/FFB2_create_binary_relationships > $workdir/$genus.corr 2> $workdir/$genus.err < $inp";
    warn "Run $cmd\n";
    my $rc = system($cmd);
    if ($rc != 0)
    {
	die "Cmd failed with $rc: $cmd\n";
    }

    $cmd = "$FIG_Config::bin/cluster_objects < $workdir/$genus.corr > $workdir/$genus.clusters 2> $workdir/$genus.cluster.err";
    warn "Run $cmd\n";
    my $rc = system($cmd);
    if ($rc != 0)
    {
	die "Cmd failed with $rc: $cmd\n";
    }
}, { Max_Workers => $n_workers };

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3