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

View of /FigKernelScripts/FFB2_merge_oligos.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (download) (as text) (annotate)
Fri Oct 29 17:10:34 2010 UTC (9 years, 4 months 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
Changes since 1.3: +4 -3 lines
Update to FF processing

########################################################################
#
# Copyright (c) 2003-2006 University of Chicago and Fellowship
# for Interpretations of Genomes. All Rights Reserved.
#
# This file is part of the SEED Toolkit.
# 
# The SEED Toolkit is free software. You can redistribute
# it and/or modify it under the terms of the SEED Toolkit
# Public License. 
#
# You should have received a copy of the SEED Toolkit Public License
# along with this program; if not write to the University of Chicago
# at info@ci.uchicago.edu or the Fellowship for Interpretation of
# Genomes at veronika@thefig.info or download a copy from
# http://www.theseed.org/LICENSE.TXT.
#
########################################################################

use strict;
use FileHandle;

my $usage = "usage: FFB2_merge_oligos ProtOligos PhyloSigOligos > Oligos.to.use";

my($oligosProt,$oligosPhylo,$OligosMerged);
(
 ($oligosProt  = shift @ARGV) && 
 ($oligosPhylo = shift @ARGV)
)
    || die $usage;

my $prot_fh = open_file($oligosProt);
my $phylo_fh = open_file($oligosPhylo);

my $x = <$prot_fh>;
my $y = <$phylo_fh>;
while ($x && ($x =~ /^(\S+)\t(\d+)\t(\d+)?/))
{
    my $oligo = $1;
    my $frI   = $2;
    my $fam   = $4;

    if ($y)
    {
	if ($y =~ /^(\S+)\t(\d+)/)
	{
	    if ($1 eq $oligo)
	    {
		print join("\t",($oligo,$frI,$2,$fam)),"\n";
		$y = <$phylo_fh>;
		$x = <$prot_fh>;
	    }
	    elsif ($1 lt $oligo)
	    {
		$y = <$phylo_fh>;
	    }
	    elsif ($1 gt $oligo)
	    {
		print join("\t",($oligo,$frI,0)),"\n";
		$x = <$prot_fh>;
	    }
	}
	else
	{
	    die "BAD: $y";
	}
    }
    else
    {
	print join("\t",($oligo,$frI,0,$fam)),"\n";
	$x = <$prot_fh>;
    }
}
	    
close($prot_fh);
close($phylo_fh);

sub open_file
{
    my($file) = @_;
    my $fh;

    if (! -f $file && -f "$file.gz")
    {
	$file = "$file.gz";
    }

    if ($file =~ /\.gz/)
    {
	$fh = FileHandle->new("gunzip -c $file |");
	$fh or die "Cannot open gunzip pipe from $file: $!";
    }
    else
    {
	$fh = FileHandle->new($file);
	$fh or die "Cannot open $file: $!";
    }
    return $fh;
}
	

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3