2024-04-11 15:51:56 +02:00
package traits
2024-07-19 19:16:28 +02:00
import "seekia/internal/helpers"
import "maps"
2024-04-11 15:51:56 +02:00
func getEyeColorTraitObject ( ) Trait {
2024-07-19 19:16:28 +02:00
// Map Structure: rsID -> References Map
locusReferencesMap := make ( map [ int64 ] map [ string ] string )
2024-04-11 15:51:56 +02:00
2024-07-19 19:16:28 +02:00
referencesMap_List1 := make ( map [ string ] string )
referencesMap_List1 [ "SNPedia.com - Eye Color" ] = "https://www.snpedia.com/index.php/Eye_color"
2024-04-11 15:51:56 +02:00
2024-07-19 19:16:28 +02:00
// These SNPs are taken from https://www.snpedia.com/index.php/Eye_color
2024-04-11 15:51:56 +02:00
2024-07-19 19:16:28 +02:00
lociList_1 := [ ] int64 {
2024-04-11 15:51:56 +02:00
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 ,
2024-07-19 19:16:28 +02:00
}
for _ , rsID := range lociList_1 {
locusReferencesMap [ rsID ] = maps . Clone ( referencesMap_List1 )
}
2024-04-11 15:51:56 +02:00
2024-07-19 19:16:28 +02:00
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 {
2024-04-11 15:51:56 +02:00
12203592 ,
1408799 ,
1126809 ,
12896399 ,
7495174 ,
1667394 ,
2024-07-19 19:16:28 +02:00
}
for _ , rsID := range lociList_2 {
2024-04-11 15:51:56 +02:00
2024-07-19 19:16:28 +02:00
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 {
2024-04-11 15:51:56 +02:00
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,
}
2024-07-19 19:16:28 +02:00
for _ , rsID := range lociList_3 {
locusReferencesMap [ rsID ] = maps . Clone ( referencesMap_List3 )
}
eyeColorLociList := helpers . GetListOfMapKeys ( locusReferencesMap )
2024-04-11 15:51:56 +02:00
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." ,
2024-07-19 19:16:28 +02:00
DiscreteOrNumeric : "Discrete" ,
LocusReferencesMap : locusReferencesMap ,
2024-04-11 15:51:56 +02:00
LociList : eyeColorLociList ,
2024-07-19 19:16:28 +02:00
LociList_Rules : [ ] int64 { } ,
2024-04-11 15:51:56 +02:00
RulesList : [ ] TraitRule { } ,
2024-07-05 23:01:43 +02:00
OutcomesList : [ ] string { "Blue" , "Green" , "Hazel" , "Brown" } ,
2024-07-19 19:16:28 +02:00
ReferencesMap : referencesMap ,
2024-04-11 15:51:56 +02:00
}
return eyeColorObject
}