Пример #1
0
def process():
    """
    process는 아래와 같이 3개의 tuple를 반환한다
    (pro, d_list, dnum_list)
    이들은 각각 아래와 같은 의미를 가진다

    pro : 순서별로 몇개의 아미노산 종류가 있는지, 그것이 어느 것에는 어떤 것이 있는지 확인 ([[["M", "K"], {각각에 대한 딕셔너리}].. ]) + 또한 대상은 중복되지 않는다 (set과
    같은 list라 생각하자) d_list : 하나의 위치에 2개 이상의 아미노산을 가지는 대상들의 번호 dnum_list : d_list에서 가장 적은 개수를 가지는 아미노산의 개수 (몇개의 대상에서
    mutaion이 일어났는지 확인)
    """
    from datas import data_list
    data = data_list()
    data = list(map(lambda t: t[0], data))  # 단순 단백질 서열 list로 변경
    len_data = len(data[0])  # data의 모든 길이는 같다
    pro = list()
    for q in range(len_data):
        data_set = list()
        data_dict = dict()
        for ind, val in enumerate(data):
            tar = str(val[q])
            if tar not in data_set:
                data_dict[tar] = []
                data_set.append(tar)
            data_dict[tar].append(ind)
        pro.append([data_set, data_dict])
    dt_list = list()
    dtnum_list = list()

    for ind, val in enumerate(pro):
        if len(val[0]) != 1:
            dt_list.append(ind)
            dtnum_list.append(
                len(data) -
                max(map(lambda t: len(t),
                        val[1].values())))  # 5/12 수정 (최소가 아닌 최대의 나머지 개수)
    return pro, dt_list, dtnum_list
import pickle
from datas import data_list
from compro import process

with open("data/saved/data_list.pickle", "wb") as f:
    pickle.dump(data_list(), f)
with open("data/saved/process.pickle", "wb") as f:
    pickle.dump(process(), f)
Пример #3
0
from tensorflow.keras import models
from tensorflow.keras import layers
from compro import process
from datas import blosum62 as blo62
from datas import data_list
from datas import nums
import matplotlib.pyplot as plt
import numpy as np
from random import shuffle

pros = process()
data = data_list()
pro = pros[0]

# pros 구조
# (pro, d_list, dnum_list)
# pro : 순서별로 몇개의 아미노산 종류가 있는지, 그것이 어느 것에는 어떤 것이 있는지 확인 ([[["M", "K"], {각각에 대한 딕셔너리}].. ])
# d_list : 하나의 위치에 2개 이상의 아미노산을 가지는 대상들의 번호
# dnum_list : d_list에서 가장 적은 개수를 가지는 아미노산의 개수 (몇개의 대상에서 mutaion이 일어났는지 확인)

# data_list는 아래와 같이 반환한다.
# [[Seq 단백질 서열, [종 이름, kcat, Kc, Sc/o, Eff., type (A or B), EMBL code], index].. ]
# 원하는 값에 대해서 최대 최소 찾기
tar = 4  # 1 : kcat, 2 : Kc, 3 : Sc/o, 4 : Eff.

data.sort(key=lambda t: -t[1][tar])
# data = data[1:]
shuffle(data)
loc_list = [
    9, 14, 31, 86, 95, 97, 99, 142, 145, 149, 183, 189, 251, 255, 256, 262,
    281, 328, 439, 449