#ifndef CLASSIFIER_H
#define CLASSIFIER_H
#include "freesasa_internal.h"
extern const freesasa_classifier freesasa_backbone_classifier;
extern const freesasa_classifier freesasa_residue_classifier;
struct classifier_types {
int n_types;
char **name;
double *type_radius;
freesasa_atom_class *type_class;
};
struct classifier_residue {
int n_atoms;
char *name;
char **atom_name;
double *atom_radius;
freesasa_atom_class *atom_class;
freesasa_nodearea max_area;
};
struct freesasa_classifier {
int n_residues;
char **residue_name;
char *name;
struct classifier_residue **residue;
};
double
freesasa_guess_radius(const char *symbol);
const freesasa_nodearea *
freesasa_classifier_residue_reference(const freesasa_classifier *classifier,
const char *res_name);
freesasa_classifier *
freesasa_classifier_new(void);
struct classifier_types *
freesasa_classifier_types_new(void);
void freesasa_classifier_types_free(struct classifier_types *t);
struct classifier_residue *
freesasa_classifier_residue_new(const char *name);
void freesasa_classifier_residue_free(struct classifier_residue *res);
int freesasa_classifier_add_residue(struct freesasa_classifier *c,
const char *name);
int freesasa_classifier_add_atom(struct classifier_residue *res,
const char *name,
double radius,
int the_class);
int freesasa_classifier_add_type(struct classifier_types *types,
const char *type_name,
const char *class_name,
double r);
int freesasa_classifier_add_class(struct classifier_types *types,
const char *name);
int freesasa_classify_n_residue_types(void);
int freesasa_classify_residue(const char *res_name);
const char *
freesasa_classify_residue_name(int residue_type);
#endif