1 |
|
package jalview.ws.dbsources; |
2 |
|
|
3 |
|
import static org.testng.Assert.assertEquals; |
4 |
|
import static org.testng.Assert.assertFalse; |
5 |
|
import static org.testng.Assert.assertNotNull; |
6 |
|
import static org.testng.Assert.assertTrue; |
7 |
|
|
8 |
|
import jalview.analysis.AlignSeq; |
9 |
|
import jalview.bin.Cache; |
10 |
|
import jalview.datamodel.AlignmentI; |
11 |
|
import jalview.datamodel.DBRefSource; |
12 |
|
import jalview.datamodel.SequenceI; |
13 |
|
import jalview.ext.ensembl.EnsemblGenomes; |
14 |
|
import jalview.fts.api.FTSData; |
15 |
|
import jalview.fts.api.FTSDataColumnI; |
16 |
|
import jalview.fts.api.FTSRestClientI; |
17 |
|
import jalview.fts.core.FTSRestRequest; |
18 |
|
import jalview.fts.core.FTSRestResponse; |
19 |
|
import jalview.fts.service.uniprot.UniProtFTSRestClient; |
20 |
|
import jalview.ws.SequenceFetcher; |
21 |
|
import jalview.ws.seqfetcher.DbSourceProxy; |
22 |
|
|
23 |
|
import java.util.ArrayList; |
24 |
|
import java.util.List; |
25 |
|
|
26 |
|
import org.testng.annotations.BeforeTest; |
27 |
|
import org.testng.annotations.DataProvider; |
28 |
|
import org.testng.annotations.Test; |
29 |
|
|
30 |
|
|
31 |
|
|
32 |
|
|
33 |
|
|
34 |
|
|
35 |
|
|
36 |
|
|
37 |
|
|
38 |
|
|
39 |
|
|
|
|
| 12.8% |
Uncovered Elements: 34 (39) |
Complexity: 4 |
Complexity Density: 0.11 |
|
40 |
|
public class RemoteFormatTest |
41 |
|
{ |
42 |
|
SequenceFetcher sf; |
43 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (4) |
Complexity: 1 |
Complexity Density: 0.25 |
|
44 |
1 |
@BeforeTest(alwaysRun = true)... |
45 |
|
public void setUp() throws Exception |
46 |
|
{ |
47 |
1 |
Cache.loadProperties("test/jalview/io/testProps.jvprops"); |
48 |
|
|
49 |
1 |
Cache.applicationProperties.setProperty("STRUCT_FROM_PDB", |
50 |
|
Boolean.TRUE.toString()); |
51 |
1 |
Cache.applicationProperties.setProperty("ADD_SS_ANN", |
52 |
|
Boolean.TRUE.toString()); |
53 |
|
|
54 |
1 |
sf = new SequenceFetcher(); |
55 |
|
} |
56 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
57 |
0 |
@DataProvider(name = "AccessionData")... |
58 |
|
protected Object[][] getAccessions() |
59 |
|
{ |
60 |
0 |
return new Object[][] { { DBRefSource.UNIPROT, "P30419" }, |
61 |
|
{ DBRefSource.PDB, "1QIP" }, { DBRefSource.EMBL, "X53828" }, |
62 |
|
{ DBRefSource.EMBLCDS, "CAA37824" }, |
63 |
|
{ DBRefSource.ENSEMBL, "ENSG00000157764" }, |
64 |
|
{ new EnsemblGenomes().getDbSource(), "DDB_G0283883" }, |
65 |
|
{ new PfamFull().getDbSource(), "PF03760" }, |
66 |
|
{ new PfamSeed().getDbSource(), "PF03760" }, |
67 |
|
{ new RfamSeed().getDbSource(), "RF00014" } }; |
68 |
|
} |
69 |
|
|
|
|
| 0% |
Uncovered Elements: 10 (10) |
Complexity: 1 |
Complexity Density: 0.1 |
4-
|
|
70 |
0 |
@Test(groups = "Network", dataProvider = "AccessionData")... |
71 |
|
public void testFetchAccession(String dbSource, String accessionId) |
72 |
|
throws Exception |
73 |
|
{ |
74 |
0 |
System.out.println("Fetching " + accessionId + " from " + dbSource); |
75 |
0 |
List<DbSourceProxy> sps = sf.getSourceProxy(dbSource); |
76 |
0 |
assertFalse(sps.isEmpty()); |
77 |
0 |
AlignmentI al = sps.get(0).getSequenceRecords(accessionId); |
78 |
0 |
assertNotNull(al); |
79 |
0 |
assertTrue(al.getHeight() > 0); |
80 |
0 |
SequenceI sq = al.getSequenceAt(0); |
81 |
|
|
82 |
|
|
83 |
0 |
assertTrue(sq.getDBRefs().size() > 0, "No DBRef on sequence."); |
84 |
|
|
85 |
|
|
86 |
0 |
int length = AlignSeq.extractGaps("-. ", sq.getSequenceAsString()) |
87 |
|
.length(); |
88 |
0 |
assertEquals(sq.getEnd() - sq.getStart() + 1, length, |
89 |
|
"Sequence start/end doesn't match number of residues in sequence"); |
90 |
|
} |
91 |
|
|
|
|
| 0% |
Uncovered Elements: 20 (20) |
Complexity: 1 |
Complexity Density: 0.05 |
4-
|
|
92 |
0 |
@Test(groups = { "Network" })... |
93 |
|
public void testUniprotFreeTextSearch() throws Exception |
94 |
|
{ |
95 |
0 |
List<FTSDataColumnI> wantedFields = new ArrayList<>(); |
96 |
0 |
FTSRestClientI client = UniProtFTSRestClient.getInstance(); |
97 |
0 |
wantedFields.add(client.getDataColumnByNameOrCode("id")); |
98 |
0 |
wantedFields.add(client.getDataColumnByNameOrCode("entry name")); |
99 |
0 |
wantedFields.add(client.getDataColumnByNameOrCode("organism")); |
100 |
0 |
wantedFields.add(client.getDataColumnByNameOrCode("reviewed")); |
101 |
0 |
wantedFields.add(client.getDataColumnByNameOrCode("length")); |
102 |
|
|
103 |
0 |
FTSRestRequest request = new FTSRestRequest(); |
104 |
0 |
request.setAllowEmptySeq(false); |
105 |
0 |
request.setResponseSize(100); |
106 |
0 |
request.setFieldToSearchBy("Search All"); |
107 |
0 |
request.setSearchTerm("metanephrops"); |
108 |
0 |
request.setWantedFields(wantedFields); |
109 |
|
|
110 |
0 |
FTSRestResponse response; |
111 |
0 |
response = client.executeRequest(request); |
112 |
0 |
assertTrue(response.getNumberOfItemsFound() > 20); |
113 |
0 |
assertTrue(response.getSearchSummary() != null); |
114 |
0 |
assertTrue(response.getSearchSummary().size() > 20); |
115 |
|
|
116 |
0 |
FTSData header = response.getSearchSummary().iterator().next(); |
117 |
0 |
assertFalse( |
118 |
|
header.getSummaryData()[0].toString().equalsIgnoreCase("Entry"), |
119 |
|
"Failed to filter out summary header row"); |
120 |
|
} |
121 |
|
} |