*/
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();
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();
}
if(s != '('){
- values['-']++;
+ if(s == '-'){
+ values['-']++;
+ }
}
else
{
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'];
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)
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)
{
}
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++)
* @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<String> test = new ArrayList<String>();