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 }