2024-04-11 15:51:56 +02:00
2024-08-05 09:11:10 +02:00
// 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
2024-04-11 15:51:56 +02:00
package main
import "seekia/resources/geneticReferences/locusMetadata"
2024-08-05 09:11:10 +02:00
import "seekia/resources/geneticReferences/modifyLocusMetadata"
2024-04-11 15:51:56 +02:00
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 ,
2024-08-05 09:11:10 +02:00
GeneInfoIsKnown : true ,
GeneExists : true ,
2024-04-11 15:51:56 +02:00
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 ,
2024-08-05 09:11:10 +02:00
GeneInfoIsKnown : true ,
GeneExists : true ,
2024-04-11 15:51:56 +02:00
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,
}
2024-08-05 09:11:10 +02:00
quantityOfLociToAdd := len ( lociToAddList )
2024-04-11 15:51:56 +02:00
2024-08-05 09:11:10 +02:00
quantityOfAddedLoci , newLocusMetadataFileBytes , err := modifyLocusMetadata . AddLocusMetadata ( lociToAddList )
2024-04-11 15:51:56 +02:00
if ( err != nil ) {
2024-08-05 09:11:10 +02:00
log . Println ( "Error: " + err . Error ( ) )
2024-04-11 15:51:56 +02:00
return
}
2024-08-05 09:11:10 +02:00
err = localFilesystem . CreateOrOverwriteFile ( newLocusMetadataFileBytes , "./" , "NewLocusMetadata.gob" )
if ( err != nil ) {
log . Println ( "Error: " + err . Error ( ) )
return
2024-04-11 15:51:56 +02:00
}
2024-08-05 09:11:10 +02:00
quantityOfAddedLociString := helpers . ConvertIntToString ( quantityOfAddedLoci )
2024-04-11 15:51:56 +02:00
2024-08-05 09:11:10 +02:00
log . Println ( "Successfully added " + quantityOfAddedLociString + " locus metadatas!" )
log . Println ( "The new locus metadatas have been saved to the NewLocusMetadata.gob file." )
2024-04-11 15:51:56 +02:00
2024-08-05 09:11:10 +02:00
quantityOfSkippedLoci := quantityOfLociToAdd - quantityOfAddedLoci
2024-04-11 15:51:56 +02:00
2024-08-05 09:11:10 +02:00
if ( quantityOfSkippedLoci != 0 ) {
2024-04-11 15:51:56 +02:00
2024-08-05 09:11:10 +02:00
quantityOfSkippedLociString := helpers . ConvertIntToString ( quantityOfSkippedLoci )
2024-04-11 15:51:56 +02:00
2024-08-05 09:11:10 +02:00
log . Println ( "Skipped " + quantityOfSkippedLociString + " locus metadatas because they already existed." )
2024-04-11 15:51:56 +02:00
}
}