Adds code for the --length option of obiannotate

This commit is contained in:
2023-02-02 17:15:06 +01:00
parent 5639a09fb9
commit 060f7db082
2 changed files with 21 additions and 2 deletions

View File

@ -47,7 +47,7 @@ func RenameAttributeWorker(toBeRenamed map[string]string) obiseq.SeqWorker {
func AddTaxonAtRankWorker(taxonomy *obitax.Taxonomy, ranks ...string) obiseq.SeqWorker {
f := func(s *obiseq.BioSequence) *obiseq.BioSequence {
for _, r := range ranks {
taxonomy.SetTaxonAtRank(s,r)
taxonomy.SetTaxonAtRank(s, r)
}
return s
}
@ -55,6 +55,16 @@ func AddTaxonAtRankWorker(taxonomy *obitax.Taxonomy, ranks ...string) obiseq.Seq
return f
}
func AddSeqLengthWorker() obiseq.SeqWorker {
f := func(s *obiseq.BioSequence) *obiseq.BioSequence {
s.SetAttribute("seq_length", s.Len())
return s
}
return f
}
func CLIAnnotationWorker() obiseq.SeqWorker {
var annotator obiseq.SeqWorker
annotator = nil
@ -76,7 +86,12 @@ func CLIAnnotationWorker() obiseq.SeqWorker {
if CLIHasTaxonAtRank() {
taxo := obigrep.CLILoadSelectedTaxonomy()
w := AddTaxonAtRankWorker(taxo,CLITaxonAtRank()...)
w := AddTaxonAtRankWorker(taxo, CLITaxonAtRank()...)
annotator = annotator.ChainWorkers(w)
}
if CLIHasSetLengthFlag() {
w := AddSeqLengthWorker()
annotator = annotator.ChainWorkers(w)
}

View File

@ -128,3 +128,7 @@ func CLIHasTaxonAtRank() bool {
func CLITaxonAtRank() []string {
return _taxonAtRank
}
func CLIHasSetLengthFlag() bool {
return _setSeqLength
}