func coords(num int, atomRecords []byte) []structure.Coords { r := bytes.NewReader(atomRecords) name := fmt.Sprintf("fragment %d", num) entry, err := pdb.Read(r, name) util.Assert(err, "Fragment contents could not be read in PDB format") atoms := entry.OneChain().CaAtoms() if len(atoms) == 0 { util.Fatalf("Fragment %d has no ATOM coordinates.", num) } return atoms }
func BenchmarkReadPDB(b *testing.B) { if len(flagPdbFile) == 0 { return } r := gzReader(flagPdbFile) bs, err := ioutil.ReadAll(r) if err != nil { log.Fatal(err) } b.ResetTimer() for i := 0; i < b.N; i++ { if e, err := pdb.Read(bytes.NewReader(bs), flagPdbFile); err != nil { log.Fatal(err) } else { for _, chain := range e.Chains { chain.SequenceCaAtoms() } } } }