X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2Fvamsas%2FSequencemapping.java;h=9bdd6b3aa3389136913c75d577a21e27dbb92cc5;hb=67b3acb8df1438ef37a756c04e14f5a3b8406808;hp=9ac0ae5b2dafa335750191aafa886db45a0404a1;hpb=59d682209891099d46b960509907c79e3fb276fe;p=jalview.git diff --git a/src/jalview/io/vamsas/Sequencemapping.java b/src/jalview/io/vamsas/Sequencemapping.java index 9ac0ae5..9bdd6b3 100644 --- a/src/jalview/io/vamsas/Sequencemapping.java +++ b/src/jalview/io/vamsas/Sequencemapping.java @@ -1,46 +1,52 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8) - * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * * Jalview is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. * * Jalview is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along with Jalview. If not, see . + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.io.vamsas; -import java.util.Vector; - +import jalview.bin.Cache; import jalview.datamodel.AlignedCodonFrame; +import jalview.datamodel.AlignmentI; +import jalview.datamodel.DBRefEntry; import jalview.datamodel.Mapping; import jalview.datamodel.SequenceI; import jalview.gui.Desktop; import jalview.io.VamsasAppDatastore; -import uk.ac.vamsas.client.Vobject; +import jalview.structure.StructureSelectionManager; +import jalview.util.MapList; + +import java.util.Vector; + import uk.ac.vamsas.objects.core.AlignmentSequence; import uk.ac.vamsas.objects.core.DataSet; -import uk.ac.vamsas.objects.core.Local; -import uk.ac.vamsas.objects.core.RangeType; -import uk.ac.vamsas.objects.core.Seg; import uk.ac.vamsas.objects.core.Sequence; import uk.ac.vamsas.objects.core.SequenceMapping; import uk.ac.vamsas.objects.core.SequenceType; +import uk.ac.vamsas.objects.utils.SymbolDictionary; /** * binds a vamsas sequence mapping object from the vamsas document to a maplist * object associated with a mapping in the Jalview model. We use the maplist * object because these are referred to both in the Mapping object associated - * with a jalview.datamodel.DBRefEntry and in the array of - * jalview.datamodel.AlCodonFrame objects that Jalview uses to propagate - * sequence mapping position highlighting across the views. + * with a DBRefEntry and in the array of jalview.datamodel.AlCodonFrame objects + * that Jalview uses to propagate sequence mapping position highlighting across + * the views. * * @author JimP * @@ -50,7 +56,7 @@ public class Sequencemapping extends Rangetype public Sequencemapping(VamsasAppDatastore datastore, SequenceMapping sequenceMapping) { - super(datastore, sequenceMapping, jalview.util.MapList.class); + super(datastore, sequenceMapping, MapList.class); doJvUpdate(); } @@ -70,7 +76,7 @@ public class Sequencemapping extends Rangetype * @param ds */ public Sequencemapping(VamsasAppDatastore datastore, - jalview.datamodel.Mapping mjvmapping, + Mapping mjvmapping, uk.ac.vamsas.objects.core.SequenceType from, uk.ac.vamsas.objects.core.DataSet ds) { @@ -95,13 +101,13 @@ public class Sequencemapping extends Rangetype } if (from != null && sequenceMapping.getLoc() != from) { - jalview.bin.Cache.log.warn("Probable IMPLEMENTATION ERROR: " + from + Cache.log.warn("Probable IMPLEMENTATION ERROR: " + from + " doesn't match the local mapping sequence."); } if (ds != null && sequenceMapping.is__stored_in_document() && sequenceMapping.getV_parent() != ds) { - jalview.bin.Cache.log + Cache.log .warn("Probable IMPLEMENTATION ERROR: " + ds + " doesn't match the parent of the bound sequence mapping object."); @@ -131,7 +137,7 @@ public class Sequencemapping extends Rangetype public void updateFromDoc() { - update((SequenceMapping) vobj, (jalview.datamodel.Mapping) jvobj); + update((SequenceMapping) vobj, (Mapping) jvobj); } private void conflict(Mapping mjvmapping, SequenceMapping sequenceMapping) @@ -151,7 +157,7 @@ public class Sequencemapping extends Rangetype SequenceType to = (SequenceType) getjv2vObj(jvto); if (to == null) { - jalview.bin.Cache.log + Cache.log .warn("FIXME NONFATAL - do a second update: Ignoring Forward Reference to seuqence not yet bound to vamsas seuqence object"); return; } @@ -161,10 +167,10 @@ public class Sequencemapping extends Rangetype boolean dnaToProt = false, sense = false; // ensure that we create a mapping with the correct sense if (((Sequence) sequenceMapping.getLoc()).getDictionary().equals( - uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_NA)) + SymbolDictionary.STANDARD_NA)) { if (((Sequence) sequenceMapping.getMap()).getDictionary().equals( - uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_AA)) + SymbolDictionary.STANDARD_AA)) { dnaToProt = true; sense = true; @@ -173,7 +179,7 @@ public class Sequencemapping extends Rangetype else { if (((Sequence) sequenceMapping.getMap()).getDictionary().equals( - uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_NA)) + SymbolDictionary.STANDARD_NA)) { dnaToProt = true; sense = false; @@ -182,7 +188,7 @@ public class Sequencemapping extends Rangetype if (!dnaToProt) { - jalview.bin.Cache.log + Cache.log .warn("Ignoring Mapping - don't support protein to protein mapping in vamsas document yet."); return; } @@ -222,28 +228,28 @@ public class Sequencemapping extends Rangetype // mapping bindjvvobj(mjvmapping.getMap(), sequenceMapping); - jalview.bin.Cache.log.debug("Successfully created mapping " + Cache.log.debug("Successfully created mapping " + sequenceMapping.getVorbaId()); } - // private void update(jalview.util.MapList mjvmapping, + // private void update(MapList mjvmapping, // SequenceMapping sequenceMapping) { - jalview.bin.Cache.log + Cache.log .error("Not implemented: Jalview Update Alcodon Mapping:TODO!"); } private void update(SequenceMapping sequenceMapping, - jalview.datamodel.Mapping mjvmapping) + Mapping mjvmapping) { - jalview.bin.Cache.log + Cache.log .error("Not implemented: Update DBRef Mapping from Jalview"); } - private void update(jalview.datamodel.Mapping mjvmapping, + private void update(Mapping mjvmapping, SequenceMapping sequenceMapping) { - jalview.bin.Cache.log + Cache.log .error("Not implemented: Jalview Update Sequence DBRef Mapping"); } @@ -280,15 +286,15 @@ public class Sequencemapping extends Rangetype } if (sdloc == null || sdmap == null) { - jalview.bin.Cache.log.info("Ignoring non sequence-sequence mapping"); + Cache.log.info("Ignoring non sequence-sequence mapping"); return; } - mobj = this.getvObj2jv((Vobject) sdloc); + mobj = this.getvObj2jv(sdloc); if (mobj instanceof SequenceI) { from = (SequenceI) mobj; } - mobj = this.getvObj2jv((Vobject) sdmap); + mobj = this.getvObj2jv(sdmap); if (mobj instanceof SequenceI) { to = (SequenceI) mobj; @@ -296,16 +302,16 @@ public class Sequencemapping extends Rangetype if (from == null || to == null) { - jalview.bin.Cache.log + Cache.log .error("Probable Vamsas implementation error : unbound dataset sequences involved in a mapping are being parsed!"); return; } if (sdloc.getDictionary().equals( - uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_NA)) +SymbolDictionary.STANDARD_NA)) { if (sdmap.getDictionary().equals( - uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_AA)) +SymbolDictionary.STANDARD_AA)) { dnaToProt = true; sense = true; @@ -317,7 +323,7 @@ public class Sequencemapping extends Rangetype else { if (sdmap.getDictionary().equals( - uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_NA)) +SymbolDictionary.STANDARD_NA)) { dnaToProt = true; sense = false; @@ -325,49 +331,45 @@ public class Sequencemapping extends Rangetype } // create mapping storage object and make each dataset alignment reference // it. - jalview.datamodel.AlignmentI dsLoc = (jalview.datamodel.AlignmentI) getvObj2jv(sdloc - .getV_parent()); - jalview.datamodel.AlignmentI dsMap = (jalview.datamodel.AlignmentI) getvObj2jv(sdmap - .getV_parent()); - AlignedCodonFrame afc = new AlignedCodonFrame(0); + AlignmentI dsLoc = (AlignmentI) getvObj2jv(sdloc.getV_parent()); + AlignmentI dsMap = (AlignmentI) getvObj2jv(sdmap.getV_parent()); + AlignedCodonFrame acf = new AlignedCodonFrame(); if (dsLoc != null && dsLoc != dsMap) { - dsLoc.addCodonFrame(afc); + dsLoc.addCodonFrame(acf); } if (dsMap != null) { - dsMap.addCodonFrame(afc); + dsMap.addCodonFrame(acf); } // create and add the new mapping to (each) dataset's codonFrame - jalview.util.MapList mapping = null; + MapList mapping = null; if (dnaToProt) { if (!sense) { mapping = this.parsemapType(sequenceMapping, 1, 3); // invert sense - mapping = new jalview.util.MapList(mapping.getToRanges(), + mapping = new MapList(mapping.getToRanges(), mapping.getFromRanges(), mapping.getToRatio(), mapping.getFromRatio()); - afc.addMap(to, from, mapping); + acf.addMap(to, from, mapping); } else { mapping = this.parsemapType(sequenceMapping, 3, 1); // correct sense - afc.addMap(from, to, mapping); + acf.addMap(from, to, mapping); } } else { mapping = this.parsemapType(sequenceMapping, 1, 1); // correct sense - afc.addMap(from, to, mapping); + acf.addMap(from, to, mapping); } bindjvvobj(mapping, sequenceMapping); - jalview.structure.StructureSelectionManager - .getStructureSelectionManager(Desktop.instance).addMappings( - new AlignedCodonFrame[] - { afc }); + StructureSelectionManager + .getStructureSelectionManager(Desktop.instance).addMapping(acf); // Try to link up any conjugate database references in the two sequences // matchConjugateDBRefs(from, to, mapping); // Try to propagate any dbrefs across this mapping. @@ -375,8 +377,8 @@ public class Sequencemapping extends Rangetype } /** - * Complete any 'to' references in jalview.datamodel.Mapping objects - * associated with conjugate DBRefEntry under given mapping + * Complete any 'to' references in Mapping objects associated with conjugate + * DBRefEntry under given mapping * * @param from * sequence corresponding to from reference for sequence mapping @@ -386,37 +388,37 @@ public class Sequencemapping extends Rangetype * maplist parsed in same sense as from and to */ private void matchConjugateDBRefs(SequenceI from, SequenceI to, - jalview.util.MapList smap) + MapList smap) { if (from.getDBRef() == null && to.getDBRef() == null) { - if (jalview.bin.Cache.log.isDebugEnabled()) + if (Cache.log.isDebugEnabled()) { - jalview.bin.Cache.log.debug("Not matching conjugate refs for " + Cache.log.debug("Not matching conjugate refs for " + from.getName() + " and " + to.getName()); } return; } - if (jalview.bin.Cache.log.isDebugEnabled()) + if (Cache.log.isDebugEnabled()) { - jalview.bin.Cache.log.debug("Matching conjugate refs for " + Cache.log.debug("Matching conjugate refs for " + from.getName() + " and " + to.getName()); } - jalview.datamodel.DBRefEntry[] fdb = from.getDBRef(); - jalview.datamodel.DBRefEntry[] tdb = new jalview.datamodel.DBRefEntry[to + DBRefEntry[] fdb = from.getDBRef(); + DBRefEntry[] tdb = new DBRefEntry[to .getDBRef().length]; int tdblen = to.getDBRef().length; System.arraycopy(to.getDBRef(), 0, tdb, 0, tdblen); Vector matched = new Vector(); - jalview.util.MapList smapI = smap.getInverse(); + MapList smapI = smap.getInverse(); for (int f = 0; f < fdb.length; f++) { - jalview.datamodel.DBRefEntry fe = fdb[f]; - jalview.datamodel.Mapping fmp = fe.getMap(); + DBRefEntry fe = fdb[f]; + Mapping fmp = fe.getMap(); boolean fmpnnl = fmp != null; // if (fmpnnl && fmp.getTo()!=null) // { - // jalview.bin.Cache.log.debug("Not overwriting existing To reference in + // Cache.log.debug("Not overwriting existing To reference in // "+fe); // continue; // } @@ -428,13 +430,13 @@ public class Sequencemapping extends Rangetype : false; for (int t = 0; t < tdblen; t++) { - jalview.datamodel.DBRefEntry te = tdb[t]; + DBRefEntry te = tdb[t]; if (te != null) { if (fe.getSource().equals(te.getSource()) && fe.getAccessionId().equals(te.getAccessionId())) { - jalview.datamodel.Mapping tmp = te.getMap(); + Mapping tmp = te.getMap(); boolean tmpnnl = tmp != null; if (tmpnnl && tmp.getTo() != null) {