Skip to content

Commit d9c1481

Browse files
author
Matt Larson
committed
Adding TER records to pdb file export.
1 parent 8a99d94 commit d9c1481

File tree

2 files changed

+41
-17
lines changed

2 files changed

+41
-17
lines changed

biojava-integrationtest/src/test/java/org/biojava/nbio/structure/test/PDBFileParserTest.java

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,31 @@
2424
*/
2525
package org.biojava.nbio.structure.test;
2626

27-
import org.biojava.nbio.structure.*;
28-
import org.biojava.nbio.structure.align.util.AtomCache;
29-
import org.biojava.nbio.structure.io.FileParsingParameters;
30-
import org.biojava.nbio.structure.io.PDBFileParser;
31-
import org.biojava.nbio.structure.test.util.StringManipulationTestsHelper;
32-
import org.junit.Before;
33-
import org.junit.Test;
27+
import static org.junit.Assert.assertEquals;
28+
import static org.junit.Assert.assertNull;
29+
import static org.junit.Assert.assertTrue;
3430

3531
import java.io.BufferedReader;
3632
import java.io.IOException;
3733
import java.io.InputStream;
3834
import java.io.StringReader;
3935

40-
import static org.junit.Assert.*;
36+
import org.biojava.nbio.structure.Atom;
37+
import org.biojava.nbio.structure.Chain;
38+
import org.biojava.nbio.structure.ChainImpl;
39+
import org.biojava.nbio.structure.Group;
40+
import org.biojava.nbio.structure.JournalArticle;
41+
import org.biojava.nbio.structure.PDBHeader;
42+
import org.biojava.nbio.structure.Site;
43+
import org.biojava.nbio.structure.Structure;
44+
import org.biojava.nbio.structure.StructureException;
45+
import org.biojava.nbio.structure.StructureTools;
46+
import org.biojava.nbio.structure.align.util.AtomCache;
47+
import org.biojava.nbio.structure.io.FileParsingParameters;
48+
import org.biojava.nbio.structure.io.PDBFileParser;
49+
import org.biojava.nbio.structure.test.util.StringManipulationTestsHelper;
50+
import org.junit.Before;
51+
import org.junit.Test;
4152

4253
public class PDBFileParserTest {
4354

@@ -55,7 +66,8 @@ public void test2LetterResidueName() throws IOException {
5566
// from 1a4w:
5667
String t =
5768
"HETATM 2242 NA NA L 541 5.845 -14.122 30.560 0.88 23.48 NA"+newline+
58-
"HETATM 2243 NA NA L 542 18.411 -16.475 38.464 0.88 24.77 NA"+newline;
69+
"HETATM 2243 NA NA L 542 18.411 -16.475 38.464 0.88 24.77 NA"+newline+
70+
"TER"+newline;
5971
BufferedReader br = new BufferedReader(new StringReader(t));
6072
Structure s = parser.parsePDBFile(br);
6173
String pdb = s.toPDB();
@@ -85,7 +97,8 @@ public void testCorrectFloatingPointDisplay() throws IOException {
8597
"ATOM 11 C CYS L 1 9.580 14.524 21.006 1.00 18.64 C"+newline+
8698
"ATOM 12 O CYS L 1 9.110 15.220 21.912 1.00 19.03 O"+newline+
8799
"ATOM 13 CB CYS L 1 12.117 14.468 20.771 1.00 21.77 C"+newline+
88-
"ATOM 14 SG CYS L 1 12.247 14.885 22.538 1.00 20.55 S"+newline;
100+
"ATOM 14 SG CYS L 1 12.247 14.885 22.538 1.00 20.55 S"+newline+
101+
"TER"+newline;
89102

90103
BufferedReader br = new BufferedReader(new StringReader(t));
91104

@@ -527,7 +540,8 @@ public void testCorrectAtomNamePadding() throws IOException {
527540
"HETATM 2282 C22 QWE H 373 16.864 -13.556 14.739 1.00 42.63 C"+newline+
528541
"HETATM 2283 C2'1 QWE H 373 16.825 -12.903 16.107 1.00 40.59 C"+newline+
529542
"HETATM 2284 C42 QWE H 373 18.146 -14.734 13.451 1.00 43.96 C"+newline+
530-
"HETATM 2285 N3 QWE H 373 18.049 -13.554 14.106 1.00 43.46 N"+newline;
543+
"HETATM 2285 N3 QWE H 373 18.049 -13.554 14.106 1.00 43.46 N"+newline+
544+
"TER"+newline;
531545

532546
BufferedReader br = new BufferedReader(new StringReader(atomLines));
533547

biojava-structure/src/main/java/org/biojava/nbio/structure/io/FileConvert.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,6 @@
2121
*/
2222
package org.biojava.nbio.structure.io;
2323

24-
import org.biojava.nbio.structure.*;
25-
import org.biojava.nbio.structure.io.mmcif.MMCIFFileTools;
26-
import org.biojava.nbio.structure.io.mmcif.SimpleMMcifParser;
27-
import org.biojava.nbio.structure.io.mmcif.model.AtomSite;
28-
import org.biojava.nbio.core.util.XMLWriter;
29-
3024
import java.io.IOException;
3125
import java.text.DateFormat;
3226
import java.text.DecimalFormat;
@@ -37,6 +31,20 @@
3731
import java.util.Locale;
3832
import java.util.Map;
3933

34+
import org.biojava.nbio.core.util.XMLWriter;
35+
import org.biojava.nbio.structure.Atom;
36+
import org.biojava.nbio.structure.Chain;
37+
import org.biojava.nbio.structure.DBRef;
38+
import org.biojava.nbio.structure.Element;
39+
import org.biojava.nbio.structure.Group;
40+
import org.biojava.nbio.structure.GroupType;
41+
import org.biojava.nbio.structure.PDBHeader;
42+
import org.biojava.nbio.structure.SSBond;
43+
import org.biojava.nbio.structure.Site;
44+
import org.biojava.nbio.structure.Structure;
45+
import org.biojava.nbio.structure.io.mmcif.MMCIFFileTools;
46+
import org.biojava.nbio.structure.io.mmcif.SimpleMMcifParser;
47+
import org.biojava.nbio.structure.io.mmcif.model.AtomSite;
4048
import org.slf4j.Logger;
4149
import org.slf4j.LoggerFactory;
4250

@@ -237,6 +245,8 @@ public String toPDB() {
237245

238246

239247
}
248+
// End any chains with a "TER" record.
249+
if (nrGroups > 0) str.append("TER").append(newline);
240250
}
241251

242252
if ( nrModels>1) {

0 commit comments

Comments
 (0)