github.com/vertgenlab/gonomics@v1.0.0/cmd/gsw/vcfHelper.go (about)

     1  package main
     2  
     3  import (
     4  	"github.com/vertgenlab/gonomics/fasta"
     5  	"github.com/vertgenlab/gonomics/fileio"
     6  	"github.com/vertgenlab/gonomics/genomeGraph"
     7  	"github.com/vertgenlab/gonomics/vcf"
     8  )
     9  
    10  func vcfToGenomeGraph(vcfFile, faFile string) *genomeGraph.GenomeGraph {
    11  	ref := fasta.GoReadToChan(faFile)
    12  
    13  	hashByChrom := make(map[string][]vcf.Vcf)
    14  	file := fileio.EasyOpen(vcfFile)
    15  	defer file.Close()
    16  	vcf.ReadHeader(file)
    17  
    18  	for curr, done := vcf.NextVcf(file); !done; curr, done = vcf.NextVcf(file) {
    19  		hashByChrom[curr.Chr] = append(hashByChrom[curr.Chr], curr)
    20  	}
    21  
    22  	return genomeGraph.VariantGraph(ref, hashByChrom)
    23  }