-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathglobal.go
158 lines (128 loc) · 3.07 KB
/
global.go
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
package main
import (
"os"
"path/filepath"
"regexp"
"time"
"github.com/go-redis/redis"
"github.com/pelletier/go-toml"
"github.com/tealeg/xlsx/v3"
"github.com/xuri/excelize/v2"
"github.com/liserjrqlxue/anno2xlsx/v2/anno"
)
// os
var (
ex, _ = os.Executable()
exPath = filepath.Dir(ex)
dbPath = filepath.Join(exPath, "db")
etcPath = filepath.Join(exPath, "etc")
templatePath = filepath.Join(exPath, "template")
)
// family list
var sampleList []string
// to-do add exon count info of transcript
var exonCount = make(map[string]string)
// 特殊位点库
var specVarDb = make(map[string]bool)
// 遗传相符
var inheritDb = make(map[string]map[string]int)
var qualityColumn []string
// WESIM
var (
resultColumn, qcColumn, cnvColumn []string
resultFile, qcFile, exonFile, largeFile *os.File
)
var qualitys []map[string]string
var qualityKeyMap = make(map[string]string)
// tier2
var isEnProduct = make(map[string]bool)
var isEN bool
var transEN = map[string]string{
"是": "Yes",
"否": "No",
"备注说明": "Note",
}
// regexp
var (
isGz = regexp.MustCompile(`\.gz$`)
isComment = regexp.MustCompile(`^##`)
isMT = regexp.MustCompile(`MT|chrM`)
isHom = regexp.MustCompile(`^Hom`)
)
var redisDb *redis.Client
var snvs []string
var acmgSFGene = make(map[string]bool)
// WGS
var (
wgsXlsx *xlsx.File
MTTitle []string
tier1Db = make(map[string]bool)
)
var (
logFile *os.File
tier2 *xlsxTemplate
err error
ts = []time.Time{time.Now()}
step = 0
sampleMap = make(map[string]bool)
stats = make(map[string]int)
tier1Xlsx *xlsx.File
filterVariantsTitle []string
exonCnvTitle []string
largeCnvTitle []string
tier3Titles []string
tier3Xlsx *excelize.File
tier3SW *excelize.StreamWriter
tier3RowID = 1
)
// TomlTree Global toml config
var TomlTree *toml.Tree
// database
var (
aesCode = "c3d112d6a47a0a04aad2b9d2d2cad266"
gene2id map[string]string
chpo anno.AnnoDb
revel revelDb
// 突变频谱
spectrumDb anno.EncodeDb
// 基因-疾病
diseaseDb anno.EncodeDb
geneList = make(map[string]bool)
// ACMG SF
acmgSecondaryFindingDb anno.EncodeDb
sfCode = "b7ea138a9842cbb832271bdcf4478310"
// 耳聋数据库
hearingLossDb anno.EncodeDb
hlCode = "6d276bc509883dbafe05be835ad243d7"
// 新生儿数据库
newBornDb anno.EncodeDb
nbCode = "afe0ba6b37644a81cedc2364ee414c7f"
// 孕前数据库
prePregnancyDb anno.EncodeDb
ppCode = "118b09d39a5d3ecd56f9bd4f351dd6d6"
// PHGDTag
phgdTagKey string
phgdTagSep string
phgdTagDb [][]string
)
// ACMG
var (
acmgDb string
)
// find duplicate
var countVar = make(map[string]int)
var duplicateVar = make(map[string][]map[string]string)
var deleteVar = make(map[string]bool)
var transcriptLevel = make(map[string]int)
var tier1Count int
// log
var cycle1Count int
var cycle2Count int
// flag to var
var outputTier3 = false
var homFixRatioThreshold = 0.85
// json
//var tier1Json *os.File
var tier1Data []map[string]string
// 假阳性
var fpDb = make(map[string]map[string]string)