package traits

import "seekia/internal/helpers"

import "maps"

func getFacialStructureTraitObject()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["A Genome-Wide Association Study Identifies Five Loci Influencing Facial Morphology in Europeans"] = "https://journals.plos.org/plosgenetics/article?id=10.1371/journal.pgen.1002932"

	lociList_1 := []int64{

		//TODO: Add more SNPs.

		// These SNPs are from https://www.snpedia.com/index.php/Appearance
		4648477,
		4648478,
		7516150,
		7552331,
		1572037,
		1999527,
		4648379,
		1005999,
		2422239,
		2422241,
		6749293,
		16863422,
		12694574,
		2894450,
		974448,
		1978859,
		2034127,
		2034128,
		2034129,
		7628370,
		7617069,
		717463,
		894883,
		7640340,
		875143,
		6795519,
		2168809,
		9858909,
		4552364,
		4353811,
		13098099,
		13097965,
		17447439,
		6555969,
		2342494,
		10237319,
		10265937,
		10266101,
		10237838,
		10237488,
		10278187,
		10234405,
		6950754,
		6462544,
		7803030,
		12155314,
		9692219,
		1562006,
		1562005,
		7779616,
		7799331,
		7781059,
		7807181,
		6462562,
		10485860,
		2108166,
		1158810,
		6478394,
		805722,
		11191909,
		1747677,
		805693,
		805694,
		9971100,
		2274107,
		12358982,
		11604811,
		11237982,
		1939697,
		1939707,
		10843104,
		17252053,
		4433629,
		7966317,
		1887276,
		7965082,
		12437560,
		16977002,
		16977008,
		16977009,
		4793389,
		8079498,
		7214306,
		1019212,
		1008591,
		2327101,
		6056066,
		1015092,
		975633,
		6039266,
		2327089,
		4633993,
		4053148,
		6039272,
		6056119,
		6056126,
		911020,
		6020940,
		6020957,
		911015,
		2832438,
		397723,
	}

	for _, rsID := range lociList_1{

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

	facialStructureLociList := helpers.GetListOfMapKeys(locusReferencesMap)

	referencesMap := make(map[string]string)
	referencesMap["SNPedia.com - Appearance"] = "https://www.snpedia.com/index.php/Appearance"
	referencesMap["A Genome-Wide Association Study Identifies Five Loci Influencing Facial Morphology in Europeans"] = "https://journals.plos.org/plosgenetics/article?id=10.1371/journal.pgen.1002932"

	facialStructureObject := Trait{
		TraitName: "Facial Structure",
		TraitDescription: "The structure of a person's face.",
		DiscreteOrNumeric: "Discrete",
		LocusReferencesMap: locusReferencesMap,
		LociList: facialStructureLociList,
		LociList_Rules: []int64{},
		RulesList: []TraitRule{},
		OutcomesList: []string{},
		NumericValueFormatter: nil,
		ReferencesMap: referencesMap,
	}

	return facialStructureObject
}


