1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
package jalview.fts.service.pdb; |
22 |
|
|
23 |
|
import static org.testng.AssertJUnit.assertEquals; |
24 |
|
import static org.testng.AssertJUnit.assertTrue; |
25 |
|
|
26 |
|
import java.io.BufferedReader; |
27 |
|
import java.io.FileReader; |
28 |
|
import java.io.IOException; |
29 |
|
import java.util.ArrayList; |
30 |
|
import java.util.Iterator; |
31 |
|
import java.util.List; |
32 |
|
|
33 |
|
import javax.ws.rs.core.MediaType; |
34 |
|
|
35 |
|
import org.json.simple.JSONArray; |
36 |
|
import org.json.simple.JSONObject; |
37 |
|
import org.json.simple.parser.JSONParser; |
38 |
|
import org.json.simple.parser.ParseException; |
39 |
|
import org.testng.Assert; |
40 |
|
import org.testng.annotations.AfterMethod; |
41 |
|
import org.testng.annotations.BeforeClass; |
42 |
|
import org.testng.annotations.BeforeMethod; |
43 |
|
import org.testng.annotations.Test; |
44 |
|
|
45 |
|
import com.sun.jersey.api.client.Client; |
46 |
|
import com.sun.jersey.api.client.ClientResponse; |
47 |
|
import com.sun.jersey.api.client.WebResource; |
48 |
|
import com.sun.jersey.api.client.config.ClientConfig; |
49 |
|
import com.sun.jersey.api.client.config.DefaultClientConfig; |
50 |
|
|
51 |
|
import jalview.fts.api.FTSDataColumnI; |
52 |
|
import jalview.fts.core.FTSRestClient; |
53 |
|
import jalview.fts.core.FTSRestRequest; |
54 |
|
import jalview.fts.core.FTSRestResponse; |
55 |
|
import jalview.gui.JvOptionPane; |
56 |
|
|
|
|
| 33.3% |
Uncovered Elements: 114 (171) |
Complexity: 29 |
Complexity Density: 0.2 |
|
57 |
|
public class PDBFTSRestClientTest |
58 |
|
{ |
59 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
|
60 |
1 |
@BeforeClass(alwaysRun = true)... |
61 |
|
public void setUpJvOptionPane() |
62 |
|
{ |
63 |
1 |
JvOptionPane.setInteractiveMode(false); |
64 |
1 |
JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); |
65 |
|
} |
66 |
|
|
|
|
| - |
Uncovered Elements: 0 (0) |
Complexity: 1 |
Complexity Density: - |
|
67 |
2 |
@BeforeMethod(alwaysRun = true)... |
68 |
|
public void setUp() throws Exception |
69 |
|
{ |
70 |
|
} |
71 |
|
|
|
|
| - |
Uncovered Elements: 0 (0) |
Complexity: 1 |
Complexity Density: - |
|
72 |
2 |
@AfterMethod(alwaysRun = true)... |
73 |
|
public void tearDown() throws Exception |
74 |
|
{ |
75 |
|
} |
76 |
|
|
|
|
| 0% |
Uncovered Elements: 24 (24) |
Complexity: 3 |
Complexity Density: 0.12 |
4-
|
|
77 |
0 |
@Test(groups = { "External", "Network" })... |
78 |
|
public void executeRequestTest() |
79 |
|
{ |
80 |
0 |
List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>(); |
81 |
0 |
try |
82 |
|
{ |
83 |
0 |
wantedFields.add(PDBFTSRestClient.getInstance() |
84 |
|
.getDataColumnByNameOrCode("molecule_type")); |
85 |
0 |
wantedFields.add(PDBFTSRestClient.getInstance() |
86 |
|
.getDataColumnByNameOrCode("pdb_id")); |
87 |
0 |
wantedFields.add(PDBFTSRestClient.getInstance() |
88 |
|
.getDataColumnByNameOrCode("genus")); |
89 |
0 |
wantedFields.add(PDBFTSRestClient.getInstance() |
90 |
|
.getDataColumnByNameOrCode("gene_name")); |
91 |
0 |
wantedFields.add(PDBFTSRestClient.getInstance() |
92 |
|
.getDataColumnByNameOrCode("title")); |
93 |
|
} catch (Exception e1) |
94 |
|
{ |
95 |
0 |
e1.printStackTrace(); |
96 |
|
} |
97 |
0 |
System.out.println("wantedFields >>" + wantedFields); |
98 |
|
|
99 |
0 |
FTSRestRequest request = new FTSRestRequest(); |
100 |
0 |
request.setAllowEmptySeq(false); |
101 |
0 |
request.setResponseSize(100); |
102 |
0 |
request.setFieldToSearchBy("text:"); |
103 |
0 |
request.setSearchTerm("abc"); |
104 |
0 |
request.setWantedFields(wantedFields); |
105 |
|
|
106 |
0 |
FTSRestResponse response; |
107 |
0 |
try |
108 |
|
{ |
109 |
0 |
response = PDBFTSRestClient.getInstance().executeRequest(request); |
110 |
|
} catch (Exception e) |
111 |
|
{ |
112 |
0 |
e.printStackTrace(); |
113 |
0 |
Assert.fail("Couldn't execute webservice call!"); |
114 |
0 |
return; |
115 |
|
} |
116 |
0 |
assertTrue(response.getNumberOfItemsFound() > 99); |
117 |
0 |
assertTrue(response.getSearchSummary() != null); |
118 |
0 |
assertTrue(response.getSearchSummary().size() > 99); |
119 |
|
} |
120 |
|
|
|
|
| 90.9% |
Uncovered Elements: 1 (11) |
Complexity: 2 |
Complexity Density: 0.18 |
1PASS
|
|
121 |
1 |
@Test(groups = { "Functional" })... |
122 |
|
public void getPDBDocFieldsAsCommaDelimitedStringTest() |
123 |
|
{ |
124 |
1 |
List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>(); |
125 |
1 |
try |
126 |
|
{ |
127 |
1 |
wantedFields.add(PDBFTSRestClient.getInstance() |
128 |
|
.getDataColumnByNameOrCode("molecule_type")); |
129 |
1 |
wantedFields.add(PDBFTSRestClient.getInstance() |
130 |
|
.getDataColumnByNameOrCode("pdb_id")); |
131 |
1 |
wantedFields.add(PDBFTSRestClient.getInstance() |
132 |
|
.getDataColumnByNameOrCode("genus")); |
133 |
1 |
wantedFields.add(PDBFTSRestClient.getInstance() |
134 |
|
.getDataColumnByNameOrCode("gene_name")); |
135 |
1 |
wantedFields.add(PDBFTSRestClient.getInstance() |
136 |
|
.getDataColumnByNameOrCode("title")); |
137 |
|
} catch (Exception e) |
138 |
|
{ |
139 |
0 |
e.printStackTrace(); |
140 |
|
} |
141 |
|
|
142 |
1 |
String expectedResult = "molecule_type,pdb_id,genus,gene_name,title"; |
143 |
1 |
String actualResult = PDBFTSRestClient.getInstance() |
144 |
|
.getDataColumnsFieldsAsCommaDelimitedString(wantedFields); |
145 |
|
|
146 |
1 |
assertEquals("", expectedResult, actualResult); |
147 |
|
} |
148 |
|
|
|
|
| 0% |
Uncovered Elements: 21 (21) |
Complexity: 3 |
Complexity Density: 0.14 |
1PASS
|
|
149 |
0 |
@Test(groups = { "External, Network" })... |
150 |
|
public void parsePDBJsonExceptionStringTest() |
151 |
|
{ |
152 |
0 |
List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>(); |
153 |
0 |
try |
154 |
|
{ |
155 |
0 |
wantedFields.add(PDBFTSRestClient.getInstance() |
156 |
|
.getDataColumnByNameOrCode("molecule_type")); |
157 |
0 |
wantedFields.add(PDBFTSRestClient.getInstance() |
158 |
|
.getDataColumnByNameOrCode("pdb_id")); |
159 |
0 |
wantedFields.add(PDBFTSRestClient.getInstance() |
160 |
|
.getDataColumnByNameOrCode("genus")); |
161 |
0 |
wantedFields.add(PDBFTSRestClient.getInstance() |
162 |
|
.getDataColumnByNameOrCode("gene_name")); |
163 |
0 |
wantedFields.add(PDBFTSRestClient.getInstance() |
164 |
|
.getDataColumnByNameOrCode("title")); |
165 |
|
} catch (Exception e1) |
166 |
|
{ |
167 |
0 |
e1.printStackTrace(); |
168 |
|
} |
169 |
|
|
170 |
0 |
FTSRestRequest request = new FTSRestRequest(); |
171 |
0 |
request.setAllowEmptySeq(false); |
172 |
0 |
request.setResponseSize(100); |
173 |
0 |
request.setFieldToSearchBy("text:"); |
174 |
0 |
request.setSearchTerm("abc"); |
175 |
0 |
request.setWantedFields(wantedFields); |
176 |
|
|
177 |
0 |
String jsonErrorResponse = ""; |
178 |
0 |
try |
179 |
|
{ |
180 |
0 |
jsonErrorResponse = readJsonStringFromFile( |
181 |
|
"test/jalview/io/pdb_request_json_error.txt"); |
182 |
|
} catch (IOException e) |
183 |
|
{ |
184 |
0 |
e.printStackTrace(); |
185 |
|
} |
186 |
|
|
187 |
0 |
String parsedErrorResponse = PDBFTSRestClient |
188 |
|
.parseJsonExceptionString(jsonErrorResponse); |
189 |
|
|
190 |
0 |
String expectedErrorMsg = "\n============= PDB Rest Client RunTime error =============\n" |
191 |
|
+ "Status: 400\n" |
192 |
|
+ "Message: org.apache.solr.search.SyntaxError: Cannot parse 'text:abc OR text:go:abc AND molecule_sequence:['' TO *]': Encountered \" \":\" \": \"\" at line 1, column 19.\n" |
193 |
|
+ "query: text:abc OR text:go:abc AND molecule_sequence:['' TO *]\n" |
194 |
|
+ "fl: pdb_id\n"; |
195 |
|
|
196 |
0 |
assertEquals(expectedErrorMsg, parsedErrorResponse); |
197 |
|
} |
198 |
|
|
|
|
| 0% |
Uncovered Elements: 7 (7) |
Complexity: 1 |
Complexity Density: 0.14 |
1PASS
|
|
199 |
0 |
@Test(... |
200 |
|
groups = |
201 |
|
{ "External" }, |
202 |
|
enabled = false, |
203 |
|
expectedExceptions = Exception.class) |
204 |
|
public void testForExpectedRuntimeException() throws Exception |
205 |
|
{ |
206 |
|
|
207 |
|
|
208 |
0 |
List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>(); |
209 |
0 |
wantedFields.add(PDBFTSRestClient.getInstance() |
210 |
|
.getDataColumnByNameOrCode("pdb_id")); |
211 |
|
|
212 |
0 |
FTSRestRequest request = new FTSRestRequest(); |
213 |
0 |
request.setFieldToSearchBy("text:"); |
214 |
0 |
request.setSearchTerm("abc OR text:go:abc"); |
215 |
0 |
request.setWantedFields(wantedFields); |
216 |
0 |
PDBFTSRestClient.getInstance().executeRequest(request); |
217 |
|
} |
218 |
|
|
219 |
|
|
220 |
|
|
|
|
| 0% |
Uncovered Elements: 20 (20) |
Complexity: 3 |
Complexity Density: 0.15 |
1PASS
|
|
221 |
0 |
@Test(groups = { "External" })... |
222 |
|
public void parsePDBJsonResponseTest() |
223 |
|
{ |
224 |
0 |
List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>(); |
225 |
0 |
try |
226 |
|
{ |
227 |
0 |
wantedFields.add(PDBFTSRestClient.getInstance() |
228 |
|
.getDataColumnByNameOrCode("molecule_type")); |
229 |
0 |
wantedFields.add(PDBFTSRestClient.getInstance() |
230 |
|
.getDataColumnByNameOrCode("pdb_id")); |
231 |
0 |
wantedFields.add(PDBFTSRestClient.getInstance() |
232 |
|
.getDataColumnByNameOrCode("genus")); |
233 |
0 |
wantedFields.add(PDBFTSRestClient.getInstance() |
234 |
|
.getDataColumnByNameOrCode("gene_name")); |
235 |
0 |
wantedFields.add(PDBFTSRestClient.getInstance() |
236 |
|
.getDataColumnByNameOrCode("title")); |
237 |
|
} catch (Exception e1) |
238 |
|
{ |
239 |
0 |
e1.printStackTrace(); |
240 |
|
} |
241 |
|
|
242 |
0 |
FTSRestRequest request = new FTSRestRequest(); |
243 |
0 |
request.setAllowEmptySeq(false); |
244 |
0 |
request.setWantedFields(wantedFields); |
245 |
|
|
246 |
0 |
String jsonString = ""; |
247 |
0 |
try |
248 |
|
{ |
249 |
0 |
jsonString = readJsonStringFromFile( |
250 |
|
"test/jalview/io/pdb_response_json.txt"); |
251 |
|
} catch (IOException e) |
252 |
|
{ |
253 |
0 |
e.printStackTrace(); |
254 |
|
} |
255 |
0 |
FTSRestResponse response = PDBFTSRestClient |
256 |
|
.parsePDBJsonResponse(jsonString, request); |
257 |
0 |
assertTrue(response.getSearchSummary() != null); |
258 |
0 |
assertTrue(response.getNumberOfItemsFound() == 931); |
259 |
0 |
assertTrue(response.getSearchSummary().size() == 14); |
260 |
0 |
System.out.println("Search summary : " + response.getSearchSummary()); |
261 |
|
} |
262 |
|
|
|
|
| 83.3% |
Uncovered Elements: 2 (12) |
Complexity: 3 |
Complexity Density: 0.25 |
1PASS
|
|
263 |
1 |
@Test(groups = { "Functional" })... |
264 |
|
public void getPDBIdColumIndexTest() |
265 |
|
{ |
266 |
1 |
List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>(); |
267 |
1 |
try |
268 |
|
{ |
269 |
1 |
wantedFields.add(PDBFTSRestClient.getInstance() |
270 |
|
.getDataColumnByNameOrCode("molecule_type")); |
271 |
1 |
wantedFields.add(PDBFTSRestClient.getInstance() |
272 |
|
.getDataColumnByNameOrCode("genus")); |
273 |
1 |
wantedFields.add(PDBFTSRestClient.getInstance() |
274 |
|
.getDataColumnByNameOrCode("gene_name")); |
275 |
1 |
wantedFields.add(PDBFTSRestClient.getInstance() |
276 |
|
.getDataColumnByNameOrCode("title")); |
277 |
1 |
wantedFields.add(PDBFTSRestClient.getInstance() |
278 |
|
.getDataColumnByNameOrCode("pdb_id")); |
279 |
|
} catch (Exception e) |
280 |
|
{ |
281 |
0 |
e.printStackTrace(); |
282 |
|
} |
283 |
1 |
try |
284 |
|
{ |
285 |
1 |
assertEquals(5, PDBFTSRestClient.getInstance() |
286 |
|
.getPrimaryKeyColumIndex(wantedFields, true)); |
287 |
1 |
assertEquals(4, PDBFTSRestClient.getInstance() |
288 |
|
.getPrimaryKeyColumIndex(wantedFields, false)); |
289 |
|
} catch (Exception e) |
290 |
|
{ |
291 |
|
|
292 |
0 |
e.printStackTrace(); |
293 |
|
} |
294 |
|
} |
295 |
|
|
|
|
| 0% |
Uncovered Elements: 33 (33) |
Complexity: 5 |
Complexity Density: 0.19 |
1PASS
|
|
296 |
0 |
@Test(groups = { "External" })... |
297 |
|
public void externalServiceIntegrationTest() |
298 |
|
{ |
299 |
0 |
ClientConfig clientConfig = new DefaultClientConfig(); |
300 |
0 |
Client client = Client.create(clientConfig); |
301 |
|
|
302 |
|
|
303 |
0 |
WebResource webResource = client |
304 |
|
.resource(PDBFTSRestClient.PDB_SEARCH_ENDPOINT) |
305 |
|
.queryParam("wt", "json").queryParam("rows", String.valueOf(1)) |
306 |
|
.queryParam("q", "text:abc AND molecule_sequence:['' TO *]"); |
307 |
|
|
308 |
|
|
309 |
0 |
ClientResponse clientResponse = webResource |
310 |
|
.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); |
311 |
|
|
312 |
|
|
313 |
0 |
String pdbJsonResponseString = clientResponse.getEntity(String.class); |
314 |
|
|
315 |
|
|
316 |
0 |
if (clientResponse.getStatus() != 200) |
317 |
|
{ |
318 |
0 |
Assert.fail("Webservice call failed!!!"); |
319 |
|
} |
320 |
|
else |
321 |
|
{ |
322 |
0 |
try |
323 |
|
{ |
324 |
0 |
JSONParser jsonParser = new JSONParser(); |
325 |
0 |
JSONObject jsonObj = (JSONObject) jsonParser |
326 |
|
.parse(pdbJsonResponseString); |
327 |
0 |
JSONObject pdbResponse = (JSONObject) jsonObj.get("response"); |
328 |
0 |
String queryTime = ((JSONObject) jsonObj.get("responseHeader")) |
329 |
|
.get("QTime").toString(); |
330 |
0 |
String numFound = pdbResponse.get("numFound").toString(); |
331 |
0 |
JSONArray docs = (JSONArray) pdbResponse.get("docs"); |
332 |
0 |
Iterator<JSONObject> docIter = docs.iterator(); |
333 |
|
|
334 |
0 |
assertTrue("Couldn't Retrieve 'response' object", |
335 |
|
pdbResponse != null); |
336 |
0 |
assertTrue("Couldn't Retrieve 'QTime' value", queryTime != null); |
337 |
0 |
assertTrue("Couldn't Retrieve 'numFound' value", numFound != null); |
338 |
0 |
assertTrue("Couldn't Retrieve 'docs' object", |
339 |
|
docs != null || !docIter.hasNext()); |
340 |
|
|
341 |
0 |
JSONObject pdbJsonDoc = docIter.next(); |
342 |
|
|
343 |
0 |
for (FTSDataColumnI field : PDBFTSRestClient.getInstance() |
344 |
|
.getAllFTSDataColumns()) |
345 |
|
{ |
346 |
0 |
if (field.getName().equalsIgnoreCase("ALL")) |
347 |
|
{ |
348 |
0 |
continue; |
349 |
|
} |
350 |
0 |
if (pdbJsonDoc.get(field.getCode()) == null) |
351 |
|
{ |
352 |
|
|
353 |
0 |
assertTrue( |
354 |
|
field.getCode() |
355 |
|
+ " has been removed from PDB doc Entity", |
356 |
|
!pdbJsonResponseString.contains(field.getCode())); |
357 |
|
} |
358 |
|
} |
359 |
|
} catch (ParseException e) |
360 |
|
{ |
361 |
0 |
Assert.fail( |
362 |
|
">>> Test failed due to exception while parsing pdb response json !!!"); |
363 |
0 |
e.printStackTrace(); |
364 |
|
} |
365 |
|
} |
366 |
|
} |
367 |
|
|
368 |
|
|
369 |
|
|
370 |
|
|
371 |
|
@param |
372 |
|
@return |
373 |
|
@throws |
374 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (14) |
Complexity: 2 |
Complexity Density: 0.17 |
|
375 |
185 |
public static String readJsonStringFromFile(String filePath)... |
376 |
|
throws IOException |
377 |
|
{ |
378 |
185 |
String fileContent; |
379 |
185 |
BufferedReader br = new BufferedReader(new FileReader(filePath)); |
380 |
185 |
try |
381 |
|
{ |
382 |
185 |
StringBuilder sb = new StringBuilder(); |
383 |
185 |
String line = br.readLine(); |
384 |
|
|
385 |
118378 |
while (line != null) |
386 |
|
{ |
387 |
118193 |
sb.append(line); |
388 |
118193 |
sb.append(System.lineSeparator()); |
389 |
118193 |
line = br.readLine(); |
390 |
|
} |
391 |
185 |
fileContent = sb.toString(); |
392 |
|
} finally |
393 |
|
{ |
394 |
185 |
br.close(); |
395 |
|
} |
396 |
185 |
return fileContent; |
397 |
|
} |
398 |
|
|
|
|
| 93.3% |
Uncovered Elements: 1 (15) |
Complexity: 4 |
Complexity Density: 0.36 |
|
399 |
9 |
public static void setMock()... |
400 |
|
{ |
401 |
9 |
List<String[]> mocks = new ArrayList<String[]>(); |
402 |
9 |
mocks.add( |
403 |
|
new String[] |
404 |
|
{ "https://www.ebi.ac.uk/pdbe/search/pdb/select?wt=json&fl=pdb_id,title,experimental_method,resolution&rows=500&start=0&q=(4igk+OR+7lyb+OR+3k0h+OR+3k0k+OR+1t15+OR+3pxc+OR+3pxd+OR+3pxe+OR+1jm7+OR+7jzv+OR+3pxa+OR+3pxb+OR+1y98+OR+1n5o+OR+4ifi+OR+4y2g+OR+3k15+OR+3k16+OR+4jlu+OR+2ing+OR+4ofb+OR+6g2i+OR+3coj+OR+1jnx+OR+4y18+OR+4u4a+OR+1oqa+OR+1t29+OR+1t2u+OR+1t2v)+AND+molecule_sequence:%5B''+TO+*%5D+AND+status:REL&sort=", |
405 |
|
"{\n" + " \"responseHeader\":{\n" + " \"status\":0,\n" |
406 |
|
+ " \"QTime\":0,\n" + " \"params\":{\n" |
407 |
|
+ " \"q\":\"(4igk OR 7lyb OR 3k0h OR 3k0k OR 1t15 OR 3pxc OR 3pxd OR 3pxe OR 1jm7 OR 7jzv OR 3pxa OR 3pxb OR 1y98 OR 1n5o OR 4ifi OR 4y2g OR 3k15 OR 3k16 OR 4jlu OR 2ing OR 4ofb OR 6g2i OR 3coj OR 1jnx OR 4y18 OR 4u4a OR 1oqa OR 1t29 OR 1t2u OR 1t2v) AND molecule_sequence:['' TO *] AND status:REL\",\n" |
408 |
|
+ " \"fl\":\"pdb_id,title,experimental_method,resolution\",\n" |
409 |
|
+ " \"start\":\"0\",\n" |
410 |
|
+ " \"sort\":\"\",\n" |
411 |
|
+ " \"rows\":\"500\",\n" |
412 |
|
+ " \"wt\":\"json\"}},\n" |
413 |
|
+ " \"response\":{\"numFound\":64,\"start\":0,\"docs\":[\n" |
414 |
|
+ " {\n" |
415 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
416 |
|
+ " \"pdb_id\":\"4ofb\",\n" |
417 |
|
+ " \"resolution\":3.05,\n" |
418 |
|
+ " \"title\":\"Crystal structure of human BRCA1 BRCT in complex with nonphosphopeptide inhibitor\"},\n" |
419 |
|
+ " {\n" |
420 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
421 |
|
+ " \"pdb_id\":\"3pxe\",\n" |
422 |
|
+ " \"resolution\":2.85,\n" |
423 |
|
+ " \"title\":\"Impact of BRCA1 BRCT domain missense substitutions on phospho-peptide recognition: E1836K\"},\n" |
424 |
|
+ " {\n" |
425 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
426 |
|
+ " \"pdb_id\":\"4jlu\",\n" |
427 |
|
+ " \"resolution\":3.5,\n" |
428 |
|
+ " \"title\":\"Crystal structure of BRCA1 BRCT with doubly phosphorylated Abraxas\"},\n" |
429 |
|
+ " {\n" |
430 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
431 |
|
+ " \"pdb_id\":\"4y2g\",\n" |
432 |
|
+ " \"resolution\":2.5,\n" |
433 |
|
+ " \"title\":\"Structure of BRCA1 BRCT domains in complex with Abraxas single phosphorylated peptide\"},\n" |
434 |
|
+ " {\n" |
435 |
|
+ " \"experimental_method\":[\"Solution NMR\"],\n" |
436 |
|
+ " \"pdb_id\":\"1oqa\",\n" |
437 |
|
+ " \"title\":\"Solution structure of the BRCT-c domain from human BRCA1\"},\n" |
438 |
|
+ " {\n" |
439 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
440 |
|
+ " \"pdb_id\":\"4u4a\",\n" |
441 |
|
+ " \"resolution\":3.51,\n" |
442 |
|
+ " \"title\":\"Complex Structure of BRCA1 BRCT with singly phospho Abraxas\"},\n" |
443 |
|
+ " {\n" |
444 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
445 |
|
+ " \"pdb_id\":\"3k16\",\n" |
446 |
|
+ " \"resolution\":3.0,\n" |
447 |
|
+ " \"title\":\"Crystal Structure of BRCA1 BRCT D1840T in complex with a minimal recognition tetrapeptide with a free carboxy C-terminus\"},\n" |
448 |
|
+ " {\n" |
449 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
450 |
|
+ " \"pdb_id\":\"1t15\",\n" |
451 |
|
+ " \"resolution\":1.85,\n" |
452 |
|
+ " \"title\":\"Crystal Structure of the Brca1 BRCT Domains in Complex with the Phosphorylated Interacting Region from Bach1 Helicase\"},\n" |
453 |
|
+ " {\n" |
454 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
455 |
|
+ " \"pdb_id\":\"3k15\",\n" |
456 |
|
+ " \"resolution\":2.8,\n" |
457 |
|
+ " \"title\":\"Crystal Structure of BRCA1 BRCT D1840T in complex with a minimal recognition tetrapeptide with an amidated C-terminus\"},\n" |
458 |
|
+ " {\n" |
459 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
460 |
|
+ " \"pdb_id\":\"1t2v\",\n" |
461 |
|
+ " \"resolution\":3.3,\n" |
462 |
|
+ " \"title\":\"Structural basis of phospho-peptide recognition by the BRCT domain of BRCA1, structure with phosphopeptide\"},\n" |
463 |
|
+ " {\n" |
464 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
465 |
|
+ " \"pdb_id\":\"1y98\",\n" |
466 |
|
+ " \"resolution\":2.5,\n" |
467 |
|
+ " \"title\":\"Structure of the BRCT repeats of BRCA1 bound to a CtIP phosphopeptide.\"},\n" |
468 |
|
+ " {\n" |
469 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
470 |
|
+ " \"pdb_id\":\"1t29\",\n" |
471 |
|
+ " \"resolution\":2.3,\n" |
472 |
|
+ " \"title\":\"Crystal structure of the BRCA1 BRCT repeats bound to a phosphorylated BACH1 peptide\"},\n" |
473 |
|
+ " {\n" |
474 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
475 |
|
+ " \"pdb_id\":\"3k0k\",\n" |
476 |
|
+ " \"resolution\":2.7,\n" |
477 |
|
+ " \"title\":\"Crystal Structure of BRCA1 BRCT in complex with a minimal recognition tetrapeptide with a free carboxy C-terminus.\"},\n" |
478 |
|
+ " {\n" |
479 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
480 |
|
+ " \"pdb_id\":\"3k0h\",\n" |
481 |
|
+ " \"resolution\":2.7,\n" |
482 |
|
+ " \"title\":\"The crystal structure of BRCA1 BRCT in complex with a minimal recognition tetrapeptide with an amidated C-terminus\"},\n" |
483 |
|
+ " {\n" |
484 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
485 |
|
+ " \"pdb_id\":\"4ifi\",\n" |
486 |
|
+ " \"resolution\":2.2,\n" |
487 |
|
+ " \"title\":\"Structure of human BRCA1 BRCT in complex with BAAT peptide\"},\n" |
488 |
|
+ " {\n" |
489 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
490 |
|
+ " \"pdb_id\":\"3pxd\",\n" |
491 |
|
+ " \"resolution\":2.8,\n" |
492 |
|
+ " \"title\":\"Impact of BRCA1 BRCT domain missense substitutions on phospho-peptide recognition: R1835P\"},\n" |
493 |
|
+ " {\n" |
494 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
495 |
|
+ " \"pdb_id\":\"3pxc\",\n" |
496 |
|
+ " \"resolution\":2.8,\n" |
497 |
|
+ " \"title\":\"Impact of BRCA1 BRCT domain missense substitutions on phospho-peptide recognition: R1699Q\"},\n" |
498 |
|
+ " {\n" |
499 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
500 |
|
+ " \"pdb_id\":\"1jnx\",\n" |
501 |
|
+ " \"resolution\":2.5,\n" |
502 |
|
+ " \"title\":\"Crystal structure of the BRCT repeat region from the breast cancer associated protein, BRCA1\"},\n" |
503 |
|
+ " {\n" |
504 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
505 |
|
+ " \"pdb_id\":\"3pxa\",\n" |
506 |
|
+ " \"resolution\":2.55,\n" |
507 |
|
+ " \"title\":\"Impact of BRCA1 BRCT domain missense substitutions on phospho-peptide recognition: G1656D\"},\n" |
508 |
|
+ " {\n" |
509 |
|
+ " \"experimental_method\":[\"Solution NMR\"],\n" |
510 |
|
+ " \"pdb_id\":\"1jm7\",\n" |
511 |
|
+ " \"title\":\"Solution structure of the BRCA1/BARD1 RING-domain heterodimer\"},\n" |
512 |
|
+ " {\n" |
513 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
514 |
|
+ " \"pdb_id\":\"4igk\",\n" |
515 |
|
+ " \"resolution\":1.75,\n" |
516 |
|
+ " \"title\":\"Structure of human BRCA1 BRCT in complex with ATRIP peptide\"},\n" |
517 |
|
+ " {\n" |
518 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
519 |
|
+ " \"pdb_id\":\"1t2u\",\n" |
520 |
|
+ " \"resolution\":2.8,\n" |
521 |
|
+ " \"title\":\"Structural basis of phosphopeptide recognition by the BRCT domain of BRCA1: structure of BRCA1 missense variant V1809F\"},\n" |
522 |
|
+ " {\n" |
523 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
524 |
|
+ " \"pdb_id\":\"3pxb\",\n" |
525 |
|
+ " \"resolution\":2.5,\n" |
526 |
|
+ " \"title\":\"Impact of BRCA1 BRCT domain missense substitutions on phospho-peptide recognition: T1700A\"},\n" |
527 |
|
+ " {\n" |
528 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
529 |
|
+ " \"pdb_id\":\"1n5o\",\n" |
530 |
|
+ " \"resolution\":2.8,\n" |
531 |
|
+ " \"title\":\"Structural consequences of a cancer-causing BRCA1-BRCT missense mutation\"},\n" |
532 |
|
+ " {\n" |
533 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
534 |
|
+ " \"pdb_id\":\"3coj\",\n" |
535 |
|
+ " \"resolution\":3.21,\n" |
536 |
|
+ " \"title\":\"Crystal Structure of the BRCT Domains of Human BRCA1 in Complex with a Phosphorylated Peptide from Human Acetyl-CoA Carboxylase 1\"},\n" |
537 |
|
+ " {\n" |
538 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
539 |
|
+ " \"pdb_id\":\"6g2i\",\n" |
540 |
|
+ " \"resolution\":5.9,\n" |
541 |
|
+ " \"title\":\"Filament of acetyl-CoA carboxylase and BRCT domains of BRCA1 (ACC-BRCT) at 5.9 A resolution\"},\n" |
542 |
|
+ " {\n" |
543 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
544 |
|
+ " \"pdb_id\":\"4jlu\",\n" |
545 |
|
+ " \"resolution\":3.5,\n" |
546 |
|
+ " \"title\":\"Crystal structure of BRCA1 BRCT with doubly phosphorylated Abraxas\"},\n" |
547 |
|
+ " {\n" |
548 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
549 |
|
+ " \"pdb_id\":\"4ofb\",\n" |
550 |
|
+ " \"resolution\":3.05,\n" |
551 |
|
+ " \"title\":\"Crystal structure of human BRCA1 BRCT in complex with nonphosphopeptide inhibitor\"},\n" |
552 |
|
+ " {\n" |
553 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
554 |
|
+ " \"pdb_id\":\"3pxe\",\n" |
555 |
|
+ " \"resolution\":2.85,\n" |
556 |
|
+ " \"title\":\"Impact of BRCA1 BRCT domain missense substitutions on phospho-peptide recognition: E1836K\"},\n" |
557 |
|
+ " {\n" |
558 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
559 |
|
+ " \"pdb_id\":\"4u4a\",\n" |
560 |
|
+ " \"resolution\":3.51,\n" |
561 |
|
+ " \"title\":\"Complex Structure of BRCA1 BRCT with singly phospho Abraxas\"},\n" |
562 |
|
+ " {\n" |
563 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
564 |
|
+ " \"pdb_id\":\"4y2g\",\n" |
565 |
|
+ " \"resolution\":2.5,\n" |
566 |
|
+ " \"title\":\"Structure of BRCA1 BRCT domains in complex with Abraxas single phosphorylated peptide\"},\n" |
567 |
|
+ " {\n" |
568 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
569 |
|
+ " \"pdb_id\":\"4y18\",\n" |
570 |
|
+ " \"resolution\":3.5,\n" |
571 |
|
+ " \"title\":\"Structure of BRCA1 BRCT domains in complex with Abraxas double phosphorylated peptide\"},\n" |
572 |
|
+ " {\n" |
573 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
574 |
|
+ " \"pdb_id\":\"2ing\",\n" |
575 |
|
+ " \"resolution\":3.6,\n" |
576 |
|
+ " \"title\":\"X-ray Structure of the BRCA1 BRCT mutant M1775K\"},\n" |
577 |
|
+ " {\n" |
578 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
579 |
|
+ " \"pdb_id\":\"1t15\",\n" |
580 |
|
+ " \"resolution\":1.85,\n" |
581 |
|
+ " \"title\":\"Crystal Structure of the Brca1 BRCT Domains in Complex with the Phosphorylated Interacting Region from Bach1 Helicase\"},\n" |
582 |
|
+ " {\n" |
583 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
584 |
|
+ " \"pdb_id\":\"1t29\",\n" |
585 |
|
+ " \"resolution\":2.3,\n" |
586 |
|
+ " \"title\":\"Crystal structure of the BRCA1 BRCT repeats bound to a phosphorylated BACH1 peptide\"},\n" |
587 |
|
+ " {\n" |
588 |
|
+ " \"experimental_method\":[\"Solution NMR\"],\n" |
589 |
|
+ " \"pdb_id\":\"1jm7\",\n" |
590 |
|
+ " \"title\":\"Solution structure of the BRCA1/BARD1 RING-domain heterodimer\"},\n" |
591 |
|
+ " {\n" |
592 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
593 |
|
+ " \"pdb_id\":\"1t2v\",\n" |
594 |
|
+ " \"resolution\":3.3,\n" |
595 |
|
+ " \"title\":\"Structural basis of phospho-peptide recognition by the BRCT domain of BRCA1, structure with phosphopeptide\"},\n" |
596 |
|
+ " {\n" |
597 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
598 |
|
+ " \"pdb_id\":\"4ifi\",\n" |
599 |
|
+ " \"resolution\":2.2,\n" |
600 |
|
+ " \"title\":\"Structure of human BRCA1 BRCT in complex with BAAT peptide\"},\n" |
601 |
|
+ " {\n" |
602 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
603 |
|
+ " \"pdb_id\":\"4igk\",\n" |
604 |
|
+ " \"resolution\":1.75,\n" |
605 |
|
+ " \"title\":\"Structure of human BRCA1 BRCT in complex with ATRIP peptide\"},\n" |
606 |
|
+ " {\n" |
607 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
608 |
|
+ " \"pdb_id\":\"3k0k\",\n" |
609 |
|
+ " \"resolution\":2.7,\n" |
610 |
|
+ " \"title\":\"Crystal Structure of BRCA1 BRCT in complex with a minimal recognition tetrapeptide with a free carboxy C-terminus.\"},\n" |
611 |
|
+ " {\n" |
612 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
613 |
|
+ " \"pdb_id\":\"3k16\",\n" |
614 |
|
+ " \"resolution\":3.0,\n" |
615 |
|
+ " \"title\":\"Crystal Structure of BRCA1 BRCT D1840T in complex with a minimal recognition tetrapeptide with a free carboxy C-terminus\"},\n" |
616 |
|
+ " {\n" |
617 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
618 |
|
+ " \"pdb_id\":\"3k15\",\n" |
619 |
|
+ " \"resolution\":2.8,\n" |
620 |
|
+ " \"title\":\"Crystal Structure of BRCA1 BRCT D1840T in complex with a minimal recognition tetrapeptide with an amidated C-terminus\"},\n" |
621 |
|
+ " {\n" |
622 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
623 |
|
+ " \"pdb_id\":\"3k0h\",\n" |
624 |
|
+ " \"resolution\":2.7,\n" |
625 |
|
+ " \"title\":\"The crystal structure of BRCA1 BRCT in complex with a minimal recognition tetrapeptide with an amidated C-terminus\"},\n" |
626 |
|
+ " {\n" |
627 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
628 |
|
+ " \"pdb_id\":\"1y98\",\n" |
629 |
|
+ " \"resolution\":2.5,\n" |
630 |
|
+ " \"title\":\"Structure of the BRCT repeats of BRCA1 bound to a CtIP phosphopeptide.\"},\n" |
631 |
|
+ " {\n" |
632 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
633 |
|
+ " \"pdb_id\":\"3coj\",\n" |
634 |
|
+ " \"resolution\":3.21,\n" |
635 |
|
+ " \"title\":\"Crystal Structure of the BRCT Domains of Human BRCA1 in Complex with a Phosphorylated Peptide from Human Acetyl-CoA Carboxylase 1\"},\n" |
636 |
|
+ " {\n" |
637 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
638 |
|
+ " \"pdb_id\":\"4y18\",\n" |
639 |
|
+ " \"resolution\":3.5,\n" |
640 |
|
+ " \"title\":\"Structure of BRCA1 BRCT domains in complex with Abraxas double phosphorylated peptide\"},\n" |
641 |
|
+ " {\n" |
642 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
643 |
|
+ " \"pdb_id\":\"7jzv\",\n" |
644 |
|
+ " \"resolution\":3.9,\n" |
645 |
|
+ " \"title\":\"Cryo-EM structure of the BRCA1-UbcH5c/BARD1 E3-E2 module bound to a nucleosome\"},\n" |
646 |
|
+ " {\n" |
647 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
648 |
|
+ " \"pdb_id\":\"7jzv\",\n" |
649 |
|
+ " \"resolution\":3.9,\n" |
650 |
|
+ " \"title\":\"Cryo-EM structure of the BRCA1-UbcH5c/BARD1 E3-E2 module bound to a nucleosome\"},\n" |
651 |
|
+ " {\n" |
652 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
653 |
|
+ " \"pdb_id\":\"7lyb\",\n" |
654 |
|
+ " \"resolution\":3.28,\n" |
655 |
|
+ " \"title\":\"Cryo-EM structure of the human nucleosome core particle in complex with BRCA1-BARD1-UbcH5c\"},\n" |
656 |
|
+ " {\n" |
657 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
658 |
|
+ " \"pdb_id\":\"7lyb\",\n" |
659 |
|
+ " \"resolution\":3.28,\n" |
660 |
|
+ " \"title\":\"Cryo-EM structure of the human nucleosome core particle in complex with BRCA1-BARD1-UbcH5c\"},\n" |
661 |
|
+ " {\n" |
662 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
663 |
|
+ " \"pdb_id\":\"7lyb\",\n" |
664 |
|
+ " \"resolution\":3.28,\n" |
665 |
|
+ " \"title\":\"Cryo-EM structure of the human nucleosome core particle in complex with BRCA1-BARD1-UbcH5c\"},\n" |
666 |
|
+ " {\n" |
667 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
668 |
|
+ " \"pdb_id\":\"7jzv\",\n" |
669 |
|
+ " \"resolution\":3.9,\n" |
670 |
|
+ " \"title\":\"Cryo-EM structure of the BRCA1-UbcH5c/BARD1 E3-E2 module bound to a nucleosome\"},\n" |
671 |
|
+ " {\n" |
672 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
673 |
|
+ " \"pdb_id\":\"7lyb\",\n" |
674 |
|
+ " \"resolution\":3.28,\n" |
675 |
|
+ " \"title\":\"Cryo-EM structure of the human nucleosome core particle in complex with BRCA1-BARD1-UbcH5c\"},\n" |
676 |
|
+ " {\n" |
677 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
678 |
|
+ " \"pdb_id\":\"7jzv\",\n" |
679 |
|
+ " \"resolution\":3.9,\n" |
680 |
|
+ " \"title\":\"Cryo-EM structure of the BRCA1-UbcH5c/BARD1 E3-E2 module bound to a nucleosome\"},\n" |
681 |
|
+ " {\n" |
682 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
683 |
|
+ " \"pdb_id\":\"7lyb\",\n" |
684 |
|
+ " \"resolution\":3.28,\n" |
685 |
|
+ " \"title\":\"Cryo-EM structure of the human nucleosome core particle in complex with BRCA1-BARD1-UbcH5c\"},\n" |
686 |
|
+ " {\n" |
687 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
688 |
|
+ " \"pdb_id\":\"7jzv\",\n" |
689 |
|
+ " \"resolution\":3.9,\n" |
690 |
|
+ " \"title\":\"Cryo-EM structure of the BRCA1-UbcH5c/BARD1 E3-E2 module bound to a nucleosome\"},\n" |
691 |
|
+ " {\n" |
692 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
693 |
|
+ " \"pdb_id\":\"7lyb\",\n" |
694 |
|
+ " \"resolution\":3.28,\n" |
695 |
|
+ " \"title\":\"Cryo-EM structure of the human nucleosome core particle in complex with BRCA1-BARD1-UbcH5c\"},\n" |
696 |
|
+ " {\n" |
697 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
698 |
|
+ " \"pdb_id\":\"7lyb\",\n" |
699 |
|
+ " \"resolution\":3.28,\n" |
700 |
|
+ " \"title\":\"Cryo-EM structure of the human nucleosome core particle in complex with BRCA1-BARD1-UbcH5c\"},\n" |
701 |
|
+ " {\n" |
702 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
703 |
|
+ " \"pdb_id\":\"7lyb\",\n" |
704 |
|
+ " \"resolution\":3.28,\n" |
705 |
|
+ " \"title\":\"Cryo-EM structure of the human nucleosome core particle in complex with BRCA1-BARD1-UbcH5c\"},\n" |
706 |
|
+ " {\n" |
707 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
708 |
|
+ " \"pdb_id\":\"7jzv\",\n" |
709 |
|
+ " \"resolution\":3.9,\n" |
710 |
|
+ " \"title\":\"Cryo-EM structure of the BRCA1-UbcH5c/BARD1 E3-E2 module bound to a nucleosome\"},\n" |
711 |
|
+ " {\n" |
712 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
713 |
|
+ " \"pdb_id\":\"6g2i\",\n" |
714 |
|
+ " \"resolution\":5.9,\n" |
715 |
|
+ " \"title\":\"Filament of acetyl-CoA carboxylase and BRCT domains of BRCA1 (ACC-BRCT) at 5.9 A resolution\"},\n" |
716 |
|
+ " {\n" |
717 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
718 |
|
+ " \"pdb_id\":\"7jzv\",\n" |
719 |
|
+ " \"resolution\":3.9,\n" |
720 |
|
+ " \"title\":\"Cryo-EM structure of the BRCA1-UbcH5c/BARD1 E3-E2 module bound to a nucleosome\"},\n" |
721 |
|
+ " {\n" |
722 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
723 |
|
+ " \"pdb_id\":\"7lyb\",\n" |
724 |
|
+ " \"resolution\":3.28,\n" |
725 |
|
+ " \"title\":\"Cryo-EM structure of the human nucleosome core particle in complex with BRCA1-BARD1-UbcH5c\"},\n" |
726 |
|
+ " {\n" |
727 |
|
+ " \"experimental_method\":[\"Electron Microscopy\"],\n" |
728 |
|
+ " \"pdb_id\":\"7jzv\",\n" |
729 |
|
+ " \"resolution\":3.9,\n" |
730 |
|
+ " \"title\":\"Cryo-EM structure of the BRCA1-UbcH5c/BARD1 E3-E2 module bound to a nucleosome\"}]\n" |
731 |
|
+ " }}" }); |
732 |
|
|
733 |
9 |
try |
734 |
|
{ |
735 |
27 |
for (int i = 1; i < 3; i++) |
736 |
|
{ |
737 |
18 |
mocks.add( |
738 |
|
new String[] |
739 |
|
{ readJsonStringFromFile( |
740 |
|
"test/jalview/fts/threedbeacons/p01308_pdbfts_query_pt" |
741 |
|
+ i + ".txt").trim(), |
742 |
|
readJsonStringFromFile( |
743 |
|
"test/jalview/fts/threedbeacons/p01308_pdbfts_query_pt" |
744 |
|
+ i + "_resp.txt").trim() }); |
745 |
|
} |
746 |
54 |
for (int i = 1; i < 6; i++) |
747 |
|
{ |
748 |
45 |
mocks.add( |
749 |
|
|
750 |
|
new String[] |
751 |
|
{ readJsonStringFromFile( |
752 |
|
"test/jalview/fts/threedbeacons/p0dtd1_pdbfts_fts_query_pt" |
753 |
|
+ i + ".txt").trim(), |
754 |
|
readJsonStringFromFile( |
755 |
|
"test/jalview/fts/threedbeacons/p0dtd1_pdbfts_fts_query_pt" |
756 |
|
+ i + "_resp.txt").trim() }); |
757 |
|
} |
758 |
|
|
759 |
9 |
mocks.add( |
760 |
|
new String[] |
761 |
|
{ "https://www.ebi.ac.uk/pdbe/search/pdb/select?wt=json&fl=pdb_id,title,experimental_method,resolution&rows=500&start=0&q=(1gaq+OR+5h92+OR+3b2f+OR+3w5u+OR+5h8y+OR+3w5v)+AND+molecule_sequence:%5B''+TO+*%5D+AND+status:REL&sort=", |
762 |
|
"{\n" + " \"responseHeader\":{\n" + " \"status\":0,\n" |
763 |
|
+ " \"QTime\":0,\n" + " \"params\":{\n" |
764 |
|
+ " \"q\":\"(1gaq OR 5h92 OR 3b2f OR 3w5u OR 5h8y OR 3w5v) AND molecule_sequence:['' TO *] AND status:REL\",\n" |
765 |
|
+ " \"fl\":\"pdb_id,title,experimental_method,resolution\",\n" |
766 |
|
+ " \"start\":\"0\",\n" |
767 |
|
+ " \"sort\":\"\",\n" |
768 |
|
+ " \"rows\":\"500\",\n" |
769 |
|
+ " \"wt\":\"json\"}},\n" |
770 |
|
+ " \"response\":{\"numFound\":11,\"start\":0,\"docs\":[\n" |
771 |
|
+ " {\n" |
772 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
773 |
|
+ " \"pdb_id\":\"3b2f\",\n" |
774 |
|
+ " \"resolution\":1.7,\n" |
775 |
|
+ " \"title\":\"Maize Ferredoxin 1\"},\n" |
776 |
|
+ " {\n" |
777 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
778 |
|
+ " \"pdb_id\":\"5h92\",\n" |
779 |
|
+ " \"resolution\":2.08,\n" |
780 |
|
+ " \"title\":\"Crystal structure of the complex between maize Sulfite Reductase and ferredoxin in the form-3 crystal\"},\n" |
781 |
|
+ " {\n" |
782 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
783 |
|
+ " \"pdb_id\":\"5h8y\",\n" |
784 |
|
+ " \"resolution\":2.2,\n" |
785 |
|
+ " \"title\":\"Crystal structure of the complex between maize sulfite reductase and ferredoxin in the form-2 crystal\"},\n" |
786 |
|
+ " {\n" |
787 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
788 |
|
+ " \"pdb_id\":\"1gaq\",\n" |
789 |
|
+ " \"resolution\":2.59,\n" |
790 |
|
+ " \"title\":\"CRYSTAL STRUCTURE OF THE COMPLEX BETWEEN FERREDOXIN AND FERREDOXIN-NADP+ REDUCTASE\"},\n" |
791 |
|
+ " {\n" |
792 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
793 |
|
+ " \"pdb_id\":\"3w5u\",\n" |
794 |
|
+ " \"resolution\":2.7,\n" |
795 |
|
+ " \"title\":\"Cross-linked complex between Ferredoxin and Ferredoxin-NADP+ reductase\"},\n" |
796 |
|
+ " {\n" |
797 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
798 |
|
+ " \"pdb_id\":\"3w5v\",\n" |
799 |
|
+ " \"resolution\":3.81,\n" |
800 |
|
+ " \"title\":\"Cross-linked complex between Ferredoxin and Ferredoxin-NADP+ reductase\"},\n" |
801 |
|
+ " {\n" |
802 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
803 |
|
+ " \"pdb_id\":\"3w5u\",\n" |
804 |
|
+ " \"resolution\":2.7,\n" |
805 |
|
+ " \"title\":\"Cross-linked complex between Ferredoxin and Ferredoxin-NADP+ reductase\"},\n" |
806 |
|
+ " {\n" |
807 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
808 |
|
+ " \"pdb_id\":\"3w5v\",\n" |
809 |
|
+ " \"resolution\":3.81,\n" |
810 |
|
+ " \"title\":\"Cross-linked complex between Ferredoxin and Ferredoxin-NADP+ reductase\"},\n" |
811 |
|
+ " {\n" |
812 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
813 |
|
+ " \"pdb_id\":\"1gaq\",\n" |
814 |
|
+ " \"resolution\":2.59,\n" |
815 |
|
+ " \"title\":\"CRYSTAL STRUCTURE OF THE COMPLEX BETWEEN FERREDOXIN AND FERREDOXIN-NADP+ REDUCTASE\"},\n" |
816 |
|
+ " {\n" |
817 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
818 |
|
+ " \"pdb_id\":\"5h92\",\n" |
819 |
|
+ " \"resolution\":2.08,\n" |
820 |
|
+ " \"title\":\"Crystal structure of the complex between maize Sulfite Reductase and ferredoxin in the form-3 crystal\"},\n" |
821 |
|
+ " {\n" |
822 |
|
+ " \"experimental_method\":[\"X-ray diffraction\"],\n" |
823 |
|
+ " \"pdb_id\":\"5h8y\",\n" |
824 |
|
+ " \"resolution\":2.2,\n" |
825 |
|
+ " \"title\":\"Crystal structure of the complex between maize sulfite reductase and ferredoxin in the form-2 crystal\"}]\n" |
826 |
|
+ " }}" }); |
827 |
9 |
mocks.add( |
828 |
|
new String[] |
829 |
|
{ "https://www.ebi.ac.uk/pdbe/search/pdb/select?wt=json&fl=pdb_id,title,experimental_method,resolution&rows=500&start=0&q=(4gs9+OR+6bvb+OR+8ck8+OR+8ck3+OR+6x3d+OR+8ck4+OR+6x28+OR+6i7r+OR+3h82+OR+6i7q+OR+6x21+OR+4xt2+OR+5kiz+OR+7q5v+OR+6x2h+OR+7q5x+OR+3f1n+OR+3f1o+OR+2a24+OR+3f1p+OR+1p97+OR+4ghi+OR+3h7w+OR+6d09+OR+6czw+OR+7ujv+OR+5tbm+OR+5ufp+OR+4pky+OR+6d0b+OR+6d0c+OR+6x37)+AND+molecule_sequence:%5B''+TO+*%5D+AND+status:REL&sort=", |
830 |
|
readJsonStringFromFile( |
831 |
|
"test/jalview/fts/threedbeacons/q99814_tdb_pdbfts_query_resp.txt") }); |
832 |
|
} catch (Throwable e) |
833 |
|
{ |
834 |
0 |
Assert.fail("Couldn't read mock data.", e); |
835 |
|
} |
836 |
|
|
837 |
|
|
838 |
|
|
839 |
|
|
840 |
9 |
FTSRestClient.createMockFTSRestClient( |
841 |
|
(FTSRestClient) PDBFTSRestClient.getInstance(), |
842 |
|
mocks.toArray(new String[0][2])); |
843 |
|
} |
844 |
|
} |