File: fragmentDB.sip

package info (click to toggle)
ball 1.5.0%2Bgit20180813.37fc53c-6
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 239,888 kB
  • sloc: cpp: 326,149; ansic: 4,208; python: 2,303; yacc: 1,778; lex: 1,099; xml: 958; sh: 322; makefile: 95
file content (95 lines) | stat: -rw-r--r-- 2,620 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
class FragmentDB
{
%TypeHeaderCode
	#include <BALL/PYTHON/EXTENSIONS/pyUnaryProcessors.h>
	#include <BALL/STRUCTURE/fragmentDB.h>
	#include <BALL/STRUCTURE/reconstructFragmentProcessor.h>
	using StringHashMapString = StringHashMap<String>;
%End

	public:

	enum FragmentTypes
	{
		TYPE__UNKNOWN = -1,
		TYPE__FRAGMENT,
		TYPE__RESIDUE,
		TYPE__MOLECULE
	};
	typedef short Type;

	FragmentDB();
	FragmentDB(const String&);
	FragmentDB(const FragmentDB&, bool deep = true);
	~FragmentDB();
	void destroy();
	void init();
	void setFilename(const String&);
	const String& getFilename() const;
	bool has(const String&) const;
	FragmentDB::Type getFragmentType(const String&) const;

	const Fragment* getFragment(const String&) const;
	const Fragment* getReferenceFragment(const Fragment&) const;
	const Residue* getResidue(const String&) const;
	Fragment* getFragmentCopy(const String&) const;
	Molecule* getMoleculeCopy(const String&) const;
	Residue* getResidueCopy(const String&) const;
	const StringHashMap<String>& getNamingStandard(const String&) const
		throw(StringHashMapString::IllegalKey);
	vector<String> getAvailableNamingStandards() const;
	const String& getDefaultNamingStandard() const;
	bool isValid() const;

	NormalizeNamesProcessor normalize_names;
	ReconstructFragmentProcessor  add_hydrogens;
	BuildBondsProcessor build_bonds;
	ResourceEntry* tree;
};

class NormalizeNamesProcessor
	: FragmentProcessor
{
%TypeHeaderCode
	#include <BALL/PYTHON/EXTENSIONS/pyUnaryProcessors.h>
	#include <BALL/STRUCTURE/fragmentDB.h>
	using NormalizeNamesProcessor = FragmentDB::NormalizeNamesProcessor;
%End
	public:
	NormalizeNamesProcessor();
	NormalizeNamesProcessor(FragmentDB&);
	~NormalizeNamesProcessor();
	void setFragmentDB(FragmentDB&);
	void setNamingStandard(const String&);
	const String& getNamingStandard();
	virtual bool start();
	virtual bool finish();
	Processor::Result operator () (Fragment&);
%MethodCode
	sipRes = sipCpp->operator () (*a0);
%End
};

class BuildBondsProcessor
	: FragmentProcessor
{
%TypeHeaderCode
	#include <BALL/PYTHON/EXTENSIONS/pyUnaryProcessors.h>
	#include <BALL/STRUCTURE/fragmentDB.h>
	using BuildBondsProcessor = FragmentDB::BuildBondsProcessor;
%End
	public:
	BuildBondsProcessor();
	BuildBondsProcessor(const FragmentDB&);
	~BuildBondsProcessor();
	virtual bool finish();
	virtual bool start();
	Processor::Result operator () (Fragment&);
%MethodCode
	sipRes = sipCpp->operator () (*a0);
%End
	Size getNumberOfBondsBuilt();
	void setFragmentDB(const FragmentDB&);
	Size buildFragmentBonds(Fragment&) const;
	Size buildInterFragmentBonds(Fragment&, Fragment&) const;
};