String si = ii.getSequence();\r
String sj = jj.getSequence();\r
\r
- int ilen = end-start+1;\r
- int jlen = end-start+1;\r
-\r
- if ( si.substring(start + ilen).equals("-") ||\r
- si.substring(start + ilen).equals(".") ||\r
- si.substring(start + ilen).equals(" ")) {\r
+ int ilen = si.length()-1;\r
+ int jlen = sj.length()-1;\r
\r
+ while (jalview.util.Comparison.isGap(si.charAt(start + ilen)))\r
+ {\r
ilen--;\r
-\r
- while (si.substring(start + ilen,start + ilen+1).equals("-") ||\r
- si.substring(start + ilen,start + ilen+1).equals(".") ||\r
- si.substring(start + ilen,start + ilen+1).equals(" ")) {\r
- ilen--;\r
- }\r
}\r
\r
- if ( sj.substring(start + jlen).equals("-") ||\r
- sj.substring(start + jlen).equals(".") ||\r
- sj.substring(start + jlen).equals(" ")) {\r
+ while (jalview.util.Comparison.isGap(sj.charAt(start + jlen)))\r
+ {\r
jlen--;\r
-\r
- while (sj.substring(start + jlen,start + jlen+1).equals("-") ||\r
- sj.substring(start + jlen,start + jlen+1).equals(".") ||\r
- sj.substring(start + jlen,start + jlen+1).equals(" ")) {\r
- jlen--;\r
- }\r
}\r
\r
int count = 0;\r
}\r
\r
/** */\r
- public static float PID(Sequence s1 , Sequence s2) {\r
- int res = 0;\r
+ public static float PID(SequenceI s1 , SequenceI s2)\r
+ {\r
int len;\r
\r
- if (s1.getSequence().length() > s2.getSequence().length()) {\r
+ if (s1.getSequence().length() > s2.getSequence().length())\r
len = s1.getSequence().length();\r
- } else {\r
+ else\r
len = s2.getSequence().length();\r
- }\r
+\r
\r
int bad = 0;\r
\r
- for (int i = 0; i < len; i++) {\r
- String str1 = "";\r
- String str2 = "";\r
+ for (int i = 0; i < len; i++)\r
+ {\r
+ char chr1;\r
+ char chr2;\r
\r
- if (i < s1.getSequence().length()) {\r
- str1 = s1.getSequence().substring(i,i+1);\r
- } else {\r
- str1 = ".";\r
- }\r
+ if (i < s1.getSequence().length())\r
+ chr1 = s1.getSequence().charAt(i);\r
+ else\r
+ chr1 = '.';\r
\r
- if (i < s2.getSequence().length()) {\r
- str2 = s2.getSequence().substring(i,i+1);\r
- } else {\r
- str2 = ".";\r
- }\r
\r
- if (!(str1.equals(".") ||\r
- str1.equals("-") ||\r
- str1.equals(" ")) &&\r
- !(str2.equals(".") ||\r
- str2.equals("-") ||\r
- str2.equals(" "))) {\r
+ if (i < s2.getSequence().length())\r
+ chr2 = s2.getSequence().charAt(i);\r
+ else\r
+ chr2 = '.';\r
\r
- if (!str1.equals(str2)) {\r
+\r
+ if (!(jalview.util.Comparison.isGap( chr1 )) && !(jalview.util.Comparison.isGap( chr2 )))\r
+ {\r
+ if (chr1!=chr2)\r
bad++;\r
- }\r
}\r
}\r
\r
return (float)100*(len-bad)/len;\r
}\r
+ public static String GapChars = " .-";\r
+ public static boolean isGap(char c)\r
+ {\r
+ return (c != '.' && c != '-' && c != ' ') ? false : true;\r
+ }\r
}\r