X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fanalysis%2Fscoremodels%2FFeatureDistanceModel.java;h=0aa77fa659ab596d604042ba9b5db26e74bd55e2;hb=406c75985c3585f3c6bf8d6f4778d9fb28c7bf2c;hp=9245898fa124d1c8b992bad1400327dff70edcb0;hpb=7f5ab7d1f58d870622968e0e6a430f33403b8e4f;p=jalview.git diff --git a/src/jalview/analysis/scoremodels/FeatureDistanceModel.java b/src/jalview/analysis/scoremodels/FeatureDistanceModel.java index 9245898..0aa77fa 100644 --- a/src/jalview/analysis/scoremodels/FeatureDistanceModel.java +++ b/src/jalview/analysis/scoremodels/FeatureDistanceModel.java @@ -22,8 +22,8 @@ package jalview.analysis.scoremodels; import jalview.api.AlignmentViewPanel; import jalview.api.FeatureRenderer; -import jalview.api.analysis.DistanceScoreModelI; -import jalview.api.analysis.ViewBasedAnalysisI; +import jalview.api.analysis.ScoreModelI; +import jalview.api.analysis.SimilarityParamsI; import jalview.datamodel.AlignmentView; import jalview.datamodel.SeqCigar; import jalview.datamodel.SequenceFeature; @@ -37,13 +37,42 @@ import java.util.List; import java.util.Map; import java.util.Set; -public class FeatureDistanceModel implements DistanceScoreModelI, - ViewBasedAnalysisI +public class FeatureDistanceModel extends DistanceScoreModel { + private static final String NAME = "Sequence Feature Similarity"; + + private String description; + FeatureRenderer fr; + /** + * Constructor + */ + public FeatureDistanceModel() + { + } + @Override - public boolean configureFromAlignmentView(AlignmentViewPanel view) + public ScoreModelI getInstance(AlignmentViewPanel view) + { + FeatureDistanceModel instance; + try + { + instance = this.getClass().getDeclaredConstructor().newInstance(); + instance.configureFromAlignmentView(view); + return instance; + } catch (InstantiationException | IllegalAccessException e) + { + System.err.println("Error in " + getClass().getName() + + ".getInstance(): " + e.getMessage()); + return null; + } catch (ReflectiveOperationException roe) + { + return null; + } + } + + boolean configureFromAlignmentView(AlignmentViewPanel view) { fr = view.cloneFeatureRenderer(); @@ -56,16 +85,28 @@ public class FeatureDistanceModel implements DistanceScoreModelI, * features each sequence pair has at each column, ignore feature types they * have in common, and count the rest. The totals are normalised by the number * of columns processed. + *
+ * The parameters argument provides settings for treatment of gap-residue
+ * aligned positions, and whether the score is over the longer or shorter of
+ * each pair of sequences
+ *
+ * @param seqData
+ * @param params
*/
@Override
- public MatrixI findDistances(AlignmentView seqData)
+ public MatrixI findDistances(AlignmentView seqData,
+ SimilarityParamsI params)
{
- List