1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
package jalview.ext.ensembl; |
22 |
|
|
23 |
|
import static org.testng.AssertJUnit.assertEquals; |
24 |
|
import static org.testng.AssertJUnit.assertSame; |
25 |
|
|
26 |
|
import jalview.datamodel.Alignment; |
27 |
|
import jalview.datamodel.SequenceFeature; |
28 |
|
import jalview.datamodel.SequenceI; |
29 |
|
import jalview.datamodel.features.SequenceFeatures; |
30 |
|
import jalview.gui.JvOptionPane; |
31 |
|
import jalview.io.DataSourceType; |
32 |
|
import jalview.io.FastaFile; |
33 |
|
import jalview.io.FileParse; |
34 |
|
import jalview.io.gff.SequenceOntologyFactory; |
35 |
|
import jalview.io.gff.SequenceOntologyLite; |
36 |
|
|
37 |
|
import java.lang.reflect.Method; |
38 |
|
import java.util.Arrays; |
39 |
|
import java.util.List; |
40 |
|
|
41 |
|
import org.testng.Assert; |
42 |
|
import org.testng.annotations.AfterClass; |
43 |
|
import org.testng.annotations.BeforeClass; |
44 |
|
import org.testng.annotations.DataProvider; |
45 |
|
import org.testng.annotations.Test; |
46 |
|
|
|
|
| 75.8% |
Uncovered Elements: 15 (62) |
Complexity: 9 |
Complexity Density: 0.17 |
|
47 |
|
public class EnsemblSeqProxyTest |
48 |
|
{ |
49 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
|
50 |
1 |
@BeforeClass(alwaysRun = true)... |
51 |
|
public void setUpJvOptionPane() |
52 |
|
{ |
53 |
1 |
JvOptionPane.setInteractiveMode(false); |
54 |
1 |
JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); |
55 |
|
} |
56 |
|
|
57 |
|
private static final Object[][] allSeqs = new Object[][] { |
58 |
|
{ |
59 |
|
new EnsemblProtein(), |
60 |
|
"CCDS5863.1", |
61 |
|
">CCDS5863.1\n" |
62 |
|
+ "MAALSGGGGGGAEPGQALFNGDMEPEAGAGAGAAASSAADPAIPEEVWNIKQMIKLTQEH\n" |
63 |
|
+ "IEALLDKFGGEHNPPSIYLEAYEEYTSKLDALQQREQQLLESLGNGTDFSVSSSASMDTV\n" |
64 |
|
+ "TSSSSSSLSVLPSSLSVFQNPTDVARSNPKSPQKPIVRVFLPNKQRTVVPARCGVTVRDS\n" |
65 |
|
+ "LKKALMMRGLIPECCAVYRIQDGEKKPIGWDTDISWLTGEELHVEVLENVPLTTHNFVRK\n" |
66 |
|
+ "TFFTLAFCDFCRKLLFQGFRCQTCGYKFHQRCSTEVPLMCVNYDQLDLLFVSKFFEHHPI\n" |
67 |
|
+ "PQEEASLAETALTSGSSPSAPASDSIGPQILTSPSPSKSIPIPQPFRPADEDHRNQFGQR\n" |
68 |
|
+ "DRSSSAPNVHINTIEPVNIDDLIRDQGFRGDGGSTTGLSATPPASLPGSLTNVKALQKSP\n" |
69 |
|
+ "GPQRERKSSSSSEDRNRMKTLGRRDSSDDWEIPDGQITVGQRIGSGSFGTVYKGKWHGDV\n" |
70 |
|
+ "AVKMLNVTAPTPQQLQAFKNEVGVLRKTRHVNILLFMGYSTKPQLAIVTQWCEGSSLYHH\n" |
71 |
|
+ "LHIIETKFEMIKLIDIARQTAQGMDYLHAKSIIHRDLKSNNIFLHEDLTVKIGDFGLATV\n" |
72 |
|
+ "KSRWSGSHQFEQLSGSILWMAPEVIRMQDKNPYSFQSDVYAFGIVLYELMTGQLPYSNIN\n" |
73 |
|
+ "NRDQIIFMVGRGYLSPDLSKVRSNCPKAMKRLMAECLKKKRDERPLFPQILASIELLARS\n" |
74 |
|
+ "LPKIHRSASEPSLNRAGFQTEDFSLYACASPKTPIQAGGYGAFPVH\n" }, |
75 |
|
{ |
76 |
|
new EnsemblCdna(), |
77 |
|
"CCDS5863.1", |
78 |
|
">CCDS5863.1\n" |
79 |
|
+ "ATGGCGGCGCTGAGCGGTGGCGGTGGTGGCGGCGCGGAGCCGGGCCAGGCTCTGTTCAAC\n" |
80 |
|
+ "GGGGACATGGAGCCCGAGGCCGGCGCCGGCGCCGGCGCCGCGGCCTCTTCGGCTGCGGAC\n" |
81 |
|
+ "CCTGCCATTCCGGAGGAGGTGTGGAATATCAAACAAATGATTAAGTTGACACAGGAACAT\n" |
82 |
|
+ "ATAGAGGCCCTATTGGACAAATTTGGTGGGGAGCATAATCCACCATCAATATATCTGGAG\n" |
83 |
|
+ "GCCTATGAAGAATACACCAGCAAGCTAGATGCACTCCAACAAAGAGAACAACAGTTATTG\n" |
84 |
|
+ "GAATCTCTGGGGAACGGAACTGATTTTTCTGTTTCTAGCTCTGCATCAATGGATACCGTT\n" |
85 |
|
+ "ACATCTTCTTCCTCTTCTAGCCTTTCAGTGCTACCTTCATCTCTTTCAGTTTTTCAAAAT\n" |
86 |
|
+ "CCCACAGATGTGGCACGGAGCAACCCCAAGTCACCACAAAAACCTATCGTTAGAGTCTTC\n" |
87 |
|
+ "CTGCCCAACAAACAGAGGACAGTGGTACCTGCAAGGTGTGGAGTTACAGTCCGAGACAGT\n" |
88 |
|
+ "CTAAAGAAAGCACTGATGATGAGAGGTCTAATCCCAGAGTGCTGTGCTGTTTACAGAATT\n" |
89 |
|
+ "CAGGATGGAGAGAAGAAACCAATTGGTTGGGACACTGATATTTCCTGGCTTACTGGAGAA\n" |
90 |
|
+ "GAATTGCATGTGGAAGTGTTGGAGAATGTTCCACTTACAACACACAACTTTGTACGAAAA\n" |
91 |
|
+ "ACGTTTTTCACCTTAGCATTTTGTGACTTTTGTCGAAAGCTGCTTTTCCAGGGTTTCCGC\n" |
92 |
|
+ "TGTCAAACATGTGGTTATAAATTTCACCAGCGTTGTAGTACAGAAGTTCCACTGATGTGT\n" |
93 |
|
+ "GTTAATTATGACCAACTTGATTTGCTGTTTGTCTCCAAGTTCTTTGAACACCACCCAATA\n" |
94 |
|
+ "CCACAGGAAGAGGCGTCCTTAGCAGAGACTGCCCTAACATCTGGATCATCCCCTTCCGCA\n" |
95 |
|
+ "CCCGCCTCGGACTCTATTGGGCCCCAAATTCTCACCAGTCCGTCTCCTTCAAAATCCATT\n" |
96 |
|
+ "CCAATTCCACAGCCCTTCCGACCAGCAGATGAAGATCATCGAAATCAATTTGGGCAACGA\n" |
97 |
|
+ "GACCGATCCTCATCAGCTCCCAATGTGCATATAAACACAATAGAACCTGTCAATATTGAT\n" |
98 |
|
+ "GACTTGATTAGAGACCAAGGATTTCGTGGTGATGGAGGATCAACCACAGGTTTGTCTGCT\n" |
99 |
|
+ "ACCCCCCCTGCCTCATTACCTGGCTCACTAACTAACGTGAAAGCCTTACAGAAATCTCCA\n" |
100 |
|
+ "GGACCTCAGCGAGAAAGGAAGTCATCTTCATCCTCAGAAGACAGGAATCGAATGAAAACA\n" |
101 |
|
+ "CTTGGTAGACGGGACTCGAGTGATGATTGGGAGATTCCTGATGGGCAGATTACAGTGGGA\n" |
102 |
|
+ "CAAAGAATTGGATCTGGATCATTTGGAACAGTCTACAAGGGAAAGTGGCATGGTGATGTG\n" |
103 |
|
+ "GCAGTGAAAATGTTGAATGTGACAGCACCTACACCTCAGCAGTTACAAGCCTTCAAAAAT\n" |
104 |
|
+ "GAAGTAGGAGTACTCAGGAAAACACGACATGTGAATATCCTACTCTTCATGGGCTATTCC\n" |
105 |
|
+ "ACAAAGCCACAACTGGCTATTGTTACCCAGTGGTGTGAGGGCTCCAGCTTGTATCACCAT\n" |
106 |
|
+ "CTCCATATCATTGAGACCAAATTTGAGATGATCAAACTTATAGATATTGCACGACAGACT\n" |
107 |
|
+ "GCACAGGGCATGGATTACTTACACGCCAAGTCAATCATCCACAGAGACCTCAAGAGTAAT\n" |
108 |
|
+ "AATATATTTCTTCATGAAGACCTCACAGTAAAAATAGGTGATTTTGGTCTAGCTACAGTG\n" |
109 |
|
+ "AAATCTCGATGGAGTGGGTCCCATCAGTTTGAACAGTTGTCTGGATCCATTTTGTGGATG\n" |
110 |
|
+ "GCACCAGAAGTCATCAGAATGCAAGATAAAAATCCATACAGCTTTCAGTCAGATGTATAT\n" |
111 |
|
+ "GCATTTGGAATTGTTCTGTATGAATTGATGACTGGACAGTTACCTTATTCAAACATCAAC\n" |
112 |
|
+ "AACAGGGACCAGATAATTTTTATGGTGGGACGAGGATACCTGTCTCCAGATCTCAGTAAG\n" |
113 |
|
+ "GTACGGAGTAACTGTCCAAAAGCCATGAAGAGATTAATGGCAGAGTGCCTCAAAAAGAAA\n" |
114 |
|
+ "AGAGATGAGAGACCACTCTTTCCCCAAATTCTCGCCTCTATTGAGCTGCTGGCCCGCTCA\n" |
115 |
|
+ "TTGCCAAAAATTCACCGCAGTGCATCAGAACCCTCCTTGAATCGGGCTGGTTTCCAAACA\n" |
116 |
|
+ "GAGGATTTTAGTCTATATGCTTGTGCTTCTCCAAAAACACCCATCCAGGCAGGGGGATAT\n" |
117 |
|
+ "GGTGCGTTTCCTGTCCACTGA\n" }, |
118 |
|
{ |
119 |
|
new EnsemblProtein(), |
120 |
|
"ENSP00000288602", |
121 |
|
">ENSP00000288602\n" |
122 |
|
+ "MAALSGGGGGGAEPGQALFNGDMEPEAGAGAGAAASSAADPAIPEEVWNIKQMIKLTQEH\n" |
123 |
|
+ "IEALLDKFGGEHNPPSIYLEAYEEYTSKLDALQQREQQLLESLGNGTDFSVSSSASMDTV\n" |
124 |
|
+ "TSSSSSSLSVLPSSLSVFQNPTDVARSNPKSPQKPIVRVFLPNKQRTVVPARCGVTVRDS\n" |
125 |
|
+ "LKKALMMRGLIPECCAVYRIQDGEKKPIGWDTDISWLTGEELHVEVLENVPLTTHNFVRK\n" |
126 |
|
+ "TFFTLAFCDFCRKLLFQGFRCQTCGYKFHQRCSTEVPLMCVNYDQLDLLFVSKFFEHHPI\n" |
127 |
|
+ "PQEEASLAETALTSGSSPSAPASDSIGPQILTSPSPSKSIPIPQPFRPADEDHRNQFGQR\n" |
128 |
|
+ "DRSSSAPNVHINTIEPVNIDDLIRDQGFRGDGGSTTGLSATPPASLPGSLTNVKALQKSP\n" |
129 |
|
+ "GPQRERKSSSSSEDRNRMKTLGRRDSSDDWEIPDGQITVGQRIGSGSFGTVYKGKWHGDV\n" |
130 |
|
+ "AVKMLNVTAPTPQQLQAFKNEVGVLRKTRHVNILLFMGYSTKPQLAIVTQWCEGSSLYHH\n" |
131 |
|
+ "LHIIETKFEMIKLIDIARQTAQGMDYLHAKSIIHRDLKSNNIFLHEDLTVKIGDFGLATV\n" |
132 |
|
+ "KSRWSGSHQFEQLSGSILWMAPEVIRMQDKNPYSFQSDVYAFGIVLYELMTGQLPYSNIN\n" |
133 |
|
+ "NRDQIIFMVGRGYLSPDLSKVRSNCPKAMKRLMAECLKKKRDERPLFPQILASIELLARS\n" |
134 |
|
+ "LPKIHRSASEPSLNRAGFQTEDFSLYACASPKTPIQAGGYGAFPVH" } }; |
135 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
136 |
1 |
@BeforeClass(alwaysRun = true)... |
137 |
|
public void setUp() |
138 |
|
{ |
139 |
1 |
SequenceOntologyFactory.setInstance(new SequenceOntologyLite()); |
140 |
|
} |
141 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
142 |
1 |
@AfterClass(alwaysRun = true)... |
143 |
|
public void tearDown() |
144 |
|
{ |
145 |
1 |
SequenceOntologyFactory.setInstance(null); |
146 |
|
} |
147 |
|
|
|
|
| 0% |
Uncovered Elements: 2 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
|
148 |
0 |
@DataProvider(name = "ens_seqs")... |
149 |
|
public Object[][] createData(Method m) |
150 |
|
{ |
151 |
0 |
System.out.println(m.getName()); |
152 |
0 |
return allSeqs; |
153 |
|
} |
154 |
|
|
|
|
| 0% |
Uncovered Elements: 11 (11) |
Complexity: 1 |
Complexity Density: 0.09 |
4-
|
|
155 |
0 |
@Test(dataProvider = "ens_seqs", suiteName = "live")... |
156 |
|
public void testGetOneSeqs(EnsemblRestClient proxy, String sq, |
157 |
|
String fastasq) throws Exception |
158 |
|
{ |
159 |
0 |
FileParse fp = proxy.getSequenceReader(Arrays |
160 |
|
.asList(new String[] { sq })); |
161 |
0 |
SequenceI[] sqs = new FastaFile(fp).getSeqsAsArray(); |
162 |
0 |
FastaFile trueRes = new FastaFile(fastasq, DataSourceType.PASTE); |
163 |
0 |
SequenceI[] trueSqs = trueRes.getSeqsAsArray(); |
164 |
0 |
Assert.assertEquals(sqs.length, trueSqs.length, |
165 |
|
"Different number of sequences retrieved for query " + sq); |
166 |
0 |
Alignment ral = new Alignment(sqs); |
167 |
0 |
for (SequenceI tr : trueSqs) |
168 |
|
{ |
169 |
0 |
SequenceI[] rseq; |
170 |
0 |
Assert.assertNotNull( |
171 |
|
rseq = ral.findSequenceMatch(tr.getName()), |
172 |
|
"Couldn't find sequences matching expected sequence " |
173 |
|
+ tr.getName()); |
174 |
0 |
Assert.assertEquals(rseq.length, 1, |
175 |
|
"Expected only one sequence for sequence ID " + tr.getName()); |
176 |
0 |
Assert.assertEquals( |
177 |
|
rseq[0].getSequenceAsString(), |
178 |
|
tr.getSequenceAsString(), |
179 |
|
"Sequences differ for " + tr.getName() + "\n" + "Exp:" |
180 |
|
+ tr.getSequenceAsString() + "\n" + "Got:" |
181 |
|
+ rseq[0].getSequenceAsString()); |
182 |
|
|
183 |
|
} |
184 |
|
} |
185 |
|
|
|
|
| - |
Uncovered Elements: 0 (0) |
Complexity: 1 |
Complexity Density: - |
1PASS
|
|
186 |
1 |
@Test(groups = "Functional")... |
187 |
|
public void getGenomicRangesFromFeatures() |
188 |
|
{ |
189 |
|
|
190 |
|
} |
191 |
|
|
192 |
|
|
193 |
|
|
194 |
|
|
195 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (12) |
Complexity: 1 |
Complexity Density: 0.08 |
1PASS
|
|
196 |
1 |
@Test(groups = "Functional")... |
197 |
|
public void testReverseComplementAllele() |
198 |
|
{ |
199 |
1 |
StringBuilder sb = new StringBuilder(); |
200 |
1 |
EnsemblSeqProxy.reverseComplementAllele(sb, "G"); |
201 |
1 |
EnsemblSeqProxy.reverseComplementAllele(sb, "g"); |
202 |
1 |
EnsemblSeqProxy.reverseComplementAllele(sb, "C"); |
203 |
1 |
EnsemblSeqProxy.reverseComplementAllele(sb, "T"); |
204 |
1 |
EnsemblSeqProxy.reverseComplementAllele(sb, "A"); |
205 |
1 |
assertEquals("C,c,G,A,T", sb.toString()); |
206 |
|
|
207 |
1 |
sb = new StringBuilder(); |
208 |
1 |
EnsemblSeqProxy.reverseComplementAllele(sb, "-GATt"); |
209 |
1 |
EnsemblSeqProxy.reverseComplementAllele(sb, "hgmd_mutation"); |
210 |
1 |
EnsemblSeqProxy.reverseComplementAllele(sb, "PhenCode_variation"); |
211 |
1 |
assertEquals("aATC-,hgmd_mutation,PhenCode_variation", sb.toString()); |
212 |
|
} |
213 |
|
|
214 |
|
|
215 |
|
|
216 |
|
|
217 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (9) |
Complexity: 1 |
Complexity Density: 0.11 |
1PASS
|
|
218 |
1 |
@Test(groups = "Functional")... |
219 |
|
public void testReverseComplementAlleles() |
220 |
|
{ |
221 |
1 |
String alleles = "C,G,-TAC,HGMD_MUTATION,gac"; |
222 |
1 |
SequenceFeature sf = new SequenceFeature("sequence_variant", alleles, |
223 |
|
1, 2, 0f, null); |
224 |
1 |
sf.setValue("alleles", alleles); |
225 |
1 |
sf.setAttributes("x=y,z;alleles=" + alleles + ";a=b,c"); |
226 |
|
|
227 |
1 |
EnsemblSeqProxy.reverseComplementAlleles(sf); |
228 |
1 |
String revcomp = "G,C,GTA-,HGMD_MUTATION,gtc"; |
229 |
|
|
230 |
1 |
assertEquals(revcomp, sf.getDescription()); |
231 |
|
|
232 |
1 |
assertEquals(revcomp, sf.getValue("alleles")); |
233 |
|
|
234 |
1 |
assertEquals("x=y,z;alleles=" + revcomp + ";a=b,c", sf.getAttributes()); |
235 |
|
} |
236 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (15) |
Complexity: 1 |
Complexity Density: 0.07 |
1PASS
|
|
237 |
1 |
@Test(groups = "Functional")... |
238 |
|
public void testSortFeatures() |
239 |
|
{ |
240 |
1 |
SequenceFeature sf1 = new SequenceFeature("", "", 10, 15, 0f, null); |
241 |
1 |
SequenceFeature sf2 = new SequenceFeature("", "", 8, 12, 0f, null); |
242 |
1 |
SequenceFeature sf3 = new SequenceFeature("", "", 8, 13, 0f, null); |
243 |
1 |
SequenceFeature sf4 = new SequenceFeature("", "", 11, 11, 0f, null); |
244 |
1 |
List<SequenceFeature> sfs = Arrays.asList(new SequenceFeature[] { sf1, |
245 |
|
sf2, sf3, sf4 }); |
246 |
|
|
247 |
|
|
248 |
|
|
249 |
1 |
SequenceFeatures.sortFeatures(sfs, true); |
250 |
1 |
assertSame(sfs.get(0), sf2); |
251 |
1 |
assertSame(sfs.get(1), sf3); |
252 |
1 |
assertSame(sfs.get(2), sf1); |
253 |
1 |
assertSame(sfs.get(3), sf4); |
254 |
|
|
255 |
|
|
256 |
1 |
SequenceFeatures.sortFeatures(sfs, false); |
257 |
1 |
assertSame(sfs.get(0), sf1); |
258 |
1 |
assertSame(sfs.get(1), sf3); |
259 |
1 |
assertSame(sfs.get(2), sf2); |
260 |
1 |
assertSame(sfs.get(3), sf4); |
261 |
|
} |
262 |
|
} |