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

View of /FigKernelScripts/align_with_clustal.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.8 - (download) (as text) (annotate)
Mon Dec 5 18:56:37 2005 UTC (13 years, 11 months ago) by olson
Branch: MAIN
CVS Tags: mgrast_dev_08112011, rast_rel_2009_05_18, mgrast_dev_08022011, rast_rel_2014_0912, rast_rel_2008_06_18, myrast_rel40, rast_rel_2008_06_16, mgrast_dev_05262011, rast_rel_2008_12_18, mgrast_dev_04082011, rast_rel_2008_07_21, rast_rel_2010_0928, rast_2008_0924, mgrast_version_3_2, mgrast_dev_12152011, rast_rel_2008_04_23, mgrast_dev_06072011, rast_rel_2008_09_30, rast_rel_2009_0925, rast_rel_2010_0526, rast_rel_2014_0729, mgrast_dev_02212011, rast_rel_2010_1206, caBIG-05Apr06-00, mgrast_release_3_0, mgrast_dev_03252011, rast_rel_2010_0118, mgrast_rel_2008_0924, mgrast_rel_2008_1110_v2, rast_rel_2009_02_05, rast_rel_2011_0119, mgrast_rel_2008_0625, 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, rast_rel_2008_10_09, mgrast_dev_04012011, rast_release_2008_09_29, mgrast_rel_2008_0806, mgrast_rel_2008_0923, mgrast_rel_2008_0919, rast_rel_2009_07_09, rast_rel_2010_0827, mgrast_rel_2008_1110, myrast_33, rast_rel_2011_0928, rast_rel_2008_09_29, mgrast_rel_2008_0917, rast_rel_2008_10_29, mgrast_dev_04052011, mgrast_dev_02222011, caBIG-13Feb06-00, rast_rel_2009_03_26, mgrast_dev_10262011, rast_rel_2008_11_24, rast_rel_2008_08_07, HEAD
Changes since 1.7: +17 -0 lines
Add license words.

# -*- perl -*-
#
# 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 Carp;
use Data::Dumper;
use tree_utilities;
use FIG;

my $fig = new FIG;

$| = 1;

$usage = "align_with_clustal [-org] [-func[=user]] [-tree] [-UniProt] [-save=Dir] Id1 Id2 ... ";

(@ARGV > 1) || die "usage: $usage";

my $temp_dir = $FIG_Config::temp;
my $file     = "$temp_dir/tmp$$";
my $relabel  = {};
my $save = "";
my $uni_prot = "";

while ($ARGV[0] =~ m/^-/)
{
    if ($ARGV[0] =~ /-org/)
    {
	$add_org = shift @ARGV;
    }
    elsif ($ARGV[0] =~ /-save=(\S+)/)
    {
	$save = $1;
	shift @ARGV;
    }
    elsif ($ARGV[0] =~ /-func/)
    {
	$add_func = shift @ARGV;
	if ($add_func =~ m/=(\S+)/)  { $user = $1; }
    }
    elsif ($ARGV[0] =~ /-tree/)
    {
	$tree =	shift @ARGV;
    }
    elsif ($ARGV[0] =~ /-UniProt/i)
    {
	$uni_prot = 1;
	shift @ARGV;
    }
    else
    {
	$trouble = 1;
	print STDERR "Invalid flag $ARGV[0]\n";
	shift @ARGV;
    }
}
die "\nusage: $usage\n\n" if $trouble;

open(TMP,">$file.fasta") || die "could not open $file";
foreach $id (@ARGV)
{
    next if ($seen{$id});
    $seen{$id} = 1;
    
    if ($seq = $fig->get_translation($id))
    {
	print TMP ">$id\n$seq\n";
	$func = $fig->function_of($id, $user);
	$org  = $fig->org_of($id);
    }
    else
    {
	print STDERR "could not find translation for $id\n";
    }
    
    $label = $id;
    if ($uni_prot && ($_ = $fig->to_alias($id,"uni")))  { $label .= " [$_]" }
    if ($add_org && $org)    { $label .= " [$org]"; }
    if ($add_func && $func)  { $label .= " $func"; }
    
    $relabel->{$id} = $label;
}
close(TMP);
# print STDERR "$0;\n", Dumper($relabel);

system "$FIG_Config::ext_bin/clustalw -infile=$file.fasta -align -outorder=aligned > /dev/null";
print `cat $file.aln`;
if ($tree)
{
    print "=======================================================================\n\n\n";
    $tree = "";
 
    if (-s "$file.dnd")
    {
        @treefile = `cat $file.dnd`;
        if (@treefile && ($tree = &parse_newick_tree(join("",@treefile))))
        {
            $tree = &display_tree($tree,$relabel);
        }
    }
    print "$tree\n";
}

if ($save)
{
    system "cp $file.fasta \"$save/seqs\"";
    system "cp $file.aln \"$save/aln\"";
    system "cp $file.dnd \"$save/tree\"";
}
unlink("$file.fasta","$file.aln","$file.dnd");

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3