Skip to content
Snippets Groups Projects
RotTable.py 1.99 KiB
Newer Older
Busson Loic's avatar
Busson Loic committed
import mathutils
import math
import numpy
Busson Loic's avatar
Busson Loic committed

class RotTable:
    """Represents the rotation table"""

    __ORIGINAL_ROT_TABLE = {\
        "AA": [35.62, 7.2, -154, 0.06, 0.6, 0],\
        "AC": [34.4, 1.1, 143, 1.3, 5, 0],\
        "AG": [27.7, 8.4, 2, 1.5, 3, 0],\
        "AT": [31.5, 2.6, 0, 1.1, 2, 0],\
        "CA": [34.5, 3.5, -64, 0.9, 34, 0],\
        "CC": [33.67, 2.1, -57, 0.07, 2.1, 0],\
        "CG": [29.8, 6.7, 0, 1.1, 1.5, 0],\
        "CT": [27.7, 8.4, -2, 1.5, 3, 0],\
        "GA": [36.9, 5.3, 120, 0.9, 6, 0],\
        "GC": [40, 5, 180, 1.2, 1.275, 0],\
        "GG": [33.67, 2.1, 57, 0.07, 2.1, 0],\
        "GT": [34.4, 1.1, -143, 1.3, 5, 0],\
        "TA": [36, 0.9, 0, 1.1, 2, 0],\
        "TC": [36.9, 5.3, -120, 0.9, 6, 0],\
        "TG": [34.5, 3.5, 64, 0.9, 34, 0],\
        "TT": [35.62, 7.2, -154, 0.06, 0.6, 0]\
        }

    def __init__(self):
        self.Rot_Table = {}
Busson Loic's avatar
Busson Loic committed
        for dinucleotide in RotTable.__ORIGINAL_ROT_TABLE:
            self.Rot_Table[dinucleotide] = RotTable.__ORIGINAL_ROT_TABLE[dinucleotide][:3]
        self.alea()
Busson Loic's avatar
Busson Loic committed

    
    def alea(self):
        for dinucleotide in RotTable.__ORIGINAL_ROT_TABLE:
            for i in range(2):
                self.Rot_Table[dinucleotide][i] += numpy.random.uniform(low = -RotTable.__ORIGINAL_ROT_TABLE[dinucleotide][i+3], high= RotTable.__ORIGINAL_ROT_TABLE[dinucleotide][i+3]) 
Busson Loic's avatar
Busson Loic committed


    ###################
    # WRITING METHODS #
    ###################
Busson Loic's avatar
Busson Loic committed

#tableenfant = RotTable()

#tableenfant.__Rot_Table["AA"] =  tableparent1.__Rot_Table["AA"] or tableparent2.__Rot_Table["AA"]
Busson Loic's avatar
Busson Loic committed

    ###################
    # READING METHODS #
    ###################

    def getTwist(self, dinucleotide):
        return RotTable.__ORIGINAL_ROT_TABLE[dinucleotide][0]

    def getWedge(self, dinucleotide):
        return RotTable.__ORIGINAL_ROT_TABLE[dinucleotide][1]

    def getDirection(self, dinucleotide):
        return RotTable.__ORIGINAL_ROT_TABLE[dinucleotide][2]

    ###################
Busson Loic's avatar
Busson Loic committed

table1 = RotTable()
print(table1.Rot_Table["AA"])