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 { func AddTaxonAtRankWorker(taxonomy *obitax.Taxonomy, ranks ...string) obiseq.SeqWorker {
f := func(s *obiseq.BioSequence) *obiseq.BioSequence { f := func(s *obiseq.BioSequence) *obiseq.BioSequence {
for _, r := range ranks { for _, r := range ranks {
taxonomy.SetTaxonAtRank(s,r) taxonomy.SetTaxonAtRank(s, r)
} }
return s return s
} }
@ -55,6 +55,16 @@ func AddTaxonAtRankWorker(taxonomy *obitax.Taxonomy, ranks ...string) obiseq.Seq
return f 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 { func CLIAnnotationWorker() obiseq.SeqWorker {
var annotator obiseq.SeqWorker var annotator obiseq.SeqWorker
annotator = nil annotator = nil
@ -76,7 +86,12 @@ func CLIAnnotationWorker() obiseq.SeqWorker {
if CLIHasTaxonAtRank() { if CLIHasTaxonAtRank() {
taxo := obigrep.CLILoadSelectedTaxonomy() taxo := obigrep.CLILoadSelectedTaxonomy()
w := AddTaxonAtRankWorker(taxo,CLITaxonAtRank()...) w := AddTaxonAtRankWorker(taxo, CLITaxonAtRank()...)
annotator = annotator.ChainWorkers(w)
}
if CLIHasSetLengthFlag() {
w := AddSeqLengthWorker()
annotator = annotator.ChainWorkers(w) annotator = annotator.ChainWorkers(w)
} }

View File

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