File size: 1,873 Bytes
ad9fbbf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# -*- coding: utf-8 -*-
import pickle
import numpy as np
import torch
from tqdm import tqdm
from pad_feature import parse_fasta_file
from get_dssp import get_dssp
from get_SC_position import PDBFeature
from get_SC_adj import prepare_adj
from get_T5embedding import getT5
from pad_feature import prepare_features



def process(dataset):
    #处理T5序列信息
    getT5(dataset,'./T5raw/','0')

    data = parse_fasta_file(dataset)
    Max_protrans = []
    Min_protrans = []
    for i, ID in tqdm(enumerate(data.keys())):
        raw_protrans = np.load('./T5raw/' + ID + ".npy")
        Max_protrans.append(np.max(raw_protrans, axis = 0))
        Min_protrans.append(np.min(raw_protrans, axis = 0))
        if i == len(data) - 1:
            Max_protrans = np.max(np.array(Max_protrans), axis = 0)
            Min_protrans = np.min(np.array(Min_protrans), axis = 0)
        elif i % 5000 == 0:
            Max_protrans = [np.max(np.array(Max_protrans), axis = 0)]
            Min_protrans = [np.min(np.array(Min_protrans), axis = 0)]


    for ID in tqdm(data.keys()):
        # T5
        raw_protrans = np.load('./T5raw/' + ID + ".npy")
        # print(f"Max_protrans: {Max_protrans}, Min_protrans: {Min_protrans}")
        protrans = (raw_protrans - Min_protrans) / (Max_protrans - Min_protrans)
        # torch.save(torch.tensor(protrans, dtype = torch.float), './T5norm/' + ID + '.tensor')
        np.save('./T5norm/' + ID + '.npy', protrans)

        #dssp
        get_dssp(ID, data[ID][0])

        # SC prosition
        PDBFeature(ID, '../datasets/alphafold3pdb', './SC_position')

        # SC_adj
        prepare_adj(ID,869)

        # last
        prepare_features(ID, data[ID][1], 869)

if __name__ == '__main__':
    fasta_file = '../datasets/PRO_Train_335.fa'
    process(fasta_file)
    fasta_file = '../datasets/PRO_Test_60.fa'
    process(fasta_file)