From: Jim Procter Date: Fri, 13 Jun 2014 10:14:07 +0000 (+0100) Subject: Merge branch 'Release_2_8_2_Branch' into JAL-1483_featureBasedTreeCalc X-Git-Tag: Jalview_2_9~123^2~23 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=e1cd94839128776e14e51ded3f3be2dcc7e72273;hp=8d0d8f010041eb2089bfe0bf7e5ad481ceae56d5;p=jalview.git Merge branch 'Release_2_8_2_Branch' into JAL-1483_featureBasedTreeCalc --- diff --git a/src/jalview/analysis/Conservation.java b/src/jalview/analysis/Conservation.java index 4d64685..66a6d78 100755 --- a/src/jalview/analysis/Conservation.java +++ b/src/jalview/analysis/Conservation.java @@ -71,6 +71,8 @@ public class Conservation int[][] cons2; + private String[] consSymbs; + /** * Creates a new Conservation object. * @@ -366,17 +368,17 @@ public class Conservation { consString.append('-'); } - + consSymbs = new String[end-start+1]; for (int i = start; i <= end; i++) { gapcons = countConsNGaps(i); totGaps = gapcons[1]; pgaps = ((float) totGaps * 100) / (float) sequences.length; - + consSymbs[i-start]=new String(); + if (percentageGaps > pgaps) { resultHash = total[i - start]; - // Now find the verdict count = 0; enumeration = resultHash.keys(); @@ -385,12 +387,12 @@ public class Conservation { type = (String) enumeration.nextElement(); result = (Integer) resultHash.get(type); - // Do we want to count +ve conservation or +ve and -ve cons.? if (consflag) { if (result.intValue() == 1) { + consSymbs[i-start] = type+" "+consSymbs[i-start]; count++; } } @@ -398,6 +400,14 @@ public class Conservation { if (result.intValue() != -1) { + { + if (result.intValue()==0) { + consSymbs[i-start] = consSymbs[i-start]+ " !"+type; + } else { + consSymbs[i-start] = type+" "+consSymbs[i-start]; + } + } + count++; } } @@ -683,7 +693,7 @@ public class Conservation float vprop = value - min; vprop /= max; conservation.annotations[i] = new Annotation(String.valueOf(c), - String.valueOf(value), ' ', value, new Color(minR + consSymbs[i-start], ' ', value, new Color(minR + (maxR * vprop), minG + (maxG * vprop), minB + (maxB * vprop))); diff --git a/src/jalview/analysis/Finder.java b/src/jalview/analysis/Finder.java index 96151d7..b87c170 100644 --- a/src/jalview/analysis/Finder.java +++ b/src/jalview/analysis/Finder.java @@ -188,7 +188,7 @@ public class Finder { continue; } - +// if invalid string used, then regex has no matched to/from int sres = seq .findPosition(resIndex + Integer.parseInt(spaces.elementAt(resIndex) diff --git a/src/jalview/analysis/SequenceIdMatcher.java b/src/jalview/analysis/SequenceIdMatcher.java index aec7faf..bedce3f 100755 --- a/src/jalview/analysis/SequenceIdMatcher.java +++ b/src/jalview/analysis/SequenceIdMatcher.java @@ -42,10 +42,15 @@ public class SequenceIdMatcher // TODO: deal with ID collisions - SequenceI should be appended to list // associated with this key. names.put(new SeqIdName(seqs[i].getDisplayId(true)), seqs[i]); + SequenceI dbseq = seqs[i]; + while (dbseq.getDatasetSequence()!=null) + { + dbseq = dbseq.getDatasetSequence(); + } // add in any interesting identifiers - if (seqs[i].getDBRef() != null) + if (dbseq.getDBRef() != null) { - DBRefEntry dbr[] = seqs[i].getDBRef(); + DBRefEntry dbr[] = dbseq.getDBRef(); SeqIdName sid = null; for (int r = 0; r < dbr.length; r++) { diff --git a/src/jalview/analysis/scoremodels/FeatureScoreModel.java b/src/jalview/analysis/scoremodels/FeatureScoreModel.java new file mode 100644 index 0000000..e9347e4 --- /dev/null +++ b/src/jalview/analysis/scoremodels/FeatureScoreModel.java @@ -0,0 +1,84 @@ +package jalview.analysis.scoremodels; + +import java.awt.Color; + +import jalview.analysis.AlignSeq; +import jalview.api.analysis.ScoreModelI; +import jalview.api.analysis.ViewBasedAnalysisI; +import jalview.datamodel.AlignmentView; +import jalview.datamodel.SeqCigar; +import jalview.datamodel.SequenceFeature; +import jalview.datamodel.SequenceI; +import jalview.util.Comparison; + +public class FeatureScoreModel implements ScoreModelI,ViewBasedAnalysisI +{ + jalview.api.FeatureRenderer fr; + + @Override + public boolean configureFromAlignmentView(jalview.api.AlignmentViewPanel view) + { + fr = view.cloneFeatureRenderer(); + return true; + } + + @Override + public float[][] findDistances(AlignmentView seqData) + { + + SequenceI[] sequenceString = seqData + .getVisibleAlignment(Comparison.GapChars.charAt(0)).getSequencesArray(); + int noseqs = sequenceString.length; + int cpwidth = seqData.getWidth(); + float[][] distance = new float[noseqs][noseqs]; + float max=0; + for (int cpos = 0;cpos