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

Annotation of /FigKernelScripts/align_with_clustal.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (view) (download) (as text)

1 : overbeek 1.6
2 : efrank 1.1 # -*- perl -*-
3 :    
4 :     use Carp;
5 :     use Data::Dumper;
6 :     use tree_utilities;
7 :     use FIG;
8 :    
9 :     my $fig = new FIG;
10 :    
11 :     $| = 1;
12 :    
13 : overbeek 1.6 $usage = "align_with_clustal [-org] [-func[=user]] [-tree] [-UniProt] [-save=Dir] Id1 Id2 ... ";
14 : efrank 1.1
15 : gdpusch 1.3 (@ARGV > 1) || die "usage: $usage";
16 : efrank 1.1
17 :     my $temp_dir = $FIG_Config::temp;
18 :     my $file = "$temp_dir/tmp$$";
19 :     my $relabel = {};
20 : overbeek 1.4 my $save = "";
21 : overbeek 1.6 my $uni_prot = "";
22 : efrank 1.1
23 : gdpusch 1.3 while ($ARGV[0] =~ m/^-/)
24 : efrank 1.1 {
25 : gdpusch 1.3 if ($ARGV[0] =~ /-org/)
26 :     {
27 :     $add_org = shift @ARGV;
28 :     }
29 : overbeek 1.4 elsif ($ARGV[0] =~ /-save=(\S+)/)
30 :     {
31 :     $save = $1;
32 : overbeek 1.5 shift @ARGV;
33 : overbeek 1.4 }
34 : gdpusch 1.3 elsif ($ARGV[0] =~ /-func/)
35 :     {
36 :     $add_func = shift @ARGV;
37 :     if ($add_func =~ m/=(\S+)/) { $user = $1; }
38 :     }
39 :     elsif ($ARGV[0] =~ /-tree/)
40 :     {
41 :     $tree = shift @ARGV;
42 :     }
43 : overbeek 1.6 elsif ($ARGV[0] =~ /-UniProt/i)
44 :     {
45 :     $uni_prot = 1;
46 :     shift @ARGV;
47 :     }
48 : gdpusch 1.3 else
49 :     {
50 :     $trouble = 1;
51 :     print STDERR "Invalid flag $ARGV[0]\n";
52 :     shift @ARGV;
53 :     }
54 : efrank 1.1 }
55 : gdpusch 1.3 die "\nusage: $usage\n\n" if $trouble;
56 : efrank 1.1
57 :     open(TMP,">$file.fasta") || die "could not open $file";
58 :     foreach $id (@ARGV)
59 :     {
60 : overbeek 1.2 next if ($seen{$id});
61 : gdpusch 1.3 $seen{$id} = 1;
62 :    
63 : efrank 1.1 if ($seq = $fig->get_translation($id))
64 :     {
65 :     print TMP ">$id\n$seq\n";
66 : gdpusch 1.3 $func = $fig->function_of($id, $user);
67 :     $org = $fig->org_of($id);
68 : efrank 1.1 }
69 :     else
70 :     {
71 :     print STDERR "could not find translation for $id\n";
72 :     }
73 : gdpusch 1.3
74 :     $label = $id;
75 : overbeek 1.6 if ($uni_prot && ($_ = $fig->to_alias($id,"uni"))) { $label .= " [$_]" }
76 : gdpusch 1.3 if ($add_org && $org) { $label .= " [$org]"; }
77 :     if ($add_func && $func) { $label .= " $func"; }
78 :    
79 :     $relabel->{$id} = $label;
80 : efrank 1.1 }
81 :     close(TMP);
82 : gdpusch 1.3 # print STDERR "$0;\n", Dumper($relabel);
83 : efrank 1.1
84 :     system "$FIG_Config::ext_bin/clustalw -infile=$file.fasta -align -outorder=aligned > /dev/null";
85 :     print `cat $file.aln`;
86 :     if ($tree)
87 :     {
88 :     print "=======================================================================\n\n\n";
89 :     $tree = "";
90 :    
91 :     if (-s "$file.dnd")
92 :     {
93 :     @treefile = `cat $file.dnd`;
94 :     if (@treefile && ($tree = &parse_newick_tree(join("",@treefile))))
95 :     {
96 :     $tree = &display_tree($tree,$relabel);
97 :     }
98 :     }
99 :     print "$tree\n";
100 :     }
101 : overbeek 1.5
102 : overbeek 1.4 if ($save)
103 :     {
104 :     system "cp $file.fasta \"$save/seqs\"";
105 :     system "cp $file.aln \"$save/aln\"";
106 :     system "cp $file.dnd \"$save/tree\"";
107 :     }
108 : efrank 1.1 unlink("$file.fasta","$file.aln","$file.dnd");

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3