func readMatcher(file string, fq1 map[string]fqData, l string, sample string) {
reader, err := fastx.NewDefaultReader(file)
if err != nil {
panic(err)
}
// create readgroup for header.
rg, err := sam.NewReadGroup("8c6115b9_2", "", "", l, "", "", "", sample, "", "", time.Now(), 0)
if err != nil {
panic(err)
}
// create header and add values.
samHeader, err := sam.NewHeader(nil, nil)
samHeader.SortOrder = 1
samHeader.Version = "1.5"
rgerr := samHeader.AddReadGroup(rg)
if rgerr != nil {
panic(err.Error())
}
var w io.Writer
w, err = os.Create("bigones.bam")
if err != nil {
panic(err)
}
bamWriter, err := bam.NewWriter(w, samHeader, 0)
if err != nil {
panic(err)
}
defer bamWriter.Close()
for {
fq2, err := reader.Read()
if err == io.EOF {
break
}
h := sha256.New()
h.Write(fq2.ID)
str := base64.StdEncoding.EncodeToString(h.Sum(nil)[:24])
/*
fq2Match, ok := fq1[str]
if !ok {
fmt.Println("Can not file matching pair for: ", string(fq2.Name))
os.Exit(1)
}
*/
// set flag for pair data
var flag1 sam.Flags = 77
// var flag2 sam.Flags = 141
samReference, err := sam.NewReference("test", "", "", 100, nil, nil)
if err != nil {
panic(err)
}
fq1Record := &sam.Record{
Name: string(fq1[str].id),
Ref: samReference,
Flags: flag1,
Seq: sam.NewSeq(fq1[str].seq),
Qual: fq1[str].qual,
}
bamWriter.Write(fq1Record)
}
}