from enum import Enum
import numpy as np

class ResidueName(Enum):
    GLY = "GLY"
    ALA = "ALA"
    VAL = "VAL"
    LEU = "LEU"
    ILE = "ILE"
    SER = "SER"
    THR = "THR"
    PHE = "PHE"
    TYR = "TYR"
    HIS = "HIS"
    TRP = "TRP"
    CYS = "CYS"
    MET = "MET"
    ARG = "ARG"
    GLU = "GLU"
    GLN = "GLN"
    ASN = "ASN"
    LYS = "LYS"
    ASP = "ASP"
    PRO = "PRO"

class Residue():

    def __init__(self, name: ResidueName):
        self.name = name

        self.backbone = {
            'atoms': { "N": None, "CA": None, "C": None, "O": None },
            'phi': None,
            'psi': None
        }
        
        self.sidechain = {
            'atoms': {},
            'chis': []
        }
