Skip to content

Commit 16fc018

Browse files
author
Hernan Morales
committed
Add PDB parser and tests
1 parent 5201b99 commit 16fc018

14 files changed

Lines changed: 1561 additions & 0 deletions

repository/BioParsers-Tests/BioPDBParserTest.class.st

Lines changed: 523 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
Class {
2+
#name : 'BioPDBAtomRecord',
3+
#superclass : 'BioPDBRecord',
4+
#instVars : [
5+
'serialNumber',
6+
'atomName',
7+
'altLoc',
8+
'resName',
9+
'chainID',
10+
'resSeq',
11+
'iCode',
12+
'x',
13+
'y',
14+
'z',
15+
'occupancy',
16+
'tempFactor',
17+
'element',
18+
'charge'
19+
],
20+
#category : 'BioParsers-PDB',
21+
#package : 'BioParsers',
22+
#tag : 'PDB'
23+
}
24+
25+
{ #category : 'accessing' }
26+
BioPDBAtomRecord >> altLoc [
27+
^ altLoc
28+
]
29+
30+
{ #category : 'accessing' }
31+
BioPDBAtomRecord >> altLoc: aString [
32+
altLoc := aString
33+
]
34+
35+
{ #category : 'accessing' }
36+
BioPDBAtomRecord >> atomName [
37+
^ atomName
38+
]
39+
40+
{ #category : 'accessing' }
41+
BioPDBAtomRecord >> atomName: aString [
42+
atomName := aString
43+
]
44+
45+
{ #category : 'accessing' }
46+
BioPDBAtomRecord >> chainID [
47+
^ chainID
48+
]
49+
50+
{ #category : 'accessing' }
51+
BioPDBAtomRecord >> chainID: aString [
52+
chainID := aString
53+
]
54+
55+
{ #category : 'accessing' }
56+
BioPDBAtomRecord >> charge [
57+
^ charge
58+
]
59+
60+
{ #category : 'accessing' }
61+
BioPDBAtomRecord >> charge: aString [
62+
charge := aString
63+
]
64+
65+
{ #category : 'accessing' }
66+
BioPDBAtomRecord >> element [
67+
^ element
68+
]
69+
70+
{ #category : 'accessing' }
71+
BioPDBAtomRecord >> element: aString [
72+
element := aString
73+
]
74+
75+
{ #category : 'accessing' }
76+
BioPDBAtomRecord >> iCode [
77+
^ iCode
78+
]
79+
80+
{ #category : 'accessing' }
81+
BioPDBAtomRecord >> iCode: aString [
82+
iCode := aString
83+
]
84+
85+
{ #category : 'testing' }
86+
BioPDBAtomRecord >> isAtomRecord [
87+
^ true
88+
]
89+
90+
{ #category : 'accessing' }
91+
BioPDBAtomRecord >> occupancy [
92+
^ occupancy
93+
]
94+
95+
{ #category : 'accessing' }
96+
BioPDBAtomRecord >> occupancy: aNumber [
97+
occupancy := aNumber
98+
]
99+
100+
{ #category : 'accessing' }
101+
BioPDBAtomRecord >> resName [
102+
^ resName
103+
]
104+
105+
{ #category : 'accessing' }
106+
BioPDBAtomRecord >> resName: aString [
107+
resName := aString
108+
]
109+
110+
{ #category : 'accessing' }
111+
BioPDBAtomRecord >> resSeq [
112+
^ resSeq
113+
]
114+
115+
{ #category : 'accessing' }
116+
BioPDBAtomRecord >> resSeq: aNumber [
117+
resSeq := aNumber
118+
]
119+
120+
{ #category : 'accessing' }
121+
BioPDBAtomRecord >> serialNumber [
122+
^ serialNumber
123+
]
124+
125+
{ #category : 'accessing' }
126+
BioPDBAtomRecord >> serialNumber: aNumber [
127+
serialNumber := aNumber
128+
]
129+
130+
{ #category : 'accessing' }
131+
BioPDBAtomRecord >> tempFactor [
132+
^ tempFactor
133+
]
134+
135+
{ #category : 'accessing' }
136+
BioPDBAtomRecord >> tempFactor: aNumber [
137+
tempFactor := aNumber
138+
]
139+
140+
{ #category : 'accessing' }
141+
BioPDBAtomRecord >> x [
142+
^ x
143+
]
144+
145+
{ #category : 'accessing' }
146+
BioPDBAtomRecord >> x: aNumber [
147+
x := aNumber
148+
]
149+
150+
{ #category : 'accessing' }
151+
BioPDBAtomRecord >> y [
152+
^ y
153+
]
154+
155+
{ #category : 'accessing' }
156+
BioPDBAtomRecord >> y: aNumber [
157+
y := aNumber
158+
]
159+
160+
{ #category : 'accessing' }
161+
BioPDBAtomRecord >> z [
162+
^ z
163+
]
164+
165+
{ #category : 'accessing' }
166+
BioPDBAtomRecord >> z: aNumber [
167+
z := aNumber
168+
]
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
Class {
2+
#name : 'BioPDBConectRecord',
3+
#superclass : 'BioPDBRecord',
4+
#instVars : [
5+
'serialNumber',
6+
'bondedAtoms'
7+
],
8+
#category : 'BioParsers-PDB',
9+
#package : 'BioParsers',
10+
#tag : 'PDB'
11+
}
12+
13+
{ #category : 'accessing' }
14+
BioPDBConectRecord >> bondedAtoms [
15+
^ bondedAtoms
16+
]
17+
18+
{ #category : 'accessing' }
19+
BioPDBConectRecord >> bondedAtoms: aCollection [
20+
bondedAtoms := aCollection
21+
]
22+
23+
{ #category : 'accessing' }
24+
BioPDBConectRecord >> serialNumber [
25+
^ serialNumber
26+
]
27+
28+
{ #category : 'accessing' }
29+
BioPDBConectRecord >> serialNumber: aNumber [
30+
serialNumber := aNumber
31+
]
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
Class {
2+
#name : 'BioPDBFile',
3+
#superclass : 'BioObject',
4+
#instVars : [
5+
'atoms',
6+
'seqResRecords',
7+
'records',
8+
'header',
9+
'title'
10+
],
11+
#category : 'BioParsers-PDB',
12+
#package : 'BioParsers',
13+
#tag : 'PDB'
14+
}
15+
16+
{ #category : 'accessing' }
17+
BioPDBFile >> atoms [
18+
^ atoms
19+
]
20+
21+
{ #category : 'accessing' }
22+
BioPDBFile >> atoms: aCollection [
23+
atoms := aCollection
24+
]
25+
26+
{ #category : 'accessing' }
27+
BioPDBFile >> atomsForChain: aChainID [
28+
^ atoms select: [ :a | a chainID = aChainID ]
29+
]
30+
31+
{ #category : 'accessing' }
32+
BioPDBFile >> header [
33+
^ header
34+
]
35+
36+
{ #category : 'accessing' }
37+
BioPDBFile >> header: aRecord [
38+
header := aRecord
39+
]
40+
41+
{ #category : 'accessing' }
42+
BioPDBFile >> records [
43+
^ records
44+
]
45+
46+
{ #category : 'accessing' }
47+
BioPDBFile >> records: aCollection [
48+
records := aCollection
49+
]
50+
51+
{ #category : 'accessing' }
52+
BioPDBFile >> seqResRecords [
53+
^ seqResRecords
54+
]
55+
56+
{ #category : 'accessing' }
57+
BioPDBFile >> seqResRecords: aCollection [
58+
seqResRecords := aCollection
59+
]
60+
61+
{ #category : 'accessing' }
62+
BioPDBFile >> sequenceForChain: aChainID [
63+
| chainSeqRes |
64+
chainSeqRes := seqResRecords select: [ :r | r chainID = aChainID ].
65+
^ String streamContents: [ :s |
66+
chainSeqRes do: [ :r | s nextPutAll: r sequenceString ] ]
67+
]
68+
69+
{ #category : 'accessing' }
70+
BioPDBFile >> title [
71+
^ title
72+
]
73+
74+
{ #category : 'accessing' }
75+
BioPDBFile >> title: aRecord [
76+
title := aRecord
77+
]
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
Class {
2+
#name : 'BioPDBHeaderRecord',
3+
#superclass : 'BioPDBRecord',
4+
#instVars : [
5+
'classification',
6+
'depositionDate',
7+
'idCode'
8+
],
9+
#category : 'BioParsers-PDB',
10+
#package : 'BioParsers',
11+
#tag : 'PDB'
12+
}
13+
14+
{ #category : 'accessing' }
15+
BioPDBHeaderRecord >> classification [
16+
^ classification
17+
]
18+
19+
{ #category : 'accessing' }
20+
BioPDBHeaderRecord >> classification: aString [
21+
classification := aString
22+
]
23+
24+
{ #category : 'accessing' }
25+
BioPDBHeaderRecord >> depositionDate [
26+
^ depositionDate
27+
]
28+
29+
{ #category : 'accessing' }
30+
BioPDBHeaderRecord >> depositionDate: aString [
31+
depositionDate := aString
32+
]
33+
34+
{ #category : 'accessing' }
35+
BioPDBHeaderRecord >> idCode [
36+
^ idCode
37+
]
38+
39+
{ #category : 'accessing' }
40+
BioPDBHeaderRecord >> idCode: aString [
41+
idCode := aString
42+
]

0 commit comments

Comments
 (0)