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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
"""
Default configuration settings for this project.
DO NOT import from this file, use `flask.current_app.config` instead to get the
application settings.
"""
import os
import uuid
import tempfile
BCRYPT_SALT = "$2b$12$mxLvu9XRLlIaaSeDxt8Sle" # Change this!
DATA_DIR = ""
GEMMA_WRAPPER_CMD = os.environ.get("GEMMA_WRAPPER", "gemma-wrapper")
RQTL_WRAPPER_CMD = os.environ.get("RQTL_WRAPPER")
CACHEDIR = ""
REDIS_URI = "redis://localhost:6379/0"
REDIS_JOB_QUEUE = "GN3::job-queue"
TMPDIR = os.environ.get("TMPDIR", tempfile.gettempdir())
RQTL_WRAPPER = "rqtl_wrapper.R"
# SPARQL endpoint
SPARQL_ENDPOINT = os.environ.get(
"SPARQL_ENDPOINT",
"http://localhost:9082/sparql")
# LMDB path
LMDB_PATH = os.environ.get(
"LMDB_PATH", f"{os.environ.get('HOME')}/tmp/dataset")
# SQL confs
SQL_URI = os.environ.get(
"SQL_URI", "mysql://webqtlout:webqtlout@localhost/db_webqtl")
SECRET_KEY = "password"
# gn2 results only used in fetching dataset info
# FAHAMU API TOKEN
FAHAMU_AUTH_TOKEN = ""
GN2_BASE_URL = "http://www.genenetwork.org/"
# wgcna script
WGCNA_RSCRIPT = "wgcna_analysis.R"
# qtlreaper command
REAPER_COMMAND = f"{os.environ.get('GUIX_ENVIRONMENT')}/bin/qtlreaper"
# correlation command
CORRELATION_COMMAND = f"{os.environ.get('GN2_PROFILE')}/bin/correlation_rust"
# genotype files
GENOTYPE_FILES = os.environ.get(
"GENOTYPE_FILES", f"{os.environ.get('HOME')}/genotype_files/genotype")
# Xapian index
XAPIAN_DB_PATH = "xapian"
# sqlite path
LLM_DB_PATH = os.environ.get(
"LLM_DB_PATH", f"{os.environ.get('HOME')}/sqlite_test/llm.db")
# CROSS-ORIGIN SETUP
def parse_env_cors(default):
"""Parse comma-separated configuration into list of strings."""
origins_str = os.environ.get("CORS_ORIGINS", None)
if origins_str:
return [
origin.strip() for origin in origins_str.split(",") if origin != ""]
return default
CORS_ORIGINS = parse_env_cors("*")
CORS_HEADERS = [
"Content-Type",
"Authorization",
"Access-Control-Allow-Credentials"
]
GNSHARE = os.environ.get("GNSHARE", "/gnshare/gn/")
TEXTDIR = f"{GNSHARE}/web/ProbeSetFreeze_DataMatrix"
ROUND_TO = 10
MULTIPROCESSOR_PROCS = 6 # Number of processes to spawn
AUTH_SERVER_URL = ""
AUTH_MIGRATIONS = "migrations/auth"
AUTH_DB = os.environ.get(
"AUTH_DB", f"{os.environ.get('HOME')}/genenetwork/gn3_files/db/auth.db")
OAUTH2_SCOPE = (
"profile", "group", "role", "resource", "user", "masquerade",
"introspect")
GNQA_DB = os.environ.get(
"GNQA_DB", f"{os.environ.get('HOME')}/tmp/gnqa.db")
try:
# *** SECURITY CONCERN ***
# Clients with access to this privileges create a security concern.
# Be careful when adding to this configuration
OAUTH2_CLIENTS_WITH_INTROSPECTION_PRIVILEGE = tuple(
uuid.UUID(client_id) for client_id in
os.environ.get(
"OAUTH2_CLIENTS_WITH_INTROSPECTION_PRIVILEGE", "").split(","))
except ValueError as _valerr:
OAUTH2_CLIENTS_WITH_INTROSPECTION_PRIVILEGE = tuple()
try:
# *** SECURITY CONCERN ***
# Clients with access to this privileges create a security concern.
# Be careful when adding to this configuration
OAUTH2_CLIENTS_WITH_DATA_MIGRATION_PRIVILEGE = tuple(
uuid.UUID(client_id) for client_id in
os.environ.get(
"OAUTH2_CLIENTS_WITH_DATA_MIGRATION_PRIVILEGE", "").split(","))
except ValueError as _valerr:
OAUTH2_CLIENTS_WITH_DATA_MIGRATION_PRIVILEGE = tuple()
|