package eu.etaxonomy.taxeditor.editor.molecular;
-import java.io.File;
-
import info.bioinfweb.commons.bio.biojava3.alignment.SimpleAlignment;
import info.bioinfweb.commons.bio.biojava3.alignment.template.Alignment;
import info.bioinfweb.commons.bio.biojava3.core.sequence.compound.AlignmentAmbiguityNucleotideCompoundSet;
import info.bioinfweb.libralign.sequenceprovider.implementations.BioJavaSequenceDataProvider;
import info.bioinfweb.libralign.sequenceprovider.tokenset.BioJavaTokenSet;
+import java.io.File;
+
import org.biojava.bio.chromatogram.ChromatogramFactory;
import org.biojava3.core.sequence.DNASequence;
import org.biojava3.core.sequence.compound.NucleotideCompound;
* a consensus sequence.
* <p>
* The contained GUI components used to edit the alignment come from <a href="http://bioinfweb.info/LibrAlign/">LibrAlign</a>.
- *
+ *
* @author pplitzner
* @author Ben Stöver
* @date 04.08.2014
*/
public class AlignmentEditor extends EditorPart {
public static final String ID = "eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor";
-
+
private AlignmentArea alignmentArea;
// BioJavaPherogramProvider pherogramProvider = new BioJavaPherogramProvider(ChromatogramFactory.create(
// new File("D:\\Users\\BenStoever\\Documents\\Studium\\Projekte\\Promotion\\EDITor\\Quelltexte\\LibrAlign branch\\Repository\\eu.etaxonomy.taxeditor.editor\\src\\main\\resources\\TestPherogram_qualityScore.scf")));
//TODO Replace this absolute path with a path working with every workspace location.
-
- Alignment<DNASequence, NucleotideCompound> alignment =
+
+ Alignment<DNASequence, NucleotideCompound> alignment =
new SimpleAlignment<DNASequence, NucleotideCompound>();
alignment.add("Read 1", new DNASequence("TAAGATACAACAAGGTTTCGGGCA-CCTTATCCACGCAGTAAGGGGATCAGAGGTTTTTCTCTCATTCATGTATCGTGGATCAGTAAGGCAATTTTGCTACCCTGTCTGCTCTTTCTAGCATTTTACTAATGCCCCAGAAATTAGGAATAAAGATTTTATATGAAAGAAAGGGCGAATTAATTCATAAGGGACTGGTATCCATTCTTATTTGATTTGATACATTGTATCCATTAACATTACATTGGCGAATTGGGCGAAGGTGCGGAAAGAGAGGGATTCGAACCCTCGGTAAACAAAAGTCTACATAGCAGTTCCAATGCTACGCCTTGAACCACTCGGCCACCTCTCCTACATAAGGATTTTGGTCCCAAACCAAAAAGAGGGAGTTGTTCAAATTAGATTCTTAGGTAGGTCCGGACAACGAATTCAAATGAATAAGGTAAGGGGACATCCCCCCTCCCTCCCCTTTGTTTTTTTCTTTATTTGGTTAGGGCGGGGGACTCGACTCTTATTGAATTTTCATATGTATCACAGCTCGAAACGAAAGAACTCGTGGGGGGGTCGTTTCCTTTTTGGATCTTGAACGACTAGGTTCAAGAGATGAGAGAATTCAGGATACCCACAAGAAAGACTAATCCAATCCATAACGATGTACCAGAAAAGACAATATTTTTATTACCTGACCA"));
alignment.add("Read 2", new DNASequence("TAAGATACAACAAGGTTTCGGGCAACCTTATCCACGCAGTAAGGGGATCAGAGGTTTTTCTCTCATTCATGTATCGTGGATCAGTAAGGCAATTTTGCTACCCTGTCTGCTCTTTCTAGCATTTTACTAATGCCCCAGAAATTAGGAATAAAGATTTTATATGAAAGAAAGGGCGAATTAATTCATAAGGGACTGGTATCCATTCTTATTTGATTTGATACATTGTATCCATTAACATTACATTGGCGAATTGGGCGAAGGTGCGGAAAGAGAGGGATTCGAACCCTCGGTAAACAAAAGTCTACATAGCAGTTCCAATGCTACGCCTTGAACCACTCGGCCACCTCTCCTACATAAGGATTTTGGTCCCAAACCAAAAAGAGGGAGTTGTTCAAATTAGATTCTTAGGTAGGTCCGGACAACGAATTCAAATGAATAAGGTAAGGGGACATCCCCCCTCCCTCCCCTTTGTTTTTTTCTTTATTTGGTTAGGGCGGGGGACTCGACTCTTATTGAATTTTCATATGTATCACAGCTCGAAACGAAAGAACTCGTGGGGGGGTCGTTTCCTTTTTGGATCTTGAACGACTAGGTTCAAGAGATGAGAGAATTCAGGATACCCACAAGAAAGACTAATCCAATCCATAACGATGTACCAGAAAAGACAATATTTTTATTACCTGACCA"));
//alignment.add("Consensus edit 1", new DNASequence("TAAGATACAACAAGGTTTCGGGCAACCTTATCCACGCAGTAAGGGGATCAGAGGTTTTTCTCTCATTCATGTATCGTGGATCAGTAAGGCAATTTTGCTACCCTGTCTGCTCTTTCTAGCATTTTACTAATGCCCCAGAAATTAGGAATAAAGATTTTATATGAAAGAAAGGGCGAATTAATTCATAAGGGACTGGTATCCATTCTTATTTGATTTGATACATTGTATCCATTAACATTACATTGGCGAATTGGGCGAAGGTGCGGAAAGAGAGGGATTCGAACCCTCGGTAAACAAAAGTCTACATAGCAGTTCCAATGCTACGCCTTGAACCACTCGGCCACCTCTCCTACATAAGGATTTTGGTCCCAAACCAAAAAGAGGGAGTTGTTCAAATTAGATTCTTAGGTAGGTCCGGACAACGAATTCAAATGAATAAGGTAAGGGGACATCCCCCCTCCCTCCCCTTTGTTTTTTTCTTTATTTGGTTAGGGCGGGGGACTCGACTCTTATTGAATTTTCATATGTATCACAGCTCGAAACGAAAGAACTCGTGGGGGGGTCGTTTCCTTTTTGGATCTTGAACGACTAGGTTCAAGAGATGAGAGAATTCAGGATACCCACAAGAAAGACTAATCCAATCCATAACGATGTACCAGAAAAGACAATATTTTTATTACCTGACCA"));
-
+
// StringBuffer seqBuffer = new StringBuffer(pherogramProvider.getSequenceLength());
// for (int i = 1; i <= pherogramProvider.getSequenceLength(); i++) {
// seqBuffer.append(pherogramProvider.getBaseCall(i).getUpperedBase());
// }
-// alignment.add("Sequence 4", new DNASequence("-----" + seqBuffer.substring(0, 38) +
-// seqBuffer.substring(39, 49) + "--" + seqBuffer.substring(49))); // One A is deleted for shift change specified below.
-
- BioJavaSequenceDataProvider<DNASequence, NucleotideCompound> sequenceProvider =
+// alignment.add("Sequence 4", new DNASequence("-----" + seqBuffer.substring(0, 38) +
+// seqBuffer.substring(39, 49) + "--" + seqBuffer.substring(49))); // One A is deleted for shift change specified below.
+
+ BioJavaSequenceDataProvider<DNASequence, NucleotideCompound> sequenceProvider =
new BioJavaSequenceDataProvider<DNASequence, NucleotideCompound>(
new BioJavaTokenSet<NucleotideCompound>(
AlignmentAmbiguityNucleotideCompoundSet.getAlignmentAmbiguityNucleotideCompoundSet()),
alignment);
-
+
AlignmentArea result = new AlignmentArea();
result.getContentArea().setSequenceProvider(sequenceProvider, false);
SequenceIndexArea sequenceIndexArea = new SequenceIndexArea(result.getContentArea());
//sequenceIndexArea.setFirstIndex(5);
//sequenceIndexArea.setHeight(25);
result.getContentArea().getDataAreas().getTopAreas().add(sequenceIndexArea);
-
+
// PherogramArea pherogramArea = new PherogramArea(result, pherogramProvider);
// pherogramArea.setFirstSeqPos(34 + 5);
// pherogramArea.setLeftCutPosition(34);
// result.getDataAreas().getSequenceAreas(sequenceProvider.sequenceIDByName("Sequence 4")).add(pherogramArea);
PherogramProvider pherogramProvider = new BioJavaPherogramProvider(ChromatogramFactory.create(
- new File("D:\\Users\\BenStoever\\Documents\\Studium\\Projekte\\Promotion\\EDITor\\Quelltexte\\LibrAlign branch\\Repository\\eu.etaxonomy.taxeditor.editor\\src\\main\\resources\\AlignmentTestData\\JR430_JR-P01.ab1")));
+ new File("/home/pplitzner/svn/LibrAlign/taxeditor/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR430_JR-P01.ab1")));
PherogramArea pherogramArea = new PherogramArea(result.getContentArea(), pherogramProvider);
pherogramArea.setFirstSeqPos(1);
pherogramArea.setLeftCutPosition(13);
result.getContentArea().getDataAreas().getSequenceAreas(sequenceProvider.sequenceIDByName("Read 1")).add(pherogramArea);
pherogramProvider = new ReverseComplementPherogramProvider(new BioJavaPherogramProvider(ChromatogramFactory.create(
- 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"))));
+ new File("/home/pplitzner/svn/LibrAlign/taxeditor/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR444_JR-P05.ab1"))));
pherogramArea = new PherogramArea(result.getContentArea(), pherogramProvider);
pherogramArea.setFirstSeqPos(1);
pherogramArea.setLeftCutPosition(267);
pherogramArea.setVerticalScale(20 * pherogramArea.getVerticalScale());
result.getContentArea().getDataAreas().getSequenceAreas(sequenceProvider.sequenceIDByName("Read 2")).add(pherogramArea);
-
+
result.getContentArea().getDataAreas().getBottomAreas().add(new ConsensusSequenceArea(result.getContentArea()));
return result;
}
catch (Exception e) {
throw new RuntimeException(e);
}
-
-// Alignment<DNASequence, NucleotideCompound> alignment =
+
+// Alignment<DNASequence, NucleotideCompound> alignment =
// new SimpleAlignment<DNASequence, NucleotideCompound>();
// alignment.add("Sequence 1", new DNASequence("ATCGTAGATCGTAGATCGTAGATCGTAGATCGTAGATCGTAGATCGTAG"));
// alignment.add("Sequence 2", new DNASequence("AT-GTTG"));
// alignment.add("Sequence 3", new DNASequence("AT-GTAG"));
-//
-// BioJavaSequenceDataProvider<DNASequence, NucleotideCompound> sequenceProvider =
+//
+// BioJavaSequenceDataProvider<DNASequence, NucleotideCompound> sequenceProvider =
// new BioJavaSequenceDataProvider<DNASequence, NucleotideCompound>(
// new BioJavaTokenSet<NucleotideCompound>(
// AlignmentAmbiguityNucleotideCompoundSet.getAlignmentAmbiguityNucleotideCompoundSet()),
// alignment);
-//
+//
// AlignmentArea result = new AlignmentArea();
// result.setSequenceProvider(sequenceProvider, false);
// SequenceIndexArea sequenceIndexArea = new SequenceIndexArea(result);
// result.getDataAreas().getBottomAreas().add(new ConsensusSequenceArea(result));
// return result;
}
-
-
+
+
/* (non-Javadoc)
* @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
//getSite().setSelectionProvider(provider)
}
-
+
/* (non-Javadoc)
* @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
*/
}
-
+
/* (non-Javadoc)
* @see org.eclipse.ui.part.EditorPart#doSaveAs()
*/
// TODO Auto-generated method stub
}
-
+
/* (non-Javadoc)
* @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
setSite(site);
setInput(input);
}
-
+
/* (non-Javadoc)
* @see org.eclipse.ui.part.EditorPart#isDirty()
return false;
}
-
+
/* (non-Javadoc)
* @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
*/
// TODO Auto-generated method stub
return false;
}
-
+
/* (non-Javadoc)
* @see org.eclipse.ui.part.WorkbenchPart#setFocus()