forked from jonlee3/craut
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCrautNew.h
51 lines (41 loc) · 1.25 KB
/
CrautNew.h
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
#pragma once
#include "Craut.h"
struct Helix;
struct Angle;
/**
Extends the <Craut> class by providing weighting functionality
for linkers. The weighting scheme is a simplified version of that
found in the Heidelberg IGEM team's code. The class is labeled as
"New", because it is an updated version of their weighting scheme.
*/
class CrautNew :
public Craut
{
public:
CrautNew(std::string pdb_filepath, char subunit, std::vector<Helix> helices, std::vector<Angle> angles);
protected:
/**
Returns the total length of the linker, divided by the termini distance.
*/
double length_weight(Linker linker);
/**
Returns a weight for a linker based on the angle in between the helices.
The computation is based on a gaussian distribution.
*/
double angle_weight(Linker linker);
/**
Returns the distance from the linker to the protein. This is considered
as the distance from the point of the linker other than the termini.
*/
double dist_weight(Linker linker);
/**
The overridden function from the base class <Craut>
Returns the weight of a linker, to be used for
ranking linkers.
*/
double get_weight(Linker linker);
/**
Returns a formatted string with info on the separate weight contributions.
*/
std::string get_weighting_info(Linker linker);
};