File size: 1,262 Bytes
093748c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
import pickle
from pathlib import Path

from setup.configProcessor import get_cache_dir, do_logging


def setup_chache():
    cache_directory = get_cache_dir()
    if not Path(cache_directory).exists():
        Path(cache_directory).mkdir(parents=True, exist_ok=True)

    distance_matrix_directory_path = os.path.join(cache_directory, "distance_matrices")
    Path(distance_matrix_directory_path).mkdir(parents=True, exist_ok=True)


def cache_distance_matrix(protein_id, distance_matrix):
    distance_matrix_directory_path = os.path.join(get_cache_dir(), "distance_matrices")
    distance_matrix_file_path = os.path.join(distance_matrix_directory_path, f"{protein_id}.p")
    pickle.dump(distance_matrix, open(distance_matrix_file_path, "wb"))


def load_distance_matrix(protein_id):
    distance_matrix_directory_path = os.path.join(get_cache_dir(), "distance_matrices")
    distance_matrix_file_path = os.path.join(distance_matrix_directory_path, f"{protein_id}.p")
    if Path(distance_matrix_file_path).exists():
        return pickle.load(open( distance_matrix_file_path, "rb"))
    else:
        if do_logging():
            print(f"No cached distance matrix available for {protein_id}. Distance matrix will be computed.")
        return None