pub fn write_pdb_structure<W: Write>(
writer: W,
structure: &Structure,
) -> Result<(), Error>Expand description
Writes a Structure to PDB format, including optional CRYST1 and TER records.
The function traverses chains in their stored order, emits ATOM records for polymeric
residues, HETATM records for everything else, and appends a final END line so the file
is ready for legacy toolchains.
§Arguments
writer- Destination implementingWrite, such as a file or in-memory buffer.structure- Source structure whose chains and atoms are serialized.
§Returns
Ok if writing succeeded; Error if IO failures occur.
§Examples
use bio_forge::io::{write_pdb_structure, IoContext, read_pdb_structure};
use std::io::Cursor;
// Parse a minimal PDB and immediately write it back out.
let pdb = "\
ATOM 1 N GLY A 1 0.000 0.000 0.000 1.00 20.00 N\n\
END\n";
let context = IoContext::new_default();
let mut cursor = Cursor::new(pdb.as_bytes());
let structure = read_pdb_structure(&mut cursor, &context).unwrap();
let mut out = Vec::new();
write_pdb_structure(&mut out, &structure).unwrap();
assert!(String::from_utf8(out).unwrap().contains("END"));