seekia/resources/geneticReferences/traits/eyeColor.go

173 lines
3.5 KiB
Go
Raw Normal View History

package traits
import "seekia/internal/helpers"
import "maps"
func getEyeColorTraitObject()Trait{
// Map Structure: rsID -> References Map
locusReferencesMap := make(map[int64]map[string]string)
referencesMap_List1 := make(map[string]string)
referencesMap_List1["SNPedia.com - Eye Color"] = "https://www.snpedia.com/index.php/Eye_color"
// These SNPs are taken from https://www.snpedia.com/index.php/Eye_color
lociList_1 := []int64{
2733832,
1800401,
1800407,
1800414,
12913823,
4911442,
6058017,
4911414,
4778241,
12593929,
7183877,
3935591,
7170852,
2238289,
3940272,
8028689,
2240203,
11631797,
916977,
3768056,
728405,
2835621,
892839,
9782955,
12452184,
10209564,
1325127,
7277820,
1105879,
7219915,
12913832,
2070959,
2835630,
9894429,
1393350,
2252893,
1003719,
3794604,
7174027,
989869,
4778138,
12906280,
}
for _, rsID := range lociList_1{
locusReferencesMap[rsID] = maps.Clone(referencesMap_List1)
}
referencesMap_List2 := make(map[string]string)
referencesMap_List2["Genome-wide association studies of pigmentation and skin cancer: a review and meta-analysis"] = "https://pubmed.ncbi.nlm.nih.gov/20546537/"
// These SNPs are taken from https://pubmed.ncbi.nlm.nih.gov/20546537/
lociList_2 := []int64{
12203592,
1408799,
1126809,
12896399,
7495174,
1667394,
}
for _, rsID := range lociList_2{
locusReferencesMap[rsID] = maps.Clone(referencesMap_List2)
}
referencesMap_List3 := make(map[string]string)
referencesMap_List3["Genome-wide association study in almost 195,000 individuals identifies 50 previously unidentified genetic loci for eye color."] = "https://pubmed.ncbi.nlm.nih.gov/33692100/"
// These SNPs are taken from https://pubmed.ncbi.nlm.nih.gov/33692100/
lociList_3 := []int64{
6693258,
351385,
2385028,
13016869,
112747614,
121908120,
12614022,
74409360,
3912104,
116359091,
4521336,
141318671,
6828137,
62330021,
16891982,
348613,
72777200,
11957757,
//12203592, (is a duplicate, was also found in the other study)
6910861,
341147,
2854746,
6944702,
6997494,
12543326,
147068120,
13297008,
12552712,
12335410,
72928978,
//1126809, (is a duplicate, was also found in the other study)
9971729,
790464,
2095645,
9301973,
138777265,
17184180,
4778218,
1129038,
1426654,
4790309,
3809761,
6420484,
73488486,
2748901,
2835660,
622330,
35051352,
// TODO: Add these loci once we can handle X Chromosome loci.
// 78542430,
// 5957354,
}
for _, rsID := range lociList_3{
locusReferencesMap[rsID] = maps.Clone(referencesMap_List3)
}
eyeColorLociList := helpers.GetListOfMapKeys(locusReferencesMap)
referencesMap := make(map[string]string)
referencesMap["SNPedia.com - Eye Color"] = "https://www.snpedia.com/index.php/Eye_color"
referencesMap["Genome-wide association studies of pigmentation and skin cancer: a review and meta-analysis"] = "https://pubmed.ncbi.nlm.nih.gov/20546537/"
referencesMap["Genome-wide association study in almost 195,000 individuals identifies 50 previously unidentified genetic loci for eye color."] = "https://pubmed.ncbi.nlm.nih.gov/33692100/"
eyeColorObject := Trait{
TraitName: "Eye Color",
TraitDescription: "The color of a person's eyes.",
DiscreteOrNumeric: "Discrete",
LocusReferencesMap: locusReferencesMap,
LociList: eyeColorLociList,
LociList_Rules: []int64{},
RulesList: []TraitRule{},
OutcomesList: []string{"Blue", "Green", "Hazel", "Brown"},
ReferencesMap: referencesMap,
}
return eyeColorObject
}