IMP
2.3.0
The Integrative Modeling Platform
IMP Mainpage
Modules
Applications
Related Pages
Groups
Classes
Files
Examples
Indexes
File List
File Members
mol2.h
Go to the documentation of this file.
1
/**
2
* \file IMP/atom/mol2.h
3
* \brief Functions to read mol2s
4
*
5
* Copyright 2007-2014 IMP Inventors. All rights reserved.
6
*
7
*/
8
9
#ifndef IMPATOM_MOL_2_H
10
#define IMPATOM_MOL_2_H
11
12
#include <IMP/atom/atom_config.h>
13
#include "
Hierarchy.h
"
14
#include "
atom_macros.h
"
15
#include "internal/mol2.h"
16
17
#include <
IMP/kernel/Model.h
>
18
#include <
IMP/kernel/Particle.h
>
19
#include <
IMP/base/file.h
>
20
21
IMPATOM_BEGIN_NAMESPACE
22
23
//! A base class for choosing which Mol2 atoms to read
24
/**
25
*/
26
class
IMPATOMEXPORT
Mol2Selector
:
public
IMP::base::Object
{
27
public
:
28
Mol2Selector
() :
Object
(
"Mol2Selector%1%"
) {}
29
virtual
bool
get_is_selected(
const
std::string& atom_line)
const
= 0;
30
virtual
~
Mol2Selector
();
31
};
32
33
//! Read all atoms
34
class
AllMol2Selector
:
public
Mol2Selector
{
35
public
:
36
IMP_MOL2_SELECTOR
(
AllMol2Selector
,
return
(
true
|| mol2_line.empty()),
37
out <<
""
);
38
};
39
40
//! Defines a selector that will pick only non-hydrogen atoms
41
class
IMPATOMEXPORT
NonHydrogenMol2Selector
:
public
Mol2Selector
{
42
public
:
43
IMP_MOL2_SELECTOR
(
NonHydrogenMol2Selector
,
44
String
atom_type = internal::pick_mol2atom_type(mol2_line);
45
return
(atom_type[0] !=
'H'
), out <<
""
);
46
};
47
48
/** @name Mol2 IO
49
50
\imp can also read and write Mol2 files. As with read_pdb(), selector
51
objects are used to determine which atoms are read.
52
53
The read function produces a hierarchy containing the molecule. The write
54
hierarchy writes all the Residue types in the hierarchy to the file.
55
@{
56
*/
57
//! Create a hierarchy from a Mol2 file.
58
IMPATOMEXPORT
Hierarchy
read_mol2
(
base::TextInput
mol2_file,
59
kernel::Model
* model,
60
Mol2Selector
* mol2sel =
nullptr
);
61
62
//! Write a ligand hierarchy as a mol2 file
63
/** For now, this has to be a hierarchy created by read_mol2()
64
*/
65
IMPATOMEXPORT
void
write_mol2
(
Hierarchy
rhd,
base::TextOutput
file_name);
66
67
/** @} */
68
69
IMPATOM_END_NAMESPACE
70
71
#endif
/* IMPATOM_MOL_2_H */
IMP::atom::AllMol2Selector
Read all atoms.
Definition:
mol2.h:34
IMP::base::TextInput
Definition:
file.h:89
file.h
Handling of file input/output.
IMP_MOL2_SELECTOR
#define IMP_MOL2_SELECTOR(Name, selected, show)
Define the basic things you need for a mol2 selector.
Definition:
atom_macros.h:31
Hierarchy.h
Decorator for helping deal with a hierarchy of molecules.
IMP::atom::Hierarchy
The standard decorator for manipulating molecular structures.
Definition:
atom/Hierarchy.h:203
IMP::base::Object::Object
Object(std::string name)
Construct an object with the given name.
IMP::atom::read_mol2
Hierarchy read_mol2(base::TextInput mol2_file, kernel::Model *model, Mol2Selector *mol2sel=nullptr)
Create a hierarchy from a Mol2 file.
IMP::atom::write_mol2
void write_mol2(Hierarchy rhd, base::TextOutput file_name)
Write a ligand hierarchy as a mol2 file.
Model.h
Storage of a model, its restraints, constraints and particles.
IMP::base::Object
Common base class for heavy weight IMP objects.
Definition:
Object.h:106
Particle.h
Classes to handle individual model particles. (Note that implementation of inline functions in in int...
IMP::atom::NonHydrogenMol2Selector
Defines a selector that will pick only non-hydrogen atoms.
Definition:
mol2.h:41
atom_macros.h
Various important macros for implementing decorators.
IMP::base::TextOutput
Definition:
file.h:50
IMP::String
std::string String
Basic string value.
Definition:
types.h:44
IMP::atom::Mol2Selector
A base class for choosing which Mol2 atoms to read.
Definition:
mol2.h:26
IMP::kernel::Model
Class for storing model, its restraints, constraints, and particles.
Definition:
kernel/Model.h:73