1 package jalview.util;
\r
3 import jalview.datamodel.*;
\r
5 public class Comparison {
\r
7 public static float compare(SequenceI ii, SequenceI jj)
\r
9 return Comparison.compare(ii,jj,0,ii.getLength()-1);
\r
11 public static float compare(SequenceI ii, SequenceI jj, int start, int end) {
\r
13 String si = ii.getSequence();
\r
14 String sj = jj.getSequence();
\r
16 int ilen = si.length()-1;
\r
17 int jlen = sj.length()-1;
\r
19 while (jalview.util.Comparison.isGap(si.charAt(start + ilen)))
\r
24 while (jalview.util.Comparison.isGap(sj.charAt(start + jlen)))
\r
35 for (int j = 0; j < jlen; j++) {
\r
36 if (si.substring(start + j,start + j+1).equals(sj.substring(start + j,start + j+1))) {
\r
41 pid = (float)match/(float)ilen * 100;
\r
43 for (int j = 0; j < jlen; j++) {
\r
44 if (si.substring(start + j,start + j+1).equals(sj.substring(start + j,start + j+1))) {
\r
49 pid = (float)match/(float)jlen * 100;
\r
56 public static float PID(SequenceI s1 , SequenceI s2)
\r
60 if (s1.getSequence().length() > s2.getSequence().length())
\r
61 len = s1.getSequence().length();
\r
63 len = s2.getSequence().length();
\r
68 for (int i = 0; i < len; i++)
\r
73 if (i < s1.getSequence().length())
\r
74 chr1 = s1.getSequence().charAt(i);
\r
79 if (i < s2.getSequence().length())
\r
80 chr2 = s2.getSequence().charAt(i);
\r
85 if (!(jalview.util.Comparison.isGap( chr1 )) && !(jalview.util.Comparison.isGap( chr2 )))
\r
92 return (float)100*(len-bad)/len;
\r
95 public static boolean isGap(char c)
\r
97 return (c != '.' && c != '-' && c != ' ') ? false : true;
\r