biors 0.56.0

Command-line tools for bio-rs biological AI model input workflows.
use biors_core::tokenizer::ProteinTokenizerProfile;

#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, clap::ValueEnum)]
pub enum TokenizerProfileArg {
    #[default]
    #[value(name = "protein-20")]
    Protein20,
    #[value(name = "protein-20-special")]
    Protein20Special,
    #[value(name = "dna-iupac")]
    DnaIupac,
    #[value(name = "dna-iupac-special")]
    DnaIupacSpecial,
    #[value(name = "rna-iupac")]
    RnaIupac,
    #[value(name = "rna-iupac-special")]
    RnaIupacSpecial,
}

impl From<TokenizerProfileArg> for ProteinTokenizerProfile {
    fn from(value: TokenizerProfileArg) -> Self {
        match value {
            TokenizerProfileArg::Protein20 => Self::Protein20,
            TokenizerProfileArg::Protein20Special => Self::Protein20Special,
            TokenizerProfileArg::DnaIupac => Self::DnaIupac,
            TokenizerProfileArg::DnaIupacSpecial => Self::DnaIupacSpecial,
            TokenizerProfileArg::RnaIupac => Self::RnaIupac,
            TokenizerProfileArg::RnaIupacSpecial => Self::RnaIupacSpecial,
        }
    }
}

impl From<ProteinTokenizerProfile> for TokenizerProfileArg {
    fn from(value: ProteinTokenizerProfile) -> Self {
        match value {
            ProteinTokenizerProfile::Protein20 => Self::Protein20,
            ProteinTokenizerProfile::Protein20Special => Self::Protein20Special,
            ProteinTokenizerProfile::DnaIupac => Self::DnaIupac,
            ProteinTokenizerProfile::DnaIupacSpecial => Self::DnaIupacSpecial,
            ProteinTokenizerProfile::RnaIupac => Self::RnaIupac,
            ProteinTokenizerProfile::RnaIupacSpecial => Self::RnaIupacSpecial,
        }
    }
}