10 |
10 |
package eu.etaxonomy.taxeditor.editor.molecular;
|
11 |
11 |
|
12 |
12 |
|
13 |
|
import java.io.File;
|
14 |
|
|
15 |
13 |
import info.bioinfweb.commons.bio.biojava3.alignment.SimpleAlignment;
|
16 |
14 |
import info.bioinfweb.commons.bio.biojava3.alignment.template.Alignment;
|
17 |
15 |
import info.bioinfweb.commons.bio.biojava3.core.sequence.compound.AlignmentAmbiguityNucleotideCompoundSet;
|
... | ... | |
25 |
23 |
import info.bioinfweb.libralign.sequenceprovider.implementations.BioJavaSequenceDataProvider;
|
26 |
24 |
import info.bioinfweb.libralign.sequenceprovider.tokenset.BioJavaTokenSet;
|
27 |
25 |
|
|
26 |
import java.io.File;
|
|
27 |
|
28 |
28 |
import org.biojava.bio.chromatogram.ChromatogramFactory;
|
29 |
29 |
import org.biojava3.core.sequence.DNASequence;
|
30 |
30 |
import org.biojava3.core.sequence.compound.NucleotideCompound;
|
... | ... | |
43 |
43 |
* a consensus sequence.
|
44 |
44 |
* <p>
|
45 |
45 |
* The contained GUI components used to edit the alignment come from <a href="http://bioinfweb.info/LibrAlign/">LibrAlign</a>.
|
46 |
|
*
|
|
46 |
*
|
47 |
47 |
* @author pplitzner
|
48 |
48 |
* @author Ben Stöver
|
49 |
49 |
* @date 04.08.2014
|
50 |
50 |
*/
|
51 |
51 |
public class AlignmentEditor extends EditorPart {
|
52 |
52 |
public static final String ID = "eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor";
|
53 |
|
|
|
53 |
|
54 |
54 |
private AlignmentArea alignmentArea;
|
55 |
55 |
|
56 |
56 |
|
... | ... | |
62 |
62 |
// BioJavaPherogramProvider pherogramProvider = new BioJavaPherogramProvider(ChromatogramFactory.create(
|
63 |
63 |
// new File("D:\\Users\\BenStoever\\Documents\\Studium\\Projekte\\Promotion\\EDITor\\Quelltexte\\LibrAlign branch\\Repository\\eu.etaxonomy.taxeditor.editor\\src\\main\\resources\\TestPherogram_qualityScore.scf")));
|
64 |
64 |
//TODO Replace this absolute path with a path working with every workspace location.
|
65 |
|
|
66 |
|
Alignment<DNASequence, NucleotideCompound> alignment =
|
|
65 |
|
|
66 |
Alignment<DNASequence, NucleotideCompound> alignment =
|
67 |
67 |
new SimpleAlignment<DNASequence, NucleotideCompound>();
|
68 |
68 |
alignment.add("Read 1", new DNASequence("TAAGATACAACAAGGTTTCGGGCA-CCTTATCCACGCAGTAAGGGGATCAGAGGTTTTTCTCTCATTCATGTATCGTGGATCAGTAAGGCAATTTTGCTACCCTGTCTGCTCTTTCTAGCATTTTACTAATGCCCCAGAAATTAGGAATAAAGATTTTATATGAAAGAAAGGGCGAATTAATTCATAAGGGACTGGTATCCATTCTTATTTGATTTGATACATTGTATCCATTAACATTACATTGGCGAATTGGGCGAAGGTGCGGAAAGAGAGGGATTCGAACCCTCGGTAAACAAAAGTCTACATAGCAGTTCCAATGCTACGCCTTGAACCACTCGGCCACCTCTCCTACATAAGGATTTTGGTCCCAAACCAAAAAGAGGGAGTTGTTCAAATTAGATTCTTAGGTAGGTCCGGACAACGAATTCAAATGAATAAGGTAAGGGGACATCCCCCCTCCCTCCCCTTTGTTTTTTTCTTTATTTGGTTAGGGCGGGGGACTCGACTCTTATTGAATTTTCATATGTATCACAGCTCGAAACGAAAGAACTCGTGGGGGGGTCGTTTCCTTTTTGGATCTTGAACGACTAGGTTCAAGAGATGAGAGAATTCAGGATACCCACAAGAAAGACTAATCCAATCCATAACGATGTACCAGAAAAGACAATATTTTTATTACCTGACCA"));
|
69 |
69 |
alignment.add("Read 2", new DNASequence("TAAGATACAACAAGGTTTCGGGCAACCTTATCCACGCAGTAAGGGGATCAGAGGTTTTTCTCTCATTCATGTATCGTGGATCAGTAAGGCAATTTTGCTACCCTGTCTGCTCTTTCTAGCATTTTACTAATGCCCCAGAAATTAGGAATAAAGATTTTATATGAAAGAAAGGGCGAATTAATTCATAAGGGACTGGTATCCATTCTTATTTGATTTGATACATTGTATCCATTAACATTACATTGGCGAATTGGGCGAAGGTGCGGAAAGAGAGGGATTCGAACCCTCGGTAAACAAAAGTCTACATAGCAGTTCCAATGCTACGCCTTGAACCACTCGGCCACCTCTCCTACATAAGGATTTTGGTCCCAAACCAAAAAGAGGGAGTTGTTCAAATTAGATTCTTAGGTAGGTCCGGACAACGAATTCAAATGAATAAGGTAAGGGGACATCCCCCCTCCCTCCCCTTTGTTTTTTTCTTTATTTGGTTAGGGCGGGGGACTCGACTCTTATTGAATTTTCATATGTATCACAGCTCGAAACGAAAGAACTCGTGGGGGGGTCGTTTCCTTTTTGGATCTTGAACGACTAGGTTCAAGAGATGAGAGAATTCAGGATACCCACAAGAAAGACTAATCCAATCCATAACGATGTACCAGAAAAGACAATATTTTTATTACCTGACCA"));
|
70 |
70 |
//alignment.add("Consensus edit 1", new DNASequence("TAAGATACAACAAGGTTTCGGGCAACCTTATCCACGCAGTAAGGGGATCAGAGGTTTTTCTCTCATTCATGTATCGTGGATCAGTAAGGCAATTTTGCTACCCTGTCTGCTCTTTCTAGCATTTTACTAATGCCCCAGAAATTAGGAATAAAGATTTTATATGAAAGAAAGGGCGAATTAATTCATAAGGGACTGGTATCCATTCTTATTTGATTTGATACATTGTATCCATTAACATTACATTGGCGAATTGGGCGAAGGTGCGGAAAGAGAGGGATTCGAACCCTCGGTAAACAAAAGTCTACATAGCAGTTCCAATGCTACGCCTTGAACCACTCGGCCACCTCTCCTACATAAGGATTTTGGTCCCAAACCAAAAAGAGGGAGTTGTTCAAATTAGATTCTTAGGTAGGTCCGGACAACGAATTCAAATGAATAAGGTAAGGGGACATCCCCCCTCCCTCCCCTTTGTTTTTTTCTTTATTTGGTTAGGGCGGGGGACTCGACTCTTATTGAATTTTCATATGTATCACAGCTCGAAACGAAAGAACTCGTGGGGGGGTCGTTTCCTTTTTGGATCTTGAACGACTAGGTTCAAGAGATGAGAGAATTCAGGATACCCACAAGAAAGACTAATCCAATCCATAACGATGTACCAGAAAAGACAATATTTTTATTACCTGACCA"));
|
71 |
|
|
|
71 |
|
72 |
72 |
// StringBuffer seqBuffer = new StringBuffer(pherogramProvider.getSequenceLength());
|
73 |
73 |
// for (int i = 1; i <= pherogramProvider.getSequenceLength(); i++) {
|
74 |
74 |
// seqBuffer.append(pherogramProvider.getBaseCall(i).getUpperedBase());
|
75 |
75 |
// }
|
76 |
|
// alignment.add("Sequence 4", new DNASequence("-----" + seqBuffer.substring(0, 38) +
|
77 |
|
// seqBuffer.substring(39, 49) + "--" + seqBuffer.substring(49))); // One A is deleted for shift change specified below.
|
78 |
|
|
79 |
|
BioJavaSequenceDataProvider<DNASequence, NucleotideCompound> sequenceProvider =
|
|
76 |
// alignment.add("Sequence 4", new DNASequence("-----" + seqBuffer.substring(0, 38) +
|
|
77 |
// seqBuffer.substring(39, 49) + "--" + seqBuffer.substring(49))); // One A is deleted for shift change specified below.
|
|
78 |
|
|
79 |
BioJavaSequenceDataProvider<DNASequence, NucleotideCompound> sequenceProvider =
|
80 |
80 |
new BioJavaSequenceDataProvider<DNASequence, NucleotideCompound>(
|
81 |
81 |
new BioJavaTokenSet<NucleotideCompound>(
|
82 |
82 |
AlignmentAmbiguityNucleotideCompoundSet.getAlignmentAmbiguityNucleotideCompoundSet()),
|
83 |
83 |
alignment);
|
84 |
|
|
|
84 |
|
85 |
85 |
AlignmentArea result = new AlignmentArea();
|
86 |
86 |
result.getContentArea().setSequenceProvider(sequenceProvider, false);
|
87 |
87 |
SequenceIndexArea sequenceIndexArea = new SequenceIndexArea(result.getContentArea());
|
88 |
88 |
//sequenceIndexArea.setFirstIndex(5);
|
89 |
89 |
//sequenceIndexArea.setHeight(25);
|
90 |
90 |
result.getContentArea().getDataAreas().getTopAreas().add(sequenceIndexArea);
|
91 |
|
|
|
91 |
|
92 |
92 |
// PherogramArea pherogramArea = new PherogramArea(result, pherogramProvider);
|
93 |
93 |
// pherogramArea.setFirstSeqPos(34 + 5);
|
94 |
94 |
// pherogramArea.setLeftCutPosition(34);
|
... | ... | |
98 |
98 |
// result.getDataAreas().getSequenceAreas(sequenceProvider.sequenceIDByName("Sequence 4")).add(pherogramArea);
|
99 |
99 |
|
100 |
100 |
PherogramProvider pherogramProvider = new BioJavaPherogramProvider(ChromatogramFactory.create(
|
101 |
|
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")));
|
|
101 |
new File("/home/pplitzner/svn/LibrAlign/taxeditor/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR430_JR-P01.ab1")));
|
102 |
102 |
PherogramArea pherogramArea = new PherogramArea(result.getContentArea(), pherogramProvider);
|
103 |
103 |
pherogramArea.setFirstSeqPos(1);
|
104 |
104 |
pherogramArea.setLeftCutPosition(13);
|
... | ... | |
108 |
108 |
result.getContentArea().getDataAreas().getSequenceAreas(sequenceProvider.sequenceIDByName("Read 1")).add(pherogramArea);
|
109 |
109 |
|
110 |
110 |
pherogramProvider = new ReverseComplementPherogramProvider(new BioJavaPherogramProvider(ChromatogramFactory.create(
|
111 |
|
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"))));
|
|
111 |
new File("/home/pplitzner/svn/LibrAlign/taxeditor/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR444_JR-P05.ab1"))));
|
112 |
112 |
pherogramArea = new PherogramArea(result.getContentArea(), pherogramProvider);
|
113 |
113 |
pherogramArea.setFirstSeqPos(1);
|
114 |
114 |
pherogramArea.setLeftCutPosition(267);
|
... | ... | |
116 |
116 |
pherogramArea.setVerticalScale(20 * pherogramArea.getVerticalScale());
|
117 |
117 |
result.getContentArea().getDataAreas().getSequenceAreas(sequenceProvider.sequenceIDByName("Read 2")).add(pherogramArea);
|
118 |
118 |
|
119 |
|
|
|
119 |
|
120 |
120 |
result.getContentArea().getDataAreas().getBottomAreas().add(new ConsensusSequenceArea(result.getContentArea()));
|
121 |
121 |
return result;
|
122 |
122 |
}
|
123 |
123 |
catch (Exception e) {
|
124 |
124 |
throw new RuntimeException(e);
|
125 |
125 |
}
|
126 |
|
|
127 |
|
// Alignment<DNASequence, NucleotideCompound> alignment =
|
|
126 |
|
|
127 |
// Alignment<DNASequence, NucleotideCompound> alignment =
|
128 |
128 |
// new SimpleAlignment<DNASequence, NucleotideCompound>();
|
129 |
129 |
// alignment.add("Sequence 1", new DNASequence("ATCGTAGATCGTAGATCGTAGATCGTAGATCGTAGATCGTAGATCGTAG"));
|
130 |
130 |
// alignment.add("Sequence 2", new DNASequence("AT-GTTG"));
|
131 |
131 |
// alignment.add("Sequence 3", new DNASequence("AT-GTAG"));
|
132 |
|
//
|
133 |
|
// BioJavaSequenceDataProvider<DNASequence, NucleotideCompound> sequenceProvider =
|
|
132 |
//
|
|
133 |
// BioJavaSequenceDataProvider<DNASequence, NucleotideCompound> sequenceProvider =
|
134 |
134 |
// new BioJavaSequenceDataProvider<DNASequence, NucleotideCompound>(
|
135 |
135 |
// new BioJavaTokenSet<NucleotideCompound>(
|
136 |
136 |
// AlignmentAmbiguityNucleotideCompoundSet.getAlignmentAmbiguityNucleotideCompoundSet()),
|
137 |
137 |
// alignment);
|
138 |
|
//
|
|
138 |
//
|
139 |
139 |
// AlignmentArea result = new AlignmentArea();
|
140 |
140 |
// result.setSequenceProvider(sequenceProvider, false);
|
141 |
141 |
// SequenceIndexArea sequenceIndexArea = new SequenceIndexArea(result);
|
... | ... | |
145 |
145 |
// result.getDataAreas().getBottomAreas().add(new ConsensusSequenceArea(result));
|
146 |
146 |
// return result;
|
147 |
147 |
}
|
148 |
|
|
149 |
|
|
|
148 |
|
|
149 |
|
150 |
150 |
/* (non-Javadoc)
|
151 |
151 |
* @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
|
152 |
152 |
*/
|
... | ... | |
157 |
157 |
//getSite().setSelectionProvider(provider)
|
158 |
158 |
}
|
159 |
159 |
|
160 |
|
|
|
160 |
|
161 |
161 |
/* (non-Javadoc)
|
162 |
162 |
* @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
|
163 |
163 |
*/
|
... | ... | |
167 |
167 |
|
168 |
168 |
}
|
169 |
169 |
|
170 |
|
|
|
170 |
|
171 |
171 |
/* (non-Javadoc)
|
172 |
172 |
* @see org.eclipse.ui.part.EditorPart#doSaveAs()
|
173 |
173 |
*/
|
... | ... | |
176 |
176 |
// TODO Auto-generated method stub
|
177 |
177 |
|
178 |
178 |
}
|
179 |
|
|
|
179 |
|
180 |
180 |
|
181 |
181 |
/* (non-Javadoc)
|
182 |
182 |
* @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
|
... | ... | |
186 |
186 |
setSite(site);
|
187 |
187 |
setInput(input);
|
188 |
188 |
}
|
189 |
|
|
|
189 |
|
190 |
190 |
|
191 |
191 |
/* (non-Javadoc)
|
192 |
192 |
* @see org.eclipse.ui.part.EditorPart#isDirty()
|
... | ... | |
197 |
197 |
return false;
|
198 |
198 |
}
|
199 |
199 |
|
200 |
|
|
|
200 |
|
201 |
201 |
/* (non-Javadoc)
|
202 |
202 |
* @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
|
203 |
203 |
*/
|
... | ... | |
206 |
206 |
// TODO Auto-generated method stub
|
207 |
207 |
return false;
|
208 |
208 |
}
|
209 |
|
|
|
209 |
|
210 |
210 |
|
211 |
211 |
/* (non-Javadoc)
|
212 |
212 |
* @see org.eclipse.ui.part.WorkbenchPart#setFocus()
|