[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.4 - (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 : overbeek 1.4 $usage = "align_with_clustal [-org] [-func[=user]] [-tree] [-save=Dir] 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 : overbeek 1.4 my $save = "";
20 : efrank 1.1
21 : gdpusch 1.3 while ($ARGV[0] =~ m/^-/)
22 : efrank 1.1 {
23 : gdpusch 1.3 if ($ARGV[0] =~ /-org/)
24 :     {
25 :     $add_org = shift @ARGV;
26 :     }
27 : overbeek 1.4 elsif ($ARGV[0] =~ /-save=(\S+)/)
28 :     {
29 :     $save = $1;
30 :     }
31 : gdpusch 1.3 elsif ($ARGV[0] =~ /-func/)
32 :     {
33 :     $add_func = shift @ARGV;
34 :     if ($add_func =~ m/=(\S+)/) { $user = $1; }
35 :     }
36 :     elsif ($ARGV[0] =~ /-tree/)
37 :     {
38 :     $tree = shift @ARGV;
39 :     }
40 :     else
41 :     {
42 :     $trouble = 1;
43 :     print STDERR "Invalid flag $ARGV[0]\n";
44 :     shift @ARGV;
45 :     }
46 : efrank 1.1 }
47 : gdpusch 1.3 die "\nusage: $usage\n\n" if $trouble;
48 : efrank 1.1
49 :     open(TMP,">$file.fasta") || die "could not open $file";
50 :     foreach $id (@ARGV)
51 :     {
52 : overbeek 1.2 next if ($seen{$id});
53 : gdpusch 1.3 $seen{$id} = 1;
54 :    
55 : efrank 1.1 if ($seq = $fig->get_translation($id))
56 :     {
57 :     print TMP ">$id\n$seq\n";
58 : gdpusch 1.3 $func = $fig->function_of($id, $user);
59 :     $org = $fig->org_of($id);
60 : efrank 1.1 }
61 :     else
62 :     {
63 :     print STDERR "could not find translation for $id\n";
64 :     }
65 : gdpusch 1.3
66 :     $label = $id;
67 :     if ($add_org && $org) { $label .= " [$org]"; }
68 :     if ($add_func && $func) { $label .= " $func"; }
69 :    
70 :     $relabel->{$id} = $label;
71 : efrank 1.1 }
72 :     close(TMP);
73 : gdpusch 1.3 # print STDERR "$0;\n", Dumper($relabel);
74 : efrank 1.1
75 :     system "$FIG_Config::ext_bin/clustalw -infile=$file.fasta -align -outorder=aligned > /dev/null";
76 :     print `cat $file.aln`;
77 :     if ($tree)
78 :     {
79 :     print "=======================================================================\n\n\n";
80 :     $tree = "";
81 :    
82 :     if (-s "$file.dnd")
83 :     {
84 :     @treefile = `cat $file.dnd`;
85 :     if (@treefile && ($tree = &parse_newick_tree(join("",@treefile))))
86 :     {
87 :     $tree = &display_tree($tree,$relabel);
88 :     }
89 :     }
90 :     print "$tree\n";
91 :     }
92 : overbeek 1.4 if ($save)
93 :     {
94 :     system "cp $file.fasta \"$save/seqs\"";
95 :     system "cp $file.aln \"$save/aln\"";
96 :     system "cp $file.dnd \"$save/tree\"";
97 :     }
98 : efrank 1.1 unlink("$file.fasta","$file.aln","$file.dnd");

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3