From eb582aa53860a55e1de305db5735cdfe3b862a0e Mon Sep 17 00:00:00 2001 From: "b.stoever" Date: Thu, 21 May 2015 16:45:28 +0000 Subject: [PATCH] Adjustments to recent changes in LibrAlign. --- .../editor/molecular/AlignmentEditor.java | 77 ++++++++++--------- .../molecular/ContigSequenceDataProvider.java | 10 +-- 2 files changed, 44 insertions(+), 43 deletions(-) diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/AlignmentEditor.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/AlignmentEditor.java index 796e3d171..67ce107f5 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/AlignmentEditor.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/AlignmentEditor.java @@ -19,21 +19,21 @@ import info.bioinfweb.libralign.dataarea.implementations.pherogram.PherogramArea import info.bioinfweb.libralign.dataarea.implementations.pherogram.ShiftChange; import info.bioinfweb.libralign.editsettings.EditSettingsChangeEvent; import info.bioinfweb.libralign.editsettings.EditSettingsListener; +import info.bioinfweb.libralign.model.AlignmentModel; +import info.bioinfweb.libralign.model.AlignmentModelChangeListener; +import info.bioinfweb.libralign.model.SequenceUtils; +import info.bioinfweb.libralign.model.adapters.StringAdapter; +import info.bioinfweb.libralign.model.events.SequenceChangeEvent; +import info.bioinfweb.libralign.model.events.SequenceRenamedEvent; +import info.bioinfweb.libralign.model.events.TokenChangeEvent; +import info.bioinfweb.libralign.model.implementations.PackedAlignmentModel; +import info.bioinfweb.libralign.model.tokenset.BioJavaTokenSet; +import info.bioinfweb.libralign.model.tokenset.TokenSet; import info.bioinfweb.libralign.multiplealignments.AlignmentAreaList; import info.bioinfweb.libralign.multiplealignments.MultipleAlignmentsContainer; -import info.bioinfweb.libralign.pherogram.provider.BioJavaPherogramProvider; -import info.bioinfweb.libralign.pherogram.provider.PherogramProvider; -import info.bioinfweb.libralign.pherogram.provider.ReverseComplementPherogramProvider; -import info.bioinfweb.libralign.sequenceprovider.SequenceDataChangeListener; -import info.bioinfweb.libralign.sequenceprovider.SequenceDataProvider; -import info.bioinfweb.libralign.sequenceprovider.SequenceUtils; -import info.bioinfweb.libralign.sequenceprovider.adapters.StringAdapter; -import info.bioinfweb.libralign.sequenceprovider.events.SequenceChangeEvent; -import info.bioinfweb.libralign.sequenceprovider.events.SequenceRenamedEvent; -import info.bioinfweb.libralign.sequenceprovider.events.TokenChangeEvent; -import info.bioinfweb.libralign.sequenceprovider.implementations.PackedSequenceDataProvider; -import info.bioinfweb.libralign.sequenceprovider.tokenset.BioJavaTokenSet; -import info.bioinfweb.libralign.sequenceprovider.tokenset.TokenSet; +import info.bioinfweb.libralign.pherogram.model.BioJavaPherogramModel; +import info.bioinfweb.libralign.pherogram.model.PherogramModel; +import info.bioinfweb.libralign.pherogram.model.ReverseComplementPherogramModel; import java.io.File; import java.io.IOException; @@ -97,7 +97,7 @@ public class AlignmentEditor extends EditorPart { private final ConversationHolder conversationHolder; - private final SequenceDataChangeListener DIRTY_LISTENER = new SequenceDataChangeListener() { + private final AlignmentModelChangeListener DIRTY_LISTENER = new AlignmentModelChangeListener() { @Override public void afterTokenChange(TokenChangeEvent e) { setDirty(); @@ -114,8 +114,8 @@ public class AlignmentEditor extends EditorPart { } @Override - public void afterProviderChanged(SequenceDataProvider oldProvider, - SequenceDataProvider newProvider) { // Not expected. + public void afterProviderChanged(AlignmentModel oldProvider, + AlignmentModel newProvider) { // Not expected. setDirty(); } @@ -128,7 +128,8 @@ public class AlignmentEditor extends EditorPart { public AlignmentEditor() { super(); - conversationHolder = CdmStore.createConversation(); + //conversationHolder = CdmStore.createConversation(); + conversationHolder = null; } @@ -174,8 +175,8 @@ public class AlignmentEditor extends EditorPart { result.setAllowVerticalScrolling(allowVerticalScrolling); TokenSet tokenSet = new BioJavaTokenSet(new DNACompoundSet(), true); - SequenceDataProvider provider = new PackedSequenceDataProvider(tokenSet); - result.setSequenceProvider(provider, false); + AlignmentModel provider = new PackedAlignmentModel(tokenSet); + result.setAlignmentModel(provider, false); provider.getChangeListeners().add(DIRTY_LISTENER); return result; @@ -183,7 +184,7 @@ public class AlignmentEditor extends EditorPart { private AlignmentArea createConsensusHintArea(MultipleAlignmentsContainer container, - SequenceDataProvider sequenceProvider) { + AlignmentModel sequenceProvider) { AlignmentArea result = new AlignmentArea(container); result.setAllowVerticalScrolling(false); @@ -203,7 +204,7 @@ public class AlignmentEditor extends EditorPart { list.add(readsArea); // Make sure READS_AREA_INDEX is correct. list.add(createEditableAlignmentArea(alignmentsContainer, false)); // Make sure COMSENSUS_AREA_INDEX is correct. list.add(createConsensusHintArea(alignmentsContainer, - readsArea.getSequenceProvider())); + readsArea.getAlignmentModel())); registerEditSettingListener(alignmentsContainer); } @@ -233,7 +234,7 @@ public class AlignmentEditor extends EditorPart { addRead(new File("D:/Users/BenStoever/Documents/Studium/Projekte/Promotion/EDITor/Quelltexte/LibrAlign branch/Repository/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR444_JR-P05.ab1").toURI(), false); // Add test consensus sequence: - SequenceDataProvider consensusProvider = getConsensusArea().getSequenceProvider(); + AlignmentModel consensusProvider = getConsensusArea().getAlignmentModel(); int id = consensusProvider.addSequence(CONSENSUS_NAME); Collection tokens = new ArrayList(); // First save tokens in a collection to avoid GUI updated for each token. tokens.add(consensusProvider.getTokenSet().tokenByKeyChar('A')); @@ -271,7 +272,7 @@ public class AlignmentEditor extends EditorPart { } // Set consensus sequence: - SequenceDataProvider consensusProvider = getConsensusArea().getSequenceProvider(); + AlignmentModel consensusProvider = getConsensusArea().getAlignmentModel(); int id = consensusProvider.addSequence(CONSENSUS_NAME); consensusProvider.insertTokensAt(id, 0, SequenceUtils.stringToTokenList( sequenceNode.getConsensusSequence().getString(), consensusProvider.getTokenSet())); @@ -338,12 +339,12 @@ public class AlignmentEditor extends EditorPart { monitor.beginTask(taskName, 3); Sequence sequenceNode = ((AlignmentEditorInput)getEditorInput()).getSequenceNode(); - StringAdapter stringProvider = new StringAdapter(getConsensusArea().getSequenceProvider(), false); // Throws an exception if a token has more than one character. + StringAdapter stringProvider = new StringAdapter(getConsensusArea().getAlignmentModel(), false); // Throws an exception if a token has more than one character. // Write consensus sequence: SequenceString consensusSequenceObj = sequenceNode.getConsensusSequence(); String newConsensusSequence = stringProvider.getSequence( - getConsensusArea().getSequenceProvider().sequenceIDByName(CONSENSUS_NAME)); + getConsensusArea().getAlignmentModel().sequenceIDByName(CONSENSUS_NAME)); if (consensusSequenceObj == null) { sequenceNode.setConsensusSequence(SequenceString.NewInstance(newConsensusSequence)); } @@ -352,9 +353,9 @@ public class AlignmentEditor extends EditorPart { } // Write single reads: - stringProvider.setUnderlyingProvider(getReadsArea().getSequenceProvider()); + stringProvider.setUnderlyingProvider(getReadsArea().getAlignmentModel()); sequenceNode.getSingleReadAlignments().retainAll(cdmMap.values()); // Remove all reads that are not in the alignment anymore. - Iterator iterator = getReadsArea().getSequenceProvider().sequenceIDIterator(); + Iterator iterator = getReadsArea().getAlignmentModel().sequenceIDIterator(); while (iterator.hasNext()) { int id = iterator.next(); SingleReadAlignment singleRead = cdmMap.get(id); @@ -364,7 +365,7 @@ public class AlignmentEditor extends EditorPart { } singleRead.setEditedSequence(stringProvider.getSequence(id)); - singleRead.setReverseComplement(getPherogramArea(id).getProvider() instanceof ReverseComplementPherogramProvider); // Works only if ReverseComplementPherogramProvider instances are not nested. + singleRead.setReverseComplement(getPherogramArea(id).getProvider() instanceof ReverseComplementPherogramModel); // Works only if ReverseComplementPherogramProvider instances are not nested. singleRead.setShifts(convertToCDMShifts(getPherogramArea(id).getAlignmentModel())); } @@ -459,12 +460,12 @@ public class AlignmentEditor extends EditorPart { public void reverseComplementSelection() { SelectionModel selection = getReadsArea().getSelection(); - SequenceDataProvider provider = getReadsArea().getSequenceProvider(); + AlignmentModel provider = getReadsArea().getAlignmentModel(); for (int row = selection.getStartRow(); row < selection.getStartRow() + selection.getCursorHeight(); row++) { int sequenceID = getReadsArea().getSequenceOrder().idByIndex(row); //TODO rc edited sequence - if (getPherogramArea(sequenceID).getProvider() instanceof ReverseComplementPherogramProvider) { + if (getPherogramArea(sequenceID).getProvider() instanceof ReverseComplementPherogramModel) { //getPherogramArea(sequenceID). //TODO Allow to set new provider in PherogramArea or create new PherogramArea //TODO Reposition pherogram according to previous position in edited sequence and length @@ -473,11 +474,11 @@ public class AlignmentEditor extends EditorPart { } - public static PherogramProvider readPherogram(URI uri) throws IOException, UnsupportedChromatogramFormatException { - PherogramProvider result; + public static PherogramModel readPherogram(URI uri) throws IOException, UnsupportedChromatogramFormatException { + PherogramModel result; InputStream stream = uri.toURL().openStream(); try { - result = new BioJavaPherogramProvider(ChromatogramFactory.create(stream)); + result = new BioJavaPherogramModel(ChromatogramFactory.create(stream)); } finally { stream.close(); @@ -488,8 +489,8 @@ public class AlignmentEditor extends EditorPart { private String newReadName() { int index = 1; - while (getReadsArea().getSequenceProvider().sequenceIDByName(DEFAULT_READ_NAME_PREFIX + index) - != SequenceDataProvider.NO_SEQUENCE_FOUND) { + while (getReadsArea().getAlignmentModel().sequenceIDByName(DEFAULT_READ_NAME_PREFIX + index) + != AlignmentModel.NO_SEQUENCE_FOUND) { index++; } @@ -522,10 +523,10 @@ public class AlignmentEditor extends EditorPart { public int addRead(String name, URI pherogramURI, boolean reverseComplemented, String editedSequence, SingleReadAlignment.Shift[] shifts) throws IOException, UnsupportedChromatogramFormatException { - SequenceDataProvider provider = getReadsArea().getSequenceProvider(); - PherogramProvider pherogramProvider = readPherogram(pherogramURI); // Must happen before a sequence is added, because it might throw an exception. + AlignmentModel provider = getReadsArea().getAlignmentModel(); + PherogramModel pherogramProvider = readPherogram(pherogramURI); // Must happen before a sequence is added, because it might throw an exception. if (reverseComplemented) { - pherogramProvider = new ReverseComplementPherogramProvider(pherogramProvider); + pherogramProvider = new ReverseComplementPherogramModel(pherogramProvider); } // Create sequence: diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/ContigSequenceDataProvider.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/ContigSequenceDataProvider.java index 893b4eebf..6b93861b8 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/ContigSequenceDataProvider.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/ContigSequenceDataProvider.java @@ -13,9 +13,9 @@ package eu.etaxonomy.taxeditor.editor.molecular; import org.biojava3.core.sequence.compound.NucleotideCompound; import info.bioinfweb.commons.bio.biojava3.core.sequence.compound.AlignmentAmbiguityDNACompoundSet; -import info.bioinfweb.libralign.sequenceprovider.SequenceDataProvider; -import info.bioinfweb.libralign.sequenceprovider.implementations.PackedSequenceDataProvider; -import info.bioinfweb.libralign.sequenceprovider.tokenset.BioJavaTokenSet; +import info.bioinfweb.libralign.model.AlignmentModel; +import info.bioinfweb.libralign.model.implementations.PackedAlignmentModel; +import info.bioinfweb.libralign.model.tokenset.BioJavaTokenSet; @@ -25,8 +25,8 @@ import info.bioinfweb.libralign.sequenceprovider.tokenset.BioJavaTokenSet; * @author Ben Stöver * @date 04.08.2014 */ -public class ContigSequenceDataProvider extends PackedSequenceDataProvider - implements SequenceDataProvider { +public class ContigSequenceDataProvider extends PackedAlignmentModel + implements AlignmentModel { public ContigSequenceDataProvider() { -- 2.34.1