Next version of JABA
[jabaws.git] / binaries / src / mafft / core / pscoffee.tmpl
1 #! /bin/csh -f
2
3 #
4 # Edit pscoffee.tmpl, not pscoffee.
5 #
6
7 cat << ENDF > _lara2pairalign
8 #! /usr/bin/env ruby
9
10 gets
11 line = gets
12 nseq = line.to_i
13 gets
14
15 seq = []
16 len = []
17 for i in 0..(nseq-1)
18         line = gets
19         seq.push( line.split(' ').slice(2).to_s )
20         len.push( line.split(' ').slice(1).to_i )
21         gets
22 end
23
24 #p seq
25 #p len
26
27 while 1 
28         line = gets
29         mem1 = line.split(' ').slice(1).to_i - 1
30         mem2 = line.split(' ').slice(2).to_i - 1
31
32 #       p mem1
33 #       p mem2
34
35         gets
36
37         aln1 = ""
38         aln2 = ""
39
40         pos1bk = len[mem1] - 1
41         pos2bk = len[mem2] - 1
42
43         while 1
44                 line = gets
45                 pos1 = line.split(' ').slice(0).to_i - 1
46                 pos2 = line.split(' ').slice(1).to_i - 1
47
48                 break if line.to_i == 0
49
50 #               puts "\npos = \n"
51 #               p pos1
52 #               p pos2
53
54                 next if pos1 == 0 && pos2 == 0
55
56                 if pos1bk > pos1 then
57                         j = pos1bk
58                         while j > pos1
59 #                               puts "j1= " + j.to_s
60                                 aln1 = seq[mem1][j..j] + aln1
61                                 aln2 = '-' + aln2
62                                 j -= 1
63                         end
64                 end
65                 if pos2bk > pos2 then
66                         j = pos2bk
67                         while j > pos2
68 #                               puts "j2= " + j.to_s
69                                 aln1 = '-' + aln1
70                                 aln2 = seq[mem2][j..j] + aln2
71                                 j -= 1
72                         end
73                 end
74
75
76                 aln1 = seq[mem1][pos1..pos1] + aln1
77                 aln2 = seq[mem2][pos2..pos2] + aln2
78
79 #               puts "\nadding nuc"
80 #               p aln1
81 #               p aln2
82
83                 pos1bk = pos1-1
84                 pos2bk = pos2-1
85
86 #               puts "\nposbk = \n"
87 #               p pos1bk
88 #               p pos2bk
89
90         end
91         if pos1bk >= 0 then
92                 j = pos1bk
93                 while j >= 0
94                         aln1 = seq[mem1][j..j] + aln1
95                         aln2 = '-' + aln2
96                         j -= 1
97                 end
98         end
99         if pos2bk >= 0 then
100                 j = pos2bk
101                 while j >= 0
102                         aln1 = '-' + aln1
103                         aln2 = seq[mem2][j..j] + aln2
104                         j -= 1
105                 end
106         end
107
108         puts ">#{mem1}"
109         puts aln1
110         puts ">#{mem2}"
111         puts aln2
112
113
114         break if line =~ /^!/ 
115 end
116 exit
117
118 ENDF
119
120 chmod guo+rx _lara2pairalign
121
122 echo "####### IN PSCOFFEE ######" 
123
124 set fname = `echo $1 | sed 's/-in=//'`
125 cp $fname larapairs.$$
126 ./_lara2pairalign larapairs.$$ > larapairs
127 rm larapairs.$$