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

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3