-
Notifications
You must be signed in to change notification settings - Fork 0
/
process_mts_database.py
46 lines (36 loc) · 1.27 KB
/
process_mts_database.py
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
import os
import _pickle as cPickle
try:
from pyspi.calculator import CalculatorFrame, CorrelationFrame
except ModuleNotFoundError:
print("Note: Using legacy code.")
from pynats.calculator import CalculatorFrame, CorrelationFrame
dbfile = "data/database.pkl"
if not os.path.exists(dbfile):
import urllib.request
question = f"File \"{dbfile}\" does not exist. Shall I download it now? [Y/n] "
reply = str(input(question)).lower().strip()
if reply == 'y':
print("Downloading now. This may take some time...")
URL = "https://zenodo.org/record/7113213/files/database.pkl?download=1"
urllib.request.urlretrieve(URL, dbfile)
print("Done.")
else:
print("OK, Exiting.")
exit(0)
with open(dbfile, "rb") as f:
database = cPickle.load(f)
names = list(database.keys())
# To test
names = names[:3]
datasets = [database[n]['data'].T for n in names]
labels = [database[n]['labels'] for n in names]
# Set fast=True to speed things up
try:
calcf = CalculatorFrame(datasets=datasets, labels=labels, names=names, fast=True)
except TypeError:
calcf = CalculatorFrame(datasets=datasets, labels=labels, names=names)
calcf.compute()
corrf = CorrelationFrame(calcf)
mm_adj = corrf.get_average_correlation()
print(mm_adj)