package traits

// Hair color is influenced by thousands of genes
// We only have a few listed here

import "seekia/internal/helpers"

import "maps"

func getHairColorTraitObject()Trait{

	// Map Structure: rsID -> References Map
	locusReferencesMap := make(map[int64]map[string]string)

	referencesMap_List1 := make(map[string]string)
	referencesMap_List1["SNPedia.com - Appearance"] = "https://www.snpedia.com/index.php/Appearance"
	referencesMap_List1["Genome-wide association studies of pigmentation and skin cancer: a review and meta-analysis"] = "https://pubmed.ncbi.nlm.nih.gov/20546537/"

	lociList_1 := []int64{

		//These loci were taken from https://pubmed.ncbi.nlm.nih.gov/20546537/

		28777,
		12203592,
		1540771,
		6918152,
		35264875,
		3829241,
		12821256,
		12896399,
		7495174,
		4778211,
		7174027,
		11855019,
		1667394,
		12913832,
		7183877,
		11636232,
		8028689,
		8039195,
		1805007,
		1805008,
	}

	for _, rsID := range lociList_1{

		locusReferencesMap[rsID] = maps.Clone(referencesMap_List1)
	}

	hairColorLociList := helpers.GetListOfMapKeys(locusReferencesMap)

	referencesMap := make(map[string]string)
	referencesMap["SNPedia.com - Appearance"] = "https://www.snpedia.com/index.php/Appearance"
	referencesMap["Genome-wide association studies of pigmentation and skin cancer: a review and meta-analysis"] = "https://pubmed.ncbi.nlm.nih.gov/20546537/"

	hairColorObject := Trait{
		TraitName: "Hair Color",
		TraitDescription: "The color of a person's hair.",
		DiscreteOrNumeric: "Discrete",
		LocusReferencesMap: locusReferencesMap,
		LociList: hairColorLociList,
		LociList_Rules: []int64{},
		RulesList: []TraitRule{},
		OutcomesList: []string{},
		NumericValueFormatter: nil,
		ReferencesMap: referencesMap,
	}

	return hairColorObject
}


