39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/most_frequent_seq.rb', line 39
def self.calcConsensus(seqs)
seql = seqs[0].length - 1
seqr = ""
for i in 0..seql
bases = [0,0,0,0,0,0,0]
seqs.each { |n|
n = n.upcase
if(n[i]=='A')
bases[0] = bases[0]+1
end
if(n[i]=='G')
bases[1] = bases[1]+1
end
if(n[i]=='C')
bases[2] = bases[2]+1
end
if(n[i]=='T')
bases[3] = bases[3]+1
end
if(n[i]=='N')
bases[4] = bases[4]+1
end
if(n[i]=='-')
bases[5] = bases[5]+1
end
if(n[i]=='U')
bases[6] = bases[6]+1
end
}
cb = bases.each_with_index.max[1]
if(cb==0)
base = 'A'
end
if(cb==1)
base = 'G'
end
if(cb==2)
base = 'C'
end
if(cb==3)
base = 'T'
end
if(cb==4)
base = 'N'
end
if(cb==5)
base = '-'
end
if(cb==6)
base = 'U'
end
seqr.concat(base.to_s)
end
return seqr
end
|