5 #ifndef BALL_FORMAT_PDBFILE_H
6 #define BALL_FORMAT_PDBFILE_H
8 #ifndef BALL_CONCEPT_PROPERTY_H
12 #ifndef BALL_FORMAT_GENERICMOLFILE_H
16 #ifndef BALL_DATATYPE_OPTIONS_H
20 #ifndef BALL_DATATYPE_QUADRUPLE_H
24 #ifndef BALL_FORMAT_PDBDEFS_H
28 #ifndef BALL_FORMAT_PDBINFO_H
32 #ifndef BALL_KERNEL_PDBAtom_H
36 #ifndef BALL_KERNEL_SYSTEM_H
40 #ifndef BALL_KERNEL_RESIDUE_H
44 #ifndef BALL_KERNEL_SECONDARYSTRUCTURE_H
202 virtual void clear(
int state);
205 virtual void clear();
214 virtual float getVersion()
const;
222 void selectModel(
Index index);
235 void selectAltLocationIndicator(
char c);
238 Index getSelectedModel()
const;
241 void selectAllModels();
244 Index getCurrentModel()
const;
247 char* getRecordString();
250 const char* getRecordString()
const;
253 Index getRecordNumber()
const;
261 virtual const char* getAtomElementSymbol
266 virtual const char* getAtomName
270 virtual char getAtomRemotenessIndicator
274 virtual short getAtomBranchDesignator
278 Size countRecordFields()
const;
285 bool from_begin_of_file =
true);
290 (
bool from_begin_of_file =
true);
299 bool parseLine(
const char* line,
Size size,
const char* format_string, ...);
303 bool readLine(
char* line,
Size size,
bool extract_values);
306 bool readFirstRecord(
bool read_values =
true);
309 bool readNextRecord(
bool read_values =
true);
321 virtual bool readUnknownRecord(
const char* line);
325 virtual bool readInvalidRecord(
const char* line);
335 bool skipCurrentRecord();
340 virtual bool parseRecordANISOU(
const char* line,
Size size);
345 virtual bool parseRecordATOM(
const char* line,
Size size);
350 virtual bool parseRecordAUTHOR(
const char* line,
Size size);
355 virtual bool parseRecordCAVEAT(
const char* line,
Size size);
360 virtual bool parseRecordCISPEP(
const char* line,
Size size);
365 virtual bool parseRecordCOMPND(
const char* line,
Size size);
370 virtual bool parseRecordCONECT(
const char* line,
Size size);
377 virtual bool parseRecordCRYST1(
const char* line,
Size size);
382 virtual bool parseRecordDBREF(
const char* line,
Size size);
387 virtual bool parseRecordEND(
const char* line,
Size size);
392 virtual bool parseRecordENDMDL(
const char* line,
Size size);
397 virtual bool parseRecordEXPDTA(
const char* line,
Size size);
404 virtual bool parseRecordFORMUL(
const char* line,
Size size);
409 virtual bool parseRecordFTNOTE(
const char* line,
Size size);
416 virtual bool parseRecordHEADER(
const char* line,
Size size);
421 virtual bool parseRecordHELIX(
const char* line,
Size size);
426 virtual bool parseRecordHET(
const char* line,
Size size);
431 virtual bool parseRecordHETATM(
const char* line,
Size size);
436 virtual bool parseRecordHETNAM(
const char* line,
Size size);
441 virtual bool parseRecordHETSYN(
const char* line,
Size size);
446 virtual bool parseRecordHYDBND(
const char* line,
Size size);
451 virtual bool parseRecordJRNL(
const char* line,
Size size);
456 virtual bool parseRecordKEYWDS(
const char* line,
Size size);
461 virtual bool parseRecordLINK(
const char* line,
Size size);
468 virtual bool parseRecordMASTER(
const char* line,
Size size);
473 virtual bool parseRecordMODEL(
const char* line,
Size size);
478 virtual bool parseRecordMODRES(
const char* line,
Size size);
485 virtual bool parseRecordMTRIX1(
const char* line,
Size size);
492 virtual bool parseRecordMTRIX2(
const char* line,
Size size);
499 virtual bool parseRecordMTRIX3(
const char* line,
Size size);
506 virtual bool parseRecordOBSLTE(
const char* line,
Size size);
513 virtual bool parseRecordORIGX1(
const char* line,
Size size);
520 virtual bool parseRecordORIGX2(
const char* line,
Size size);
527 virtual bool parseRecordORIGX3(
const char* line,
Size size);
532 virtual bool parseRecordREMARK(
const char* line,
Size size);
537 virtual bool parseRecordREVDAT(
const char* line,
Size size);
542 virtual bool parseRecordSCALE1(
const char* line,
Size size);
547 virtual bool parseRecordSCALE2(
const char* line,
Size size);
552 virtual bool parseRecordSCALE3(
const char* line,
Size size);
557 virtual bool parseRecordSEQADV(
const char* line,
Size size);
562 virtual bool parseRecordSEQRES(
const char* line,
Size size);
567 virtual bool parseRecordSHEET(
const char* line,
Size size);
572 virtual bool parseRecordSIGATM(
const char* line,
Size size);
579 virtual bool parseRecordSIGUIJ(
const char* line,
Size size);
584 virtual bool parseRecordSITE(
const char* line,
Size size);
589 virtual bool parseRecordSLTBRG(
const char* line,
Size size);
596 virtual bool parseRecordSOURCE(
const char* line,
Size size);
601 virtual bool parseRecordSPRSDE(
const char* line,
Size size);
606 virtual bool parseRecordSSBOND(
const char* line,
Size size);
611 virtual bool parseRecordTER(
const char* line,
Size size);
616 virtual bool parseRecordTITLE(
const char* line,
Size size);
621 virtual bool parseRecordTURN(
const char* line,
Size size);
628 virtual bool parseRecordTVECT(
const char* line,
Size size);
632 virtual bool hasFormat();
693 bool read(
System& system);
707 bool write(
const Protein& protein);
714 bool write(
const Molecule& molecule);
721 bool write(
const System& system);
744 void postprocessSSBonds_();
745 void postprocessHelices_();
747 void postprocessRandomCoils_();
770 void writeRawRecord_(
const char* format,
const char* tag, ...);
809 void writeSEQRESSection_(
const std::vector<std::pair<char, String> >& chain_residues);
827 static bool isHeteroAtom_(
const Atom& atom);
920 BALL_EXPORT std::ostream& operator << (std::ostream& s, const Quadruple<String,PDB::Character,PDB::Integer,PDB::AChar>& )
927 # ifndef BALL_NO_INLINE_FUNCTIONS
928 # include <BALL/FORMAT/PDBFile.iC>
933 #endif // BALL_FORMAT_PDBFILE_H
SecStructList new_turn_secstruc_list_
static const char * IGNORE_XPLOR_PSEUDO_ATOMS
HashIndex Hash(const T &key)
static const Index CHOOSE_MODEL
PDB::Integer sequence_number_
const Protein * current_const_protein_
PDBInfo info
Summary information on the last file read.
std::istream & operator>>(std::istream &is, TRegularData1D< ValueType > &grid)
Input operator.
const Residue * current_const_residue_
PDB::RecordType current_record_type_
SecStructList new_helix_secstruc_list_
Quadruple< String, PDB::Character, PDB::Integer, PDB::AChar > ResidueQuadruple
PDBAtom * current_PDB_atom_
char alternate_location_indicator_
static const char * STRICT_LINE_CHECKING
BALL_EXPORT std::ostream & operator<<(std::ostream &os, const Exception::GeneralException &e)
bool parse_partial_charges_
Read partial charges from cols 76-80?
const Chain * current_const_chain_
std::ios::openmode OpenMode
BALL_EXTERN_VARIABLE const double c
HashMap< ResidueQuadruple, Residue * > ResidueMap
std::list< ResidueQuadruple > QuadrupleList
bool write_pdbformat_1996_
write in the 1996-format?
static const bool STORE_SKIPPED_RECORDS
PDB::RecordTypeFormat compare_record_type_format_
PDB::BookKeeping book_keeping_
Book keeping struct for the number of records written.
static const bool PARSE_PARTIAL_CHARGES
SecStructList new_sheet_secstruc_list_
static const char * VERBOSITY
Index selected_model_
The selected model_.
Residue * current_residue_
std::list< SecondaryStructure * > SecStructList
static const Index VERBOSITY
static const bool STRICT_LINE_CHECKING
static const bool IGNORE_XPLOR_PSEUDO_ATOMS
static const char * CHOOSE_MODEL
static const char * STORE_SKIPPED_RECORDS
Protein * current_protein_
static const bool WRITE_PDBFORMAT_1996
Index residue_sequence_number_
HashMap< PDB::Integer, PDBAtom * > PDBAtomMap
const Atom * current_const_atom_
HashMap< const Atom *, Position > atom_map_
int verbosity_
_Verbosity level
PDB::AChar insertion_code_
bool ignore_xplor_pseudo_atoms_
Ignore XPLOR pseudo atoms?
bool strict_line_checking_
bool store_skipped_records_
Store the skipped records in info?
static const char * WRITE_PDBFORMAT_1996
static const char * PARSE_PARTIAL_CHARGES
QuadrupleList sheet_list_
QuadrupleList helix_list_
QuadrupleList ssbond_list_