func main() { hhmFile := util.Arg(0) start := util.ParseInt(util.Arg(1)) end := util.ParseInt(util.Arg(2)) fhhm := util.OpenFile(hhmFile) qhhm, err := hmm.ReadHHM(fhhm) util.Assert(err) util.Assert(hmm.WriteHHM(os.Stdout, qhhm.Slice(start, end))) }
func FindFragments(pdbDb PDBDatabase, blits bool, queryHHM *hmm.HHM, qs seq.Sequence, start, end int) (*Fragments, error) { pre := fmt.Sprintf("bcbgo-hhfrag-hhm-%d-%d_", start, end) hhmFile, err := ioutil.TempFile("", pre) if err != nil { return nil, err } defer os.Remove(hhmFile.Name()) defer hhmFile.Close() hhmName := hhmFile.Name() if err := hmm.WriteHHM(hhmFile, queryHHM.Slice(start, end)); err != nil { return nil, err } var results *hhr.HHR if blits { conf := hhsuite.HHBlitsDefault conf.CPUs = 1 results, err = conf.Run(pdbDb.HHsuite(), hhmName) } else { conf := hhsuite.HHSearchDefault conf.CPUs = 1 results, err = conf.Run(pdbDb.HHsuite(), hhmName) } if err != nil { return nil, err } frags := make([]Fragment, 0, len(results.Hits)) for _, hit := range results.Hits { hit.QueryStart += start hit.QueryEnd += start for _, splitted := range splitHit(hit) { frag, err := NewFragment(pdbDb, qs, splitted) if err != nil { return nil, err } frags = append(frags, frag) } } return &Fragments{ Frags: frags, Start: start, End: end, }, nil }
func main() { inFasta := util.Arg(0) outHHM := util.Arg(1) hhblits := hhsuite.HHBlitsDefault hhmake := hhsuite.HHMakePseudo hhblits.Verbose = !flagQuiet hhmake.Verbose = !flagQuiet HHM, err := hhsuite.BuildHHM( hhblits, hhmake, util.FlagSeqDB, inFasta) util.Assert(err, "Error building HHM") util.Assert(hmm.WriteHHM(util.CreateFile(outHHM), HHM), "Error writing HHM '%s'", outHHM) }