io

Functions related to reading and writing data.

class pdb2pqr.io.DuplicateFilter[source]

Filter duplicate messages.

__init__()[source]

Initialize a filter.

Initialize with the name of the logger which, together with its children, will have its events allowed through the filter. If no name is specified, allow every event.

filter(record)[source]

Filter current record.

pdb2pqr.io.dump_apbs(output_pqr, output_path)[source]

Generate and dump APBS input files related to output_pqr.

Parameters:
  • output_pqr (str) – path to PQR file used to generate APBS input file
  • output_path (str) – path for APBS input file output
pdb2pqr.io.get_definitions(aa_path='AA.xml', na_path='NA.xml', patch_path='PATCHES.xml')[source]

Load topology definition files.

Parameters:
  • aa_path (str) – likely location of amino acid topology definitions
  • na_path (str) – likely location of nucleic acid topology definitions
  • patch_path (str) – likely location of patch topology definitions
Returns:

topology Definitions object.

Return type:

Definition

pdb2pqr.io.get_molecule(input_path)[source]

Get molecular structure information as a series of parsed lines.

Parameters:input_path – structure file PDB ID or path
Returns:(list of molecule records, Boolean indicating whether entry is CIF)
Return type:([str], bool)
Raises:RuntimeError – problems with structure file
pdb2pqr.io.get_old_header(pdblist)[source]

Get old header from list of pdb objects.

Parameters:pdblist ([]) – list of pdb block objects
Returns:old header as string
Return type:str
pdb2pqr.io.get_pdb_file(name)[source]

Obtain a PDB file.

First check the path given on the command line - if that file is not available, obtain the file from the PDB webserver at http://www.rcsb.org/pdb/

Todo

This should be a context manager (to close the open file).

Todo

Remove hard-coded parameters.

Parameters:name (str) – name of PDB file (path) or PDB ID
Returns:file-like object containing PDB file
Return type:file
pdb2pqr.io.print_biomolecule_atoms(atomlist, chainflag=False, pdbfile=False)[source]

Get PDB-format text lines for specified atoms.

Parameters:
  • atomlist ([Atom]) – the list of atoms to include
  • chainflag (bool) – flag whether to print chainid or not
Returns:

list of strings, each representing an atom PDB line

Return type:

[str]

pdb2pqr.io.print_pqr_header(pdblist, atomlist, reslist, charge, force_field, ph_calc_method, ph, ffout, include_old_header=False)[source]

Print the header for the PQR file.

Parameters:
  • pdblist ([str]) – list of lines from original PDB with header
  • atomlist ([Atom]) – a list of atoms that were unable to have charges assigned
  • reslist ([Residue]) – a list of residues with non-integral charges
  • charge (float) – the total charge on the biomolecule
  • force_field (str) – the forcefield name
  • ph_calc_method (str) – pKa calculation method
  • ph (float) – pH value, if any
  • ffout (str) – forcefield used for naming scheme
Returns:

the header for the PQR file

Return type:

str

pdb2pqr.io.print_pqr_header_cif(atomlist, reslist, charge, force_field, ph_calc_method, ph, ffout, include_old_header=False)[source]

Print the header for the PQR file in CIF format.

Parameters:
  • atomlist ([Atom]) – a list of atoms that were unable to have charges assigned
  • reslist ([Residue]) – a list of residues with non-integral charges
  • charge (float) – the total charge on the biomolecule
  • force_field (str) – the forcefield name
  • ph_calc_method (str) – pKa calculation method
  • ph (float) – pH value, if any
  • ffout (str) – forcefield used for naming scheme
Returns:

the header for the PQR file

Return type:

str

pdb2pqr.io.read_dx(dx_file)[source]

Read DX-format volumetric information.

The OpenDX file format is defined at <https://www.idvbook.com/wp-content/uploads/2010/12/opendx.pdf`.

Note

This function is not a general-format OpenDX file parser and makes many assumptions about the input data type, grid structure, etc.

Todo

This function should be moved into the APBS code base.

Parameters:dx_file (file) – file object for DX file, ready for reading as text
Returns:dictionary with data from DX file
Return type:dict
Raises:ValueError – on parsing error
pdb2pqr.io.read_pqr(pqr_file)[source]

Read PQR file.

Parameters:pqr_file (file) – file object ready for reading as text
Returns:list of atoms read from file
Return type:[Atom]
pdb2pqr.io.read_qcd(qcd_file)[source]

Read QCD (UHDB QCARD format) file.

Parameters:qcd_file (file) – file object ready for reading as text
Returns:list of atoms read from file
Return type:[Atom]
pdb2pqr.io.setup_logger(output_pqr, level='DEBUG')[source]

Setup the logger.

Setup logger to output the log file to the same directory as PQR output.

Parameters:
  • output_pqr (str) – path to PQR file
  • level (str) – logging level
pdb2pqr.io.test_dat_file(name)[source]

Test for the forcefield file with a few name permutations.

Parameters:name (str) – the name of the dat file
Returns:the path to the file
Return type:Path
Raises:FileNotFoundError – file not found
pdb2pqr.io.test_for_file(name, type_)[source]

Test for the existence of a file with a few name permutations.

Parameters:
  • name (str) – name of file
  • type (str) – type of file
Returns:

path to file

Raises:

FileNotFoundError – if file not found

Return type:

Path

pdb2pqr.io.test_names_file(name)[source]

Test for the .names file that contains the XML mapping.

Parameters:name (str) – the name of the forcefield
Returns:the path to the file
Return type:Path
Raises:FileNotFoundError – file not found
pdb2pqr.io.test_xml_file(name)[source]

Test for the XML file with a few name permutations.

Parameters:name (str) – the name of the dat file
Returns:the path to the file
Return type:Path
Raises:FileNotFoundError – file not found
pdb2pqr.io.write_cube(cube_file, data_dict, atom_list, comment='CPMD CUBE FILE.')[source]

Write a Cube-format data file.

Cube file format is defined at <https://docs.chemaxon.com/display/Gaussian_Cube_format.html>.

Todo

This function should be moved into the APBS code base.

Parameters:
  • cube_file (file) – file object ready for writing text data
  • data_dict (dict) – dictionary of volumetric data as produced by read_dx()
  • comment (str) – comment for Cube file