[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.3 - (view) (download) (as text)

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

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3