Repository navigation
Expand file tree
/
Copy pathDBRef.java
More file actions
433 lines (369 loc) · 9.35 KB
/
Copy pathDBRef.java
File metadata and controls
433 lines (369 loc) · 9.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
/*
* BioJava development code
*
* This code may be freely distributed and modified under the
* terms of the GNU Lesser General Public Licence. This should
* be distributed with the code. If you do not have a copy,
* see:
*
* http://www.gnu.org/copyleft/lesser.html
*
* Copyright for this code is held jointly by the individual
* authors. These should be listed in @author doc comments.
*
* For more information on the BioJava project and its aims,
* or to join the biojava-l mailing list, visit the home page
* at:
*
* http://www.biojava.org/
*
* Created on Sep 3, 2007
*
*/
package org.biojava.nbio.structure;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.reflect.Method;
import java.util.Formatter;
import java.util.Locale;
/** A class to represent database cross references. This is just a simple bean that contains the infor from one
* DBREF line
*
* @author Andreas Prlic
* @since 4:56:14 PM
* @version %I% %G%
*/
public class DBRef implements PDBRecord {
private final static Logger logger = LoggerFactory.getLogger(DBRef.class);
private static final long serialVersionUID = -1050178577542224379L;
private Structure parent;
private String idCode;
private String chainName;
private int seqbegin;
private char insertBegin;
private int seqEnd;
private char insertEnd;
private String database;
private String dbAccession;
private String dbIdCode;
private int dbSeqBegin;
private char idbnsBegin;
private int dbSeqEnd;
private char idbnsEnd;
private Long id;
public DBRef() {
insertBegin = ' ';
insertEnd = ' ';
idbnsBegin = ' ';
idbnsEnd = ' ';
}
/** Get the ID used by Hibernate.
*
* @return the ID used by Hibernate
* @see #setId(Long)
*/
public Long getId() {
return id;
}
/** Set the ID used by Hibernate.
*
* @param id the id assigned by Hibernate
* @see #getId()
*/
public void setId(Long id) {
this.id = id;
}
/** Set the structure object that this DBRef relates to.
*
* @param s a structure object
* @see #getParent()
*/
public void setParent(Structure s){
parent = s;
}
/** Get the structure object that this DBRef relates to.
*
* @return s a structure object
* @see #setParent(Structure)
*/
public Structure getParent(){
return parent;
}
/** Convert the DBRef object to a DBREF record as it is used in PDB files
*
* @return a PDB - DBREF formatted line
*/
@Override
public String toPDB(){
StringBuffer buf = new StringBuffer();
toPDB(buf);
return buf.toString();
}
/** Append the PDB representation of this DBRef to the provided StringBuffer
*
* @param buf the StringBuffer to write to.
*/
@Override
public void toPDB(StringBuffer buf){
Formatter formatter = new Formatter(new StringBuilder(),Locale.UK);
// DBREF 3ETA A 990 1295 UNP P06213 INSR_HUMAN 1017 1322
// DBREF 3EH2 A 2 767 UNP P53992 SC24C_HUMAN 329 1094
// DBREF 3EH2 A 2 767 UNP P53992 SC24C_HUMAN 329 1094
// DBREF 3ETA A 990 1295 UNP P06213 INSR_HUMAN 1017 1322
formatter.format("DBREF %4s %1s %4d%1s %4d%1s %-6s %-8s %-12s%6d%1c%6d%1c ",
idCode, chainName,seqbegin,insertBegin,seqEnd,insertEnd,
database,dbAccession,dbIdCode,
dbSeqBegin,idbnsBegin,dbSeqEnd,idbnsEnd
);
buf.append(formatter.toString());
formatter.close();
}
/** String representation of a DBRef.
* @return a String
*/
@Override
public String toString(){
StringBuilder buf = new StringBuilder();
try {
@SuppressWarnings("rawtypes")
Class c = Class.forName(DBRef.class.getName());
Method[] methods = c.getMethods();
for (Method m : methods) {
String name = m.getName();
if (name.substring(0, 3).equals("get")) {
if (name.equals("getClass")) {
continue;
}
Object o = m.invoke(this);
if (o != null) {
buf.append(name.substring(3, name.length()));
buf.append(": ").append(o).append(" ");
}
}
}
} catch (Exception e){
logger.error("Exception: ", e);
}
return buf.toString();
}
/** get the idCode for this entry
*
* @return the idCode
* @see #setIdCode(String)
*/
public String getIdCode() {
return idCode;
}
/** Set the idCode for this entry.
*
* @param idCode the idCode for this entry
* @see #getIdCode()
*/
public void setIdCode(String idCode) {
this.idCode = idCode;
}
/** The name of the corresponding chain.
*
* @return chainName the name of the corresponding chain.
*/
public String getChainName() {
return chainName;
}
/** The name of the corresponding chain.
*
* @param chainName the name of the corresponding chain
* @see #getChainName()
*/
public void setChainName(String chainName) {
this.chainName = chainName;
}
/** The database of the db-ref.
* uses the abbreviation as provided in the PDB files:
*
*<pre> Database name database
(code in columns 27 - 32)
----------------------------------------------------------
GenBank GB
Protein Data Bank PDB
Protein Identification Resource PIR
SWISS-PROT SWS
TREMBL TREMBL
UNIPROT UNP
</pre>
* @return name of database of this DBRef
* @see #setDatabase(String)
*/
public String getDatabase() {
return database;
}
/** Specifies the database value.
*
* @param database the database
* @see #getDatabase()
*/
public void setDatabase(String database) {
this.database = database;
}
/** Sequence database accession code.
* @return the dbAccession
* @see #setDbAccession(String)
* */
public String getDbAccession() {
return dbAccession;
}
/** Sequence database accession code.
* @param dbAccession the dbAccession
* @see #getDbAccession()
* */
public void setDbAccession(String dbAccession) {
this.dbAccession = dbAccession;
}
/** Sequence database identification code.
*
* @return the dbIdCode
* @see #setDbIdCode(String)
*/
public String getDbIdCode() {
return dbIdCode;
}
/** Sequence database identification code.
*
* @param dbIdCode identification code
* @see #getDbIdCode()
*/
public void setDbIdCode(String dbIdCode) {
this.dbIdCode = dbIdCode;
}
/** Initial sequence number of the
database seqment.
* @return position
* @see #setDbSeqBegin(int)
*/
public int getDbSeqBegin() {
return dbSeqBegin;
}
/** Initial sequence number of the
database seqment.
* @param dbSeqBegin a sequence position
* @see #getDbSeqBegin()
*
*/
public void setDbSeqBegin(int dbSeqBegin) {
this.dbSeqBegin = dbSeqBegin;
}
/** Ending sequence position of the database segment.
* @return dbSeqEnd
* @see #setDbSeqEnd(int)
*/
public int getDbSeqEnd() {
return dbSeqEnd;
}
/** The begin of the sequence position in the database
*
* @param dbSeqEnd sequence position
* @see #getDbSeqEnd()
*/
public void setDbSeqEnd(int dbSeqEnd) {
this.dbSeqEnd = dbSeqEnd;
}
/** Insertion code of initial residue of the segment, if PDB is the
reference.
* @return idbnsBegin isnertion code
* @see #setIdbnsBegin(char)
* */
public char getIdbnsBegin() {
return idbnsBegin;
}
/** Insertion code of initial residue of the segment, if PDB is the
reference.
* @param idbnsBegin insertion code
* @see #getIdbnsBegin()
* */
public void setIdbnsBegin(char idbnsBegin) {
this.idbnsBegin = idbnsBegin;
}
/** Insertion code of the ending
residue of the segment, if PDB is
the reference.
* @return idbnsEnd insertion code
* @see #setIdbnsEnd(char)
*/
public char getIdbnsEnd() {
return idbnsEnd;
}
/** Insertion code of the ending
residue of the segment, if PDB is
the reference.
* @param idbnsEnd the insertion code
* @see #setIdbnsEnd(char)
*/
public void setIdbnsEnd(char idbnsEnd) {
this.idbnsEnd = idbnsEnd;
}
/** Initial insertion code of the PDB sequence segment.
*
* @return insertBegin
* @see #setInsertBegin(char)
*/
public char getInsertBegin() {
return insertBegin;
}
/** Initial insertion code of the PDB sequence segment.
*
* @param insertBegin
* @see #getInsertBegin()
*/
public void setInsertBegin(char insertBegin) {
this.insertBegin = insertBegin;
}
/** Ending insertion code of the PDB sequence segment.
*
* @return insertEnd insertion code
* @see #setInsertEnd(char)
*/
public char getInsertEnd() {
return insertEnd;
}
/** Ending insertion code of the PDB sequence segment.
*
* @param insertEnd insertEnd
* @see #getInsertEnd()
*
*/
public void setInsertEnd(char insertEnd) {
this.insertEnd = insertEnd;
}
/** Initial sequence number of the PDB sequence segment.
*
* @return start seq. position
* @see #setSeqBegin
*/
public int getSeqBegin() {
return seqbegin;
}
/** Initial sequence number of the PDB sequence segment.
*
* @param seqbegin start seq. position
* @see #getSeqBegin()
*/
public void setSeqBegin(int seqbegin) {
this.seqbegin = seqbegin;
}
/**Ending sequence number of the PDB sequence segment.
*
* @return sequence end position
* @see #getSeqEnd()
*/
public int getSeqEnd() {
return seqEnd;
}
/**Ending sequence number of the PDB sequence segment.
*
* @param seqEnd sequence end position
* @see #setSeqEnd(int)
*
*/
public void setSeqEnd(int seqEnd) {
this.seqEnd = seqEnd;
}
}