X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2FStructureFrequency.java;fp=src%2Fjalview%2Fanalysis%2FStructureFrequency.java;h=8338c9dda01a6b4826498813562d0a2c559e95d1;hb=41138135cca24db61dc2ce16a8dc0b6dd6dfc6dd;hp=a5dd030d48c78f6003be5ddc6a676a8ce51c588f;hpb=1b75ecd55d73289607632bfb247205913542c352;p=jalview.git diff --git a/src/jalview/analysis/StructureFrequency.java b/src/jalview/analysis/StructureFrequency.java index a5dd030..8338c9d 100644 --- a/src/jalview/analysis/StructureFrequency.java +++ b/src/jalview/analysis/StructureFrequency.java @@ -202,7 +202,7 @@ public class StructureFrequency */ public static final void calculate(SequenceI[] sequences, int start, int end, Hashtable[] result, boolean profile, AlignmentAnnotation rnaStruc){ - System.out.println("StructureFrequency.calculate"); + //System.out.println("StructureFrequency.calculateNEW4"); Hashtable residueHash; String maxResidue; char[] seq, struc=rnaStruc.getRNAStruc().toCharArray(); @@ -211,12 +211,7 @@ public class StructureFrequency int count,nonGap=0,i,bpEnd=-1,j,jSize = sequences.length; int[] values = new int[255]; float percentage; - - /*for(int x=(rna.length-1); x>=0; x--){ - System.out.println("BP-"+((rna.length-1)-x)+" "+rna[x].getBegin()+","+rna[x].getEnd()+" "+rna[x].getFeatureGroup()); - }*/ - - + for (i = start; i < end; i++) //foreach column { residueHash = new Hashtable(); @@ -231,7 +226,9 @@ public class StructureFrequency } if(s != '('){ - values['-']++; + if(s == '-'){ + values['-']++; + } } else { @@ -259,27 +256,24 @@ public class StructureFrequency values['-']++; continue; } - //if(s == '('){ - //bpEnd=rna[(rna.length-1-nonGap)].getEnd(); - bpEnd=findPair(rna,i); - cEnd=seq[bpEnd]; - //System.out.println(i+","+bpEnd); - if(checkBpType(c,cEnd)){ - values['H']++; //H means it's a helix (structured) - } - maxResidue="H"; - //} + bpEnd=findPair(rna,i); + cEnd=seq[bpEnd]; + if(checkBpType(c,cEnd)){ + values['H']++; //H means it's a helix (structured) + } + maxResidue="H"; } } - nonGap++; +// nonGap++; } //UPDATE this for new values - //if (profile) - //{ - // residueHash.put(PROFILE, new int[][] - // { values, new int[] - // { jSize, nongap } }); - // } + if (profile) + { + //System.out.println("profile"); + residueHash.put(PROFILE, new int[][] + { values, new int[] + { jSize, values['H'] } }); + } count=values['H']; @@ -375,6 +369,7 @@ public class StructureFrequency boolean ignoreGapsInConsensusCalculation, boolean includeAllConsSymbols, char[] alphabet) { + System.out.println("StructureFrequency.completeConsensus "+includeAllConsSymbols); float tval, value; if (consensus == null || consensus.annotations == null || consensus.annotations.length < width) @@ -412,8 +407,9 @@ public class StructureFrequency maxRes = "+"; } int[][] profile = (int[][]) hconsensus[i].get(StructureFrequency.PROFILE); - if (profile != null && includeAllConsSymbols) + if (profile != null && includeAllConsSymbols) //Just responsible for the tooltip { + //System.out.println("StructureFrequency.includeAllConsSymbols"); mouseOver = ""; if (alphabet != null) { @@ -429,6 +425,7 @@ public class StructureFrequency } else { + //System.out.println("StructureFrequency.NOTincludeAllConsSymbols"); Object[] ca = new Object[profile[0].length]; float[] vl = new float[profile[0].length]; for (int c = 0; c < ca.length; c++) @@ -472,38 +469,37 @@ public class StructureFrequency * @return */ public static int[] extractProfile(Hashtable hconsensus, - boolean ignoreGapsInConsensusCalculation) + boolean ignoreGapsInConsensusCalculation) { - int[] rtnval = new int[64]; - int[][] profile = (int[][]) hconsensus.get(StructureFrequency.PROFILE); - if (profile == null) - return null; - Object[] ca = new Object[profile[0].length]; - float[] vl = new float[profile[0].length]; - for (int c = 0; c < ca.length; c++) - { - ca[c] = new char[] - { (char) c }; - vl[c] = (float) profile[0][c]; - } - ; - jalview.util.QuickSort.sort(vl, ca); - rtnval[0] = 1; - for (int c = ca.length - 1; profile[0][((char[]) ca[c])[0]] > 0; c--) - { - if (((char[]) ca[c])[0] != '-') - { - rtnval[rtnval[0]++] = ((char[]) ca[c])[0]; - rtnval[rtnval[0]++] = (int) (((float) profile[0][((char[]) ca[c])[0]]) * 100f / (float) profile[1][ignoreGapsInConsensusCalculation ? 1 - : 0]); - } - } - return rtnval; + //System.out.println("StructureFrequency.extractProfile"); + int[] rtnval = new int[11]; + int[][] profile = (int[][]) hconsensus.get(StructureFrequency.PROFILE); + if (profile == null) + return null; + + Object[] ca = new Object[profile[0].length]; + float[] vl = new float[profile[0].length]; + for (int c = 0; c < ca.length; c++) + { + ca[c] = new char[] + { (char) c }; + vl[c] = (float) profile[0][c]; + } + ; + jalview.util.QuickSort.sort(vl, ca); + rtnval[0] = 1; + for (int c = ca.length - 1; profile[0][((char[]) ca[c])[0]] > 0; c--) + { + if (((char[]) ca[c])[0] != '-') + { + rtnval[rtnval[0]++] = ((char[]) ca[c])[0]; + rtnval[rtnval[0]++] = (int) (((float) profile[0][((char[]) ca[c])[0]]) * 100f / (float) profile[1][ignoreGapsInConsensusCalculation ? 1 + : 0]); + } + } + return rtnval; } - enum base {A,T,g,C}; - - public static void main(String args[]){ //Short test to see if checkBpType works ArrayList test = new ArrayList();