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

View of /FigKernelScripts/FFB2_validate_families.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (download) (as text) (annotate)
Fri Oct 29 17:10:34 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
Update to FF processing

use strict;

=head1 NAME

FFB2_validate_families - make sure families files are ok

=head1 SYNOPSIS

  FFB2_validate_families FFdir new-families.2c new-family.functions

=head1 DESCRIPTION

Read the family files from the given directory, and do some basic verification:

=over 4

=item * Make sure that each family represented in the families.2c file
has an associated function  in the family.functions file.

=item * Remove any entries in the family.functions file for families
that no longer exist in families.2c.

=back

=cut

@ARGV == 3 or die "Usage: FFB2_validate_families ffdir new-families.2c new-family.functions\n";

my $ffdir = shift;
my $new_fam2c = shift;
my $new_func = shift;

open(FUNCS, "<", "$ffdir/family.functions") or die "Cannot open $ffdir/family.functions: $!";
open(F2C, "<", "$ffdir/families.2c") or die "Cannot open $ffdir/families.2c: $!";
open(NFUNCS, ">", $new_func) or die "Cannot open $new_func for writing: $!";
open(NF2C, ">", $new_fam2c) or die "Cannot open $new_fam2c for writing: $!";

my %fams;

while (<F2C>)
{
    if (/^(FIG\S+)/)
    {
	$fams{$1}++;
    }
    print NF2C $_;
}
close(F2C);
close(NF2C);

while (<FUNCS>)
{
    if (/^(FIG\S+)/)
    {
	my $fam = $1;
	if (exists $fams{$fam})
	{
	    print NFUNCS $_;
	    delete $fams{$fam};
	}
	else
	{
	    print STDERR "No family found for $fam\n";
	}
    }
}

if (%fams)
{
    print STDERR "family.functions entries missing for the following families:\n";
    print STDERR "$_\n" for sort { $a cmp $b } keys %fams;
    exit 1;
}
    





MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3