# --- UCSF Chimera Copyright --- # Copyright (c) 2000 Regents of the University of California. # All rights reserved. This software provided pursuant to a # license agreement containing restrictions on its disclosure, # duplication and use. This notice must be embedded in or # attached to all copies, including partial copies, of the # software or any revisions or derivations thereof. # --- UCSF Chimera Copyright --- # # $Id: gor.py 26655 2009-01-07 22:02:30Z gregc $ """implementation of GOR I algorithm, using GOR II parameters""" def gorI(inseq): # remove spacers from sequence, and upcase seq = inseq.ungapped().upper() preds = [] for pos in range(len(seq)): hsum = ssum = csum = 0 for offset in range(-8, 9): try: aa = seq[pos+offset] except IndexError: continue try: hparam = hparams[aa] sparam = sparams[aa] cparam = cparams[aa] except KeyError: hparam = hparams['X'] sparam = sparams['X'] cparam = cparams['X'] index = offset + 8 hsum = hsum + hparam[index] ssum = ssum + sparam[index] csum = csum + cparam[index] if hsum > ssum: if hsum > csum: preds.append('H') else: preds.append('C') else: if ssum > csum: preds.append('S') else: preds.append('C') return preds hparams = { 'G': ( -16 , -18 , -18 , -29 , -41 , -51 , -67 , -85 , -105 , -64 , -42 , -37 , -30 , -33 , -26 , -21 , -17 , ), 'A': ( 18 , 20 , 23 , 25 , 32 , 40 , 45 , 45 , 62 , 58 , 51 , 45 , 48 , 43 , 37 , 30 , 32 , ), 'V': ( 1 , -1 , -5 , 0 , -2 , -9 , -10 , -5 , 4 , -5 , -3 , -8 , -11 , -1 , 0 , -7 , -7 , ), 'L': ( 17 , 19 , 22 , 28 , 23 , 29 , 37 , 37 , 51 , 48 , 54 , 59 , 41 , 36 , 34 , 28 , 15 , ), 'I': ( -21 , -19 , -15 , -5 , 0 , 2 , 10 , 9 , 17 , 12 , 8 , 12 , 6 , 6 , 16 , 18 , 9 , ), 'S': ( -23 , -16 , -18 , -13 , -20 , -25 , -27 , -31 , -51 , -41 , -47 , -43 , -35 , -34 , -38 , -34 , -36 , ), 'T': ( -13 , -21 , -16 , -16 , -14 , -11 , -7 , -14 , -28 , -30 , -33 , -30 , -20 , -17 , -18 , -12 , -8 , ), 'D': ( 16 , 20 , 18 , 14 , 23 , 22 , 19 , 26 , -1 , -5 , -26 , -35 , -21 , -6 , -3 , -1 , 1 , ), 'E': ( 19 , 24 , 31 , 35 , 39 , 36 , 36 , 45 , 52 , 40 , 14 , -17 , -13 , -14 , -10 , -7 , -2 , ), 'N': ( 2 , 3 , -2 , -6 , -6 , -9 , -16 , -22 , -44 , -29 , -24 , -13 , 0 , -2 , -4 , -5 , 3 , ), 'Q': ( 7 , 9 , 6 , 0 , 7 , 0 , -3 , 10 , 23 , 35 , 29 , 23 , 16 , 10 , 0 , 0 , 1 , ), 'K': ( 25 , 24 , 22 , 18 , 14 , 16 , 16 , 25 , 28 , 37 , 44 , 54 , 49 , 44 , 39 , 44 , 47 , ), 'H': ( 14 , 0 , -7 , -6 , -14 , -6 , -2 , 1 , 2 , 21 , 24 , 25 , 27 , 25 , 19 , 25 , 31 , ), 'R': ( 1 , -5 , -19 , -25 , -16 , -16 , -7 , -4 , -1 , -1 , 3 , 6 , 0 , 0 , -6 , 8 , 0 , ), 'F': ( 0 , 7 , 17 , 23 , 23 , 18 , 29 , 26 , 32 , 40 , 34 , 28 , 12 , 3 , 15 , 6 , 4 , ), 'Y': ( -8 , -9 , -10 , -18 , -13 , -13 , -31 , -26 , -15 , -24 , -18 , -23 , -28 , -19 , -16 , -18 , -23 , ), 'W': ( 8 , 18 , 11 , 9 , 2 , 26 , 37 , 29 , 30 , 17 , -1 , 12 , 13 , 11 , 31 , 13 , 2 , ), 'C': ( -77 , -71 , -74 , -74 , -67 , -60 , -71 , -61 , -47 , -46 , -56 , -58 , -67 , -70 , -71 , -80 , -81 , ), 'M': ( 2 , -12 , -9 , -1 , 0 , 21 , 33 , 25 , 34 , 41 , 39 , 44 , 29 , 15 , 4 , -2 , -11 , ), 'P': ( 0 , -6 , -7 , -6 , -15 , -22 , -35 , -47 , -68 , -179 , -95 , -72 , -53 , -37 , -28 , -22 , -11 , ), 'X': ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , ), } sparams = { 'G': ( 19 , 27 , 27 , 37 , 44 , 40 , 36 , -8 , -36 , -13 , 17 , 33 , 44 , 41 , 30 , 23 , 26 , ), 'A': ( -11 , -7 , -6 , -10 , -12 , -25 , -32 , -33 , -37 , -33 , -24 , -21 , -15 , -19 , -24 , -24 , -26 , ), 'V': ( -12 , -12 , -13 , -19 , -10 , 12 , 48 , 64 , 81 , 73 , 42 , 9 , -7 , -16 , -16 , -14 , -4 , ), 'L': ( -24 , -21 , -32 , -30 , -40 , -32 , -3 , 11 , 23 , 21 , -4 , -27 , -37 , -36 , -38 , -27 , -30 , ), 'I': ( -21 , -23 , -27 , 3 , 8 , 16 , 38 , 63 , 67 , 58 , 25 , 9 , -16 , -21 , -22 , -24 , -11 , ), 'S': ( 39 , 32 , 39 , 34 , 24 , 17 , 2 , -6 , -15 , -4 , 24 , 38 , 33 , 35 , 38 , 31 , 24 , ), 'T': ( 16 , 5 , 19 , 18 , 14 , 15 , 15 , 36 , 33 , 21 , 5 , 14 , 11 , 29 , 32 , 40 , 37 , ), 'D': ( -7 , -11 , 0 , -5 , -2 , -26 , -56 , -88 , -105 , -64 , -29 , -10 , 9 , 0 , 4 , -7 , -16 , ), 'E': ( -17 , -12 , -18 , -30 , -21 , -16 , -32 , -33 , -44 , -50 , -42 , -27 , -16 , -4 , -13 , -6 , -3 , ), 'N': ( 0 , 10 , 17 , 20 , 7 , 1 , -33 , -83 , -65 , -18 , -4 , 7 , 15 , 20 , 24 , 25 , 19 , ), 'Q': ( 12 , 11 , 9 , 5 , 0 , -3 , -5 , -4 , -8 , -45 , -37 , -27 , -16 , -5 , 0 , 14 , 19 , ), 'K': ( -20 , -19 , -8 , -9 , -17 , -12 , -41 , -33 , -32 , -46 , -48 , -36 , -37 , -51 , -43 , -44 , -43 , ), 'H': ( 9 , 4 , -8 , -2 , -8 , 0 , -16 , -19 , -16 , -5 , 5 , 9 , 8 , -4 , 0 , -12 , -26 , ), 'R': ( 4 , 12 , 11 , 1 , 15 , 11 , 11 , 24 , 10 , 6 , 25 , 5 , -7 , -9 , 0 , 4 , 1 , ), 'F': ( -30 , -31 , -39 , -38 , -34 , -28 , 10 , 32 , 39 , 32 , 13 , 0 , 2 , -12 , -18 , -41 , -13 , ), 'Y': ( 16 , 14 , 22 , 18 , 22 , 18 , 37 , 41 , 48 , 30 , 12 , 5 , 13 , 22 , 26 , 20 , 24 , ), 'W': ( -21 , -26 , -50 , -39 , -35 , 12 , 28 , 39 , 46 , 43 , 22 , 0 , 10 , 7 , 8 , 33 , 27 , ), 'C': ( 9 , 19 , -9 , -40 , -28 , -29 , -19 , 17 , 43 , 38 , 25 , 3 , -8 , -5 , 1 , 8 , -28 , ), 'M': ( -18 , -39 , -58 , -69 , -34 , 9 , 12 , 15 , 32 , -4 , -25 , -45 , -52 , -39 , -61 , -46 , -36 , ), 'P': ( 14 , 6 , 0 , 15 , 9 , -8 , -40 , -72 , -100 , -78 , -34 , -6 , -6 , 2 , 5 , 7 , 14 , ), 'X': ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , ), } cparams = { 'G': ( 0 , -3 , -3 , -3 , -1 , 8 , 21 , 65 , 95 , 56 , 20 , 4 , -9 , -4 , 0 , 1 , -4 , ), 'A': ( -7 , -11 , -15 , -14 , -19 , -19 , -19 , -19 , -33 , -31 , -30 , -26 , -33 , -25 , -16 , -9 , -11 , ), 'V': ( 7 , 10 , 13 , 13 , 9 , 0 , -27 , -45 , -70 , -53 , -28 , 1 , 15 , 13 , 11 , 16 , 10 , ), 'L': ( 0 , -1 , 0 , -4 , 4 , -4 , -29 , -40 , -62 , -58 , -45 , -36 , -13 , -9 , -5 , -6 , 6 , ), 'I': ( 31 , 31 , 30 , 3 , -4 , -11 , -37 , -58 , -68 , -55 , -24 , -15 , 6 , 9 , 1 , 0 , 0 , ), 'S': ( -9 , -9 , -13 , -12 , 0 , 9 , 20 , 30 , 49 , 35 , 18 , 4 , 3 , 0 , 1 , 4 , 10 , ), 'T': ( 0 , 14 , 0 , 1 , 2 , 0 , -3 , -13 , -1 , 9 , 22 , 14 , 8 , -6 , -7 , -19 , -19 , ), 'D': ( -7 , -8 , -14 , -7 , -17 , -2 , 16 , 23 , 53 , 41 , 40 , 34 , 11 , 6 , 1 , 6 , 9 , ), 'E': ( -4 , -12 , -14 , -11 , -20 , -19 , -11 , -19 , -20 , -5 , 13 , 31 , 22 , 15 , 17 , 11 , 5 , ), 'N': ( 0 , -8 , -8 , -7 , 1 , 7 , 34 , 63 , 72 , 35 , 23 , 6 , -9 , -10 , -12 , -12 , -15 , ), 'Q': ( -13 , -14 , -10 , -2 , -5 , 3 , 7 , -3 , -14 , -3 , -1 , -1 , -1 , -3 , 0 , -9 , -13 , ), 'K': ( -7 , -8 , -12 , -8 , 0 , -4 , 11 , 0 , -3 , -5 , -10 , -26 , -20 , -9 , -7 , -12 , -15 , ), 'H': ( -17 , -1 , 12 , 7 , 18 , 6 , 13 , 11 , 9 , -13 , -23 , -27 , -28 , -17 , -16 , -12 , -9 , ), 'R': ( -2 , -2 , 8 , 20 , 3 , 6 , 0 , -12 , -4 , -1 , -20 , -7 , 5 , 7 , 6 , -8 , 0 , ), 'F': ( 20 , 13 , 8 , 3 , 1 , 3 , -32 , -46 , -57 , -60 , -38 , -23 , -11 , 6 , 0 , 20 , 5 , ), 'Y': ( -3 , -1 , -6 , 2 , -4 , -1 , -1 , -8 , -22 , -1 , 7 , 15 , 14 , 0 , -4 , 1 , 1 , ), 'W': ( 7 , 1 , 20 , 16 , 20 , -31 , -53 , -55 , -61 , -47 , -12 , -9 , -16 , -13 , -32 , -34 , -20 , ), 'C': ( 48 , 37 , 60 , 79 , 68 , 64 , 64 , 32 , 3 , 6 , 23 , 41 , 54 , 54 , 50 , 50 , 76 , ), 'M': ( 10 , 34 , 41 , 40 , 21 , -23 , -37 , -31 , -53 , -33 , -18 , -11 , 5 , 11 , 30 , 30 , 32 , ), 'P': ( -8 , 1 , 6 , -4 , 7 , 23 , 52 , 78 , 105 , 158 , 88 , 56 , 44 , 27 , 20 , 13 , 0 , ), 'X': ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , ), }