seekia/utilities/addLocusMetadata/addLocusMetadata.go

81 lines
2.4 KiB
Go

// addLocusMetadata.go provides a function to add locus metadata to the .gob locus metadata file.
// This utility creates a NewLocusMetadata.gob file, which must be renamed to LocusMetadata.gob and placed in the /resources/geneticReferences/locusMetadata folder
package main
import "seekia/resources/geneticReferences/locusMetadata"
import "seekia/resources/geneticReferences/modifyLocusMetadata"
import "seekia/internal/helpers"
import "seekia/internal/localFilesystem"
import "log"
func main(){
/*
//TODO: Add these loci
// They are on the X chromosome, and we haven't defined the syntax to deal with X chromosome loci yet.
newLocusMetadataObject_1 := locusMetadata.LocusMetadata{
RSIDsList: []int64{5957354},
Chromosome: X,
Position: 120305480,
GeneInfoIsKnown: true,
GeneExists: true,
GeneNamesList: []string{"TMEM255A"},
CompanyAliases: make(map[locusMetadata.GeneticsCompany][]string),
References: make(map[string]string),
}
newLocusMetadataObject_2 := locusMetadata.LocusMetadata{
RSIDsList: []int64{78542430},
Chromosome: X,
Position: 48259397,
GeneInfoIsKnown: true,
GeneExists: true,
GeneNamesList: []string{"SSX1"},
CompanyAliases: make(map[locusMetadata.GeneticsCompany][]string),
References: make(map[string]string),
}
*/
// This is a list of metadata objects to add to the locus metadata
lociToAddList := []locusMetadata.LocusMetadata{
//newLocusMetadataObject_1,
//newLocusMetadataObject_2,
}
quantityOfLociToAdd := len(lociToAddList)
quantityOfAddedLoci, newLocusMetadataFileBytes, err := modifyLocusMetadata.AddLocusMetadata(lociToAddList)
if (err != nil){
log.Println("Error: " + err.Error())
return
}
err = localFilesystem.CreateOrOverwriteFile(newLocusMetadataFileBytes, "./", "NewLocusMetadata.gob")
if (err != nil){
log.Println("Error: " + err.Error())
return
}
quantityOfAddedLociString := helpers.ConvertIntToString(quantityOfAddedLoci)
log.Println("Successfully added " + quantityOfAddedLociString + " locus metadatas!")
log.Println("The new locus metadatas have been saved to the NewLocusMetadata.gob file.")
quantityOfSkippedLoci := quantityOfLociToAdd - quantityOfAddedLoci
if (quantityOfSkippedLoci != 0){
quantityOfSkippedLociString := helpers.ConvertIntToString(quantityOfSkippedLoci)
log.Println("Skipped " + quantityOfSkippedLociString + " locus metadatas because they already existed.")
}
}