This file is indexed.

/usr/share/doc/neobio/html/src-html/neobio/alignment/BasicScoringScheme.html is in neobio 0.0.20030929-1.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
<HTML>
<BODY BGCOLOR="white">
<PRE>
<FONT color="green">001</FONT>    /*<a name="line.1"></a>
<FONT color="green">002</FONT>     * BasicScoringScheme.java<a name="line.2"></a>
<FONT color="green">003</FONT>     *<a name="line.3"></a>
<FONT color="green">004</FONT>     * Copyright 2003 Sergio Anibal de Carvalho Junior<a name="line.4"></a>
<FONT color="green">005</FONT>     *<a name="line.5"></a>
<FONT color="green">006</FONT>     * This file is part of NeoBio.<a name="line.6"></a>
<FONT color="green">007</FONT>     *<a name="line.7"></a>
<FONT color="green">008</FONT>     * NeoBio is free software; you can redistribute it and/or modify it under the terms of<a name="line.8"></a>
<FONT color="green">009</FONT>     * the GNU General Public License as published by the Free Software Foundation; either<a name="line.9"></a>
<FONT color="green">010</FONT>     * version 2 of the License, or (at your option) any later version.<a name="line.10"></a>
<FONT color="green">011</FONT>     *<a name="line.11"></a>
<FONT color="green">012</FONT>     * NeoBio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;<a name="line.12"></a>
<FONT color="green">013</FONT>     * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR<a name="line.13"></a>
<FONT color="green">014</FONT>     * PURPOSE. See the GNU General Public License for more details.<a name="line.14"></a>
<FONT color="green">015</FONT>     *<a name="line.15"></a>
<FONT color="green">016</FONT>     * You should have received a copy of the GNU General Public License along with NeoBio;<a name="line.16"></a>
<FONT color="green">017</FONT>     * if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,<a name="line.17"></a>
<FONT color="green">018</FONT>     * Boston, MA 02111-1307, USA.<a name="line.18"></a>
<FONT color="green">019</FONT>     *<a name="line.19"></a>
<FONT color="green">020</FONT>     * Proper attribution of the author as the source of the software would be appreciated.<a name="line.20"></a>
<FONT color="green">021</FONT>     *<a name="line.21"></a>
<FONT color="green">022</FONT>     * Sergio Anibal de Carvalho Junior             mailto:sergioanibaljr@users.sourceforge.net<a name="line.22"></a>
<FONT color="green">023</FONT>     * Department of Computer Science               http://www.dcs.kcl.ac.uk<a name="line.23"></a>
<FONT color="green">024</FONT>     * King's College London, UK                    http://www.kcl.ac.uk<a name="line.24"></a>
<FONT color="green">025</FONT>     *<a name="line.25"></a>
<FONT color="green">026</FONT>     * Please visit http://neobio.sourceforge.net<a name="line.26"></a>
<FONT color="green">027</FONT>     *<a name="line.27"></a>
<FONT color="green">028</FONT>     * This project was supervised by Professor Maxime Crochemore.<a name="line.28"></a>
<FONT color="green">029</FONT>     *<a name="line.29"></a>
<FONT color="green">030</FONT>     */<a name="line.30"></a>
<FONT color="green">031</FONT>    <a name="line.31"></a>
<FONT color="green">032</FONT>    package neobio.alignment;<a name="line.32"></a>
<FONT color="green">033</FONT>    <a name="line.33"></a>
<FONT color="green">034</FONT>    /**<a name="line.34"></a>
<FONT color="green">035</FONT>     * This class implements a basic scoring scheme. At least three parameters must be<a name="line.35"></a>
<FONT color="green">036</FONT>     * provided to the constructor: the reward for a match (a substitution of equal<a name="line.36"></a>
<FONT color="green">037</FONT>     * characters), the penalty for a mismatch (a substitution of different characters) and<a name="line.37"></a>
<FONT color="green">038</FONT>     * the cost of a gap (an insertion or deletion of a character). Note that it only supports<a name="line.38"></a>
<FONT color="green">039</FONT>     * an additive gap cost function.<a name="line.39"></a>
<FONT color="green">040</FONT>     *<a name="line.40"></a>
<FONT color="green">041</FONT>     * &lt;P>Although the match reward is expected to be a positive value, and the mismatch<a name="line.41"></a>
<FONT color="green">042</FONT>     * penalty and the gap cost are expected to be negative, no attempt is made to enforce<a name="line.42"></a>
<FONT color="green">043</FONT>     * these behaviour.&lt;/P><a name="line.43"></a>
<FONT color="green">044</FONT>     *<a name="line.44"></a>
<FONT color="green">045</FONT>     * @author Sergio A. de Carvalho Jr.<a name="line.45"></a>
<FONT color="green">046</FONT>     */<a name="line.46"></a>
<FONT color="green">047</FONT>    public class BasicScoringScheme extends ScoringScheme<a name="line.47"></a>
<FONT color="green">048</FONT>    {<a name="line.48"></a>
<FONT color="green">049</FONT>            /**<a name="line.49"></a>
<FONT color="green">050</FONT>             * The reward for a match (a substitution of equal characters).<a name="line.50"></a>
<FONT color="green">051</FONT>             */<a name="line.51"></a>
<FONT color="green">052</FONT>            protected int match_reward;<a name="line.52"></a>
<FONT color="green">053</FONT>    <a name="line.53"></a>
<FONT color="green">054</FONT>            /**<a name="line.54"></a>
<FONT color="green">055</FONT>             * The penalty for a mismatch (a substitution of different characters).<a name="line.55"></a>
<FONT color="green">056</FONT>             */<a name="line.56"></a>
<FONT color="green">057</FONT>            protected int mismatch_penalty;<a name="line.57"></a>
<FONT color="green">058</FONT>    <a name="line.58"></a>
<FONT color="green">059</FONT>            /**<a name="line.59"></a>
<FONT color="green">060</FONT>             * The cost of a gap (an insertion or deletion of a character).<a name="line.60"></a>
<FONT color="green">061</FONT>             */<a name="line.61"></a>
<FONT color="green">062</FONT>            protected int gap_cost;<a name="line.62"></a>
<FONT color="green">063</FONT>    <a name="line.63"></a>
<FONT color="green">064</FONT>            /**<a name="line.64"></a>
<FONT color="green">065</FONT>             * The maximum absolute score that this scoring scheme can return, which is the<a name="line.65"></a>
<FONT color="green">066</FONT>             * maximum absolute value among &lt;CODE>match_reward&lt;/CODE>,<a name="line.66"></a>
<FONT color="green">067</FONT>             * &lt;CODE>mismatch_penalty&lt;/CODE> and &lt;CODE>gap_cost&lt;/CODE>.<a name="line.67"></a>
<FONT color="green">068</FONT>             */<a name="line.68"></a>
<FONT color="green">069</FONT>            protected int max_absolute_score;<a name="line.69"></a>
<FONT color="green">070</FONT>    <a name="line.70"></a>
<FONT color="green">071</FONT>            /**<a name="line.71"></a>
<FONT color="green">072</FONT>             * Creates a new instance of a basic scoring scheme with the specified values of<a name="line.72"></a>
<FONT color="green">073</FONT>             * match reward, mismatch penalty and gap cost. The case of characters is significant<a name="line.73"></a>
<FONT color="green">074</FONT>             * when subsequently computing their score.<a name="line.74"></a>
<FONT color="green">075</FONT>             *<a name="line.75"></a>
<FONT color="green">076</FONT>             * @param match_reward reward for a substitution of equal characters<a name="line.76"></a>
<FONT color="green">077</FONT>             * @param mismatch_penalty penalty for a substitution of different characters<a name="line.77"></a>
<FONT color="green">078</FONT>             * @param gap_cost cost of an insertion or deletion of any character<a name="line.78"></a>
<FONT color="green">079</FONT>             */<a name="line.79"></a>
<FONT color="green">080</FONT>            public BasicScoringScheme (int match_reward, int mismatch_penalty, int gap_cost)<a name="line.80"></a>
<FONT color="green">081</FONT>            {<a name="line.81"></a>
<FONT color="green">082</FONT>                    this (match_reward, mismatch_penalty, gap_cost, true);<a name="line.82"></a>
<FONT color="green">083</FONT>            }<a name="line.83"></a>
<FONT color="green">084</FONT>    <a name="line.84"></a>
<FONT color="green">085</FONT>            /**<a name="line.85"></a>
<FONT color="green">086</FONT>             * Creates a new instance of basic scoring scheme with the specified values of<a name="line.86"></a>
<FONT color="green">087</FONT>             * match reward, mismatch penalty and gap cost. If &lt;CODE>case_sensitive&lt;/CODE> is<a name="line.87"></a>
<FONT color="green">088</FONT>             * &lt;CODE>true&lt;/CODE>, the case of characters is significant when subsequently<a name="line.88"></a>
<FONT color="green">089</FONT>             * computing their score; otherwise the case is ignored.<a name="line.89"></a>
<FONT color="green">090</FONT>             *<a name="line.90"></a>
<FONT color="green">091</FONT>             * @param match_reward reward for a substitution of equal characters<a name="line.91"></a>
<FONT color="green">092</FONT>             * @param mismatch_penalty penalty for a substitution of different characters<a name="line.92"></a>
<FONT color="green">093</FONT>             * @param gap_cost cost of an insertion or deletion of any character<a name="line.93"></a>
<FONT color="green">094</FONT>             * @param case_sensitive &lt;CODE>true&lt;/CODE> if the case of characters must be<a name="line.94"></a>
<FONT color="green">095</FONT>             * significant, &lt;CODE>false&lt;/CODE> otherwise<a name="line.95"></a>
<FONT color="green">096</FONT>             */<a name="line.96"></a>
<FONT color="green">097</FONT>            public BasicScoringScheme (int match_reward, int mismatch_penalty, int gap_cost,<a name="line.97"></a>
<FONT color="green">098</FONT>                                                                    boolean case_sensitive)<a name="line.98"></a>
<FONT color="green">099</FONT>            {<a name="line.99"></a>
<FONT color="green">100</FONT>                    super(case_sensitive);<a name="line.100"></a>
<FONT color="green">101</FONT>    <a name="line.101"></a>
<FONT color="green">102</FONT>                    this.match_reward = match_reward;<a name="line.102"></a>
<FONT color="green">103</FONT>                    this.mismatch_penalty = mismatch_penalty;<a name="line.103"></a>
<FONT color="green">104</FONT>                    this.gap_cost = gap_cost;<a name="line.104"></a>
<FONT color="green">105</FONT>    <a name="line.105"></a>
<FONT color="green">106</FONT>                    // store the maximum absolute score that this scoring scheme can return,<a name="line.106"></a>
<FONT color="green">107</FONT>                    // which is the maximum absolute value among match_reward, mismatch_penalty<a name="line.107"></a>
<FONT color="green">108</FONT>                    // and gap_cost<a name="line.108"></a>
<FONT color="green">109</FONT>                    if (Math.abs(match_reward) >= Math.abs(mismatch_penalty))<a name="line.109"></a>
<FONT color="green">110</FONT>                            if (Math.abs(match_reward) >= Math.abs(gap_cost))<a name="line.110"></a>
<FONT color="green">111</FONT>                                    this.max_absolute_score = Math.abs(match_reward);<a name="line.111"></a>
<FONT color="green">112</FONT>                            else<a name="line.112"></a>
<FONT color="green">113</FONT>                                    this.max_absolute_score = Math.abs(gap_cost);<a name="line.113"></a>
<FONT color="green">114</FONT>                    else<a name="line.114"></a>
<FONT color="green">115</FONT>                            if (Math.abs(mismatch_penalty) >= Math.abs(gap_cost))<a name="line.115"></a>
<FONT color="green">116</FONT>                                    this.max_absolute_score = Math.abs(mismatch_penalty);<a name="line.116"></a>
<FONT color="green">117</FONT>                            else<a name="line.117"></a>
<FONT color="green">118</FONT>                                    this.max_absolute_score = Math.abs(gap_cost);<a name="line.118"></a>
<FONT color="green">119</FONT>            }<a name="line.119"></a>
<FONT color="green">120</FONT>    <a name="line.120"></a>
<FONT color="green">121</FONT>            /**<a name="line.121"></a>
<FONT color="green">122</FONT>             * Returns the score of a substitution of character &lt;CODE>a&lt;/CODE> for character<a name="line.122"></a>
<FONT color="green">123</FONT>             * &lt;CODE>b&lt;/CODE> according to this scoring scheme. It is &lt;CODE>match_reward&lt;/CODE><a name="line.123"></a>
<FONT color="green">124</FONT>             * if &lt;CODE>a&lt;/CODE> equals &lt;CODE>b&lt;/CODE>, &lt;CODE>mismatch_penalty&lt;/CODE> otherwise.<a name="line.124"></a>
<FONT color="green">125</FONT>             *<a name="line.125"></a>
<FONT color="green">126</FONT>             * @param a first character<a name="line.126"></a>
<FONT color="green">127</FONT>             * @param b second character<a name="line.127"></a>
<FONT color="green">128</FONT>             * @return &lt;CODE>match_reward&lt;/CODE> if &lt;CODE>a&lt;/CODE> equals &lt;CODE>b&lt;/CODE>,<a name="line.128"></a>
<FONT color="green">129</FONT>             * &lt;CODE>mismatch_penalty&lt;/CODE> otherwise.<a name="line.129"></a>
<FONT color="green">130</FONT>             */<a name="line.130"></a>
<FONT color="green">131</FONT>            public int scoreSubstitution (char a, char b)<a name="line.131"></a>
<FONT color="green">132</FONT>            {<a name="line.132"></a>
<FONT color="green">133</FONT>                    if (isCaseSensitive())<a name="line.133"></a>
<FONT color="green">134</FONT>                            if (a == b)<a name="line.134"></a>
<FONT color="green">135</FONT>                                    return match_reward;<a name="line.135"></a>
<FONT color="green">136</FONT>                            else<a name="line.136"></a>
<FONT color="green">137</FONT>                                    return mismatch_penalty;<a name="line.137"></a>
<FONT color="green">138</FONT>                    else<a name="line.138"></a>
<FONT color="green">139</FONT>                            if (Character.toLowerCase(a) == Character.toLowerCase(b))<a name="line.139"></a>
<FONT color="green">140</FONT>                                    return match_reward;<a name="line.140"></a>
<FONT color="green">141</FONT>                            else<a name="line.141"></a>
<FONT color="green">142</FONT>                                    return mismatch_penalty;<a name="line.142"></a>
<FONT color="green">143</FONT>            }<a name="line.143"></a>
<FONT color="green">144</FONT>    <a name="line.144"></a>
<FONT color="green">145</FONT>            /**<a name="line.145"></a>
<FONT color="green">146</FONT>             * Always returns &lt;CODE>gap_cost&lt;/CODE> for the insertion of any character.<a name="line.146"></a>
<FONT color="green">147</FONT>             *<a name="line.147"></a>
<FONT color="green">148</FONT>             * @param a the character to be inserted<a name="line.148"></a>
<FONT color="green">149</FONT>             * @return &lt;CODE>gap_cost&lt;/CODE><a name="line.149"></a>
<FONT color="green">150</FONT>             */<a name="line.150"></a>
<FONT color="green">151</FONT>            public int scoreInsertion (char a)<a name="line.151"></a>
<FONT color="green">152</FONT>            {<a name="line.152"></a>
<FONT color="green">153</FONT>                    return gap_cost;<a name="line.153"></a>
<FONT color="green">154</FONT>            }<a name="line.154"></a>
<FONT color="green">155</FONT>    <a name="line.155"></a>
<FONT color="green">156</FONT>            /**<a name="line.156"></a>
<FONT color="green">157</FONT>             * Always returns &lt;CODE>gap_cost&lt;/CODE> for the deletion of any character.<a name="line.157"></a>
<FONT color="green">158</FONT>             *<a name="line.158"></a>
<FONT color="green">159</FONT>             * @param a the character to be deleted<a name="line.159"></a>
<FONT color="green">160</FONT>             * @return &lt;CODE>gap_cost&lt;/CODE><a name="line.160"></a>
<FONT color="green">161</FONT>             */<a name="line.161"></a>
<FONT color="green">162</FONT>            public int scoreDeletion (char a)<a name="line.162"></a>
<FONT color="green">163</FONT>            {<a name="line.163"></a>
<FONT color="green">164</FONT>                    return gap_cost;<a name="line.164"></a>
<FONT color="green">165</FONT>            }<a name="line.165"></a>
<FONT color="green">166</FONT>    <a name="line.166"></a>
<FONT color="green">167</FONT>            /**<a name="line.167"></a>
<FONT color="green">168</FONT>             * Returns the maximum absolute score that this scoring scheme can return for any<a name="line.168"></a>
<FONT color="green">169</FONT>             * substitution, deletion or insertion, which is the maximum absolute value among<a name="line.169"></a>
<FONT color="green">170</FONT>             * &lt;CODE>match_reward&lt;/CODE>, &lt;CODE>mismatch_penalty&lt;/CODE> and<a name="line.170"></a>
<FONT color="green">171</FONT>             * &lt;CODE>gap_cost&lt;/CODE>.<a name="line.171"></a>
<FONT color="green">172</FONT>             *<a name="line.172"></a>
<FONT color="green">173</FONT>             * @return the maximum absolute value among &lt;CODE>match_reward&lt;/CODE>,<a name="line.173"></a>
<FONT color="green">174</FONT>             * &lt;CODE>mismatch_penalty&lt;/CODE> and &lt;CODE>gap_cost&lt;/CODE>.<a name="line.174"></a>
<FONT color="green">175</FONT>             */<a name="line.175"></a>
<FONT color="green">176</FONT>            public int maxAbsoluteScore ()<a name="line.176"></a>
<FONT color="green">177</FONT>            {<a name="line.177"></a>
<FONT color="green">178</FONT>                    return max_absolute_score;<a name="line.178"></a>
<FONT color="green">179</FONT>            }<a name="line.179"></a>
<FONT color="green">180</FONT>    <a name="line.180"></a>
<FONT color="green">181</FONT>            /**<a name="line.181"></a>
<FONT color="green">182</FONT>             * Tells whether this scoring scheme supports partial matches, which it does not.<a name="line.182"></a>
<FONT color="green">183</FONT>             *<a name="line.183"></a>
<FONT color="green">184</FONT>             * @return always return &lt;CODE>false&lt;/CODE><a name="line.184"></a>
<FONT color="green">185</FONT>             */<a name="line.185"></a>
<FONT color="green">186</FONT>            public boolean isPartialMatchSupported ()<a name="line.186"></a>
<FONT color="green">187</FONT>            {<a name="line.187"></a>
<FONT color="green">188</FONT>                    return false;<a name="line.188"></a>
<FONT color="green">189</FONT>            }<a name="line.189"></a>
<FONT color="green">190</FONT>    <a name="line.190"></a>
<FONT color="green">191</FONT>            /**<a name="line.191"></a>
<FONT color="green">192</FONT>             * Returns a String representation of this scoring scheme.<a name="line.192"></a>
<FONT color="green">193</FONT>             *<a name="line.193"></a>
<FONT color="green">194</FONT>             * @return a String representation of this scoring scheme<a name="line.194"></a>
<FONT color="green">195</FONT>             */<a name="line.195"></a>
<FONT color="green">196</FONT>            public String toString ()<a name="line.196"></a>
<FONT color="green">197</FONT>            {<a name="line.197"></a>
<FONT color="green">198</FONT>                    return "Basic scoring scheme: match reward = " + match_reward +<a name="line.198"></a>
<FONT color="green">199</FONT>                    ", mismatch penalty = " + mismatch_penalty + ", gap cost = " + gap_cost;<a name="line.199"></a>
<FONT color="green">200</FONT>            }<a name="line.200"></a>
<FONT color="green">201</FONT>    }<a name="line.201"></a>




























































</PRE>
</BODY>
</HTML>