[Bio] / RegSubMa / rp_glue_contigs.pl Repository:
ViewVC logotype

View of /RegSubMa/rp_glue_contigs.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (download) (as text) (annotate) (vendor branch)
Wed Apr 4 17:08:51 2007 UTC (13 years, 1 month ago) by mkubal
Branch: MAIN, fig
CVS Tags: v_1_0_0, HEAD
Changes since 1.1: +0 -0 lines
initial checkin

#
# Glue split scaffolded contigs back together.
#

use strict;
use FIG;
use FIG_Config;
use File::Basename;
use GenomeMeta;

@ARGV == 1 or die "Usage: $0 job-dir\n";

my $jobdir = shift;

-d $jobdir or die "$0: job dir $jobdir does not exist\n";

my $genome = &FIG::file_head("$jobdir/GENOME_ID");
chomp $genome;
$genome =~ /^\d+\.\d+/ or die "$0: Cannnot find genome ID for jobdir $jobdir\n";

my $job = basename($jobdir);

my $meta_file = "$jobdir/meta.xml";
my $meta = new GenomeMeta($genome, $meta_file);

my $raw_dir = "$jobdir/raw/$genome";
my $rp_dir = "$jobdir/rp/$genome";

my $errdir = "$jobdir/rp.errors";
&FIG::verify_dir($errdir);

if (! -d $raw_dir)
{
    &fatal("raw genome directory $raw_dir does not exist");
}

if (! -d $rp_dir)
{
    &fatal("processed genome directory $rp_dir does not exist");
}

#
# Replace the original scaffolded contigs.
#

my $new_contigs = "$rp_dir/contigs";
my $raw_contigs = "$rp_dir/unformatted_contigs";
my $split_contigs = "$rp_dir/split_contigs";
my $scaffold_map = "$rp_dir/scaffold.map";

-f $scaffold_map or &fatal("cannot find scaffold map file $scaffold_map");
-f $new_contigs or &fatal("cannot find new contigs file $new_contigs");
-f $raw_contigs or &fatal("cannot find raw contigs file $raw_contigs");

#
# Contigs moves to split_contigs for future reference.
# Unformatted contigs get formatted into contigs.
# When all is complete, map_to_scaffolds is run to fix the tbl files.
#

rename($new_contigs, $split_contigs) or &fatal("cannot rename $new_contigs $split_contigs: $!");

my @cmd = ("$FIG_Config::bin/map_to_scaffold", $scaffold_map, $rp_dir);
print "Run @cmd\n";
$meta->add_log_entry($0, ['running', @cmd]);

my $rc = system(@cmd);
if ($rc != 0)
{
    &fatal("map_to_scaffold failed with rc=$rc: @cmd");
}

my $reformat_log = "$errdir/reformat_contigs_glue.stderr";

my @cmd = ("$FIG_Config::bin/reformat_contigs", "-v", "-logfile=$reformat_log", $raw_contigs, $new_contigs);

print "Run @cmd\n";

$meta->add_log_entry($0, ['running', @cmd]);

my $rc = system(@cmd);
if ($rc != 0)
{
    &fatal("reformat command failed with rc=$rc: @cmd\n");
}


$meta->add_log_entry($0, "glue_contigs completed\n");
$meta->set_metadata("glue_contigs.running", "no");
$meta->set_metadata("status.glue_contigs", "complete");

exit;

sub fatal
{
    my($msg) = @_;

    $meta->add_log_entry($0, ['fatal error', $msg]);
    $meta->set_metadata("status.glue_contigs", "error");

    croak "$0: $msg";
}
    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3