{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE TemplateHaskell #-}
module Bio.Protein.AminoAcid.Type where
import Control.DeepSeq (NFData (..))
import Control.Lens
import GHC.Generics (Generic (..))
data AA = ALA
| CYS
| ASP
| GLU
| PHE
| GLY
| HIS
| ILE
| LYS
| LEU
| MET
| ASN
| PRO
| GLN
| ARG
| SER
| THR
| VAL
| TRP
| TYR
deriving (AA -> AA -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AA -> AA -> Bool
$c/= :: AA -> AA -> Bool
== :: AA -> AA -> Bool
$c== :: AA -> AA -> Bool
Eq, Eq AA
AA -> AA -> Bool
AA -> AA -> Ordering
AA -> AA -> AA
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: AA -> AA -> AA
$cmin :: AA -> AA -> AA
max :: AA -> AA -> AA
$cmax :: AA -> AA -> AA
>= :: AA -> AA -> Bool
$c>= :: AA -> AA -> Bool
> :: AA -> AA -> Bool
$c> :: AA -> AA -> Bool
<= :: AA -> AA -> Bool
$c<= :: AA -> AA -> Bool
< :: AA -> AA -> Bool
$c< :: AA -> AA -> Bool
compare :: AA -> AA -> Ordering
$ccompare :: AA -> AA -> Ordering
Ord, AA
forall a. a -> a -> Bounded a
maxBound :: AA
$cmaxBound :: AA
minBound :: AA
$cminBound :: AA
Bounded, Int -> AA
AA -> Int
AA -> [AA]
AA -> AA
AA -> AA -> [AA]
AA -> AA -> AA -> [AA]
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: AA -> AA -> AA -> [AA]
$cenumFromThenTo :: AA -> AA -> AA -> [AA]
enumFromTo :: AA -> AA -> [AA]
$cenumFromTo :: AA -> AA -> [AA]
enumFromThen :: AA -> AA -> [AA]
$cenumFromThen :: AA -> AA -> [AA]
enumFrom :: AA -> [AA]
$cenumFrom :: AA -> [AA]
fromEnum :: AA -> Int
$cfromEnum :: AA -> Int
toEnum :: Int -> AA
$ctoEnum :: Int -> AA
pred :: AA -> AA
$cpred :: AA -> AA
succ :: AA -> AA
$csucc :: AA -> AA
Enum, forall x. Rep AA x -> AA
forall x. AA -> Rep AA x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AA x -> AA
$cfrom :: forall x. AA -> Rep AA x
Generic, AA -> ()
forall a. (a -> ()) -> NFData a
rnf :: AA -> ()
$crnf :: AA -> ()
NFData)
instance Show AA where
show :: AA -> String
show AA
ALA = String
"Alanine"
show AA
CYS = String
"Cysteine"
show AA
ASP = String
"AsparticAcid"
show AA
GLU = String
"GlutamicAcid"
show AA
PHE = String
"Phenylalanine"
show AA
GLY = String
"Glycine"
show AA
HIS = String
"Histidine"
show AA
ILE = String
"Isoleucine"
show AA
LYS = String
"Lysine"
show AA
LEU = String
"Leucine"
show AA
MET = String
"Methionine"
show AA
ASN = String
"Asparagine"
show AA
PRO = String
"Proline"
show AA
GLN = String
"Glutamine"
show AA
ARG = String
"Arginine"
show AA
SER = String
"Serine"
show AA
THR = String
"Threonine"
show AA
VAL = String
"Valine"
show AA
TRP = String
"Tryptophan"
show AA
TYR = String
"Tyrosine"
data AminoAcid nr car cr a = AminoAcid { forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a.
AminoAcid nr car cr a -> nr a
_n' :: nr a
, forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a.
AminoAcid nr car cr a -> car a
_ca' :: car a
, forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a.
AminoAcid nr car cr a -> cr a
_c' :: cr a
}
deriving (Int -> AminoAcid nr car cr a -> ShowS
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a.
(Show (nr a), Show (car a), Show (cr a)) =>
Int -> AminoAcid nr car cr a -> ShowS
forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a.
(Show (nr a), Show (car a), Show (cr a)) =>
[AminoAcid nr car cr a] -> ShowS
forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a.
(Show (nr a), Show (car a), Show (cr a)) =>
AminoAcid nr car cr a -> String
showList :: [AminoAcid nr car cr a] -> ShowS
$cshowList :: forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a.
(Show (nr a), Show (car a), Show (cr a)) =>
[AminoAcid nr car cr a] -> ShowS
show :: AminoAcid nr car cr a -> String
$cshow :: forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a.
(Show (nr a), Show (car a), Show (cr a)) =>
AminoAcid nr car cr a -> String
showsPrec :: Int -> AminoAcid nr car cr a -> ShowS
$cshowsPrec :: forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a.
(Show (nr a), Show (car a), Show (cr a)) =>
Int -> AminoAcid nr car cr a -> ShowS
Show, AminoAcid nr car cr a -> AminoAcid nr car cr a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a.
(Eq (nr a), Eq (car a), Eq (cr a)) =>
AminoAcid nr car cr a -> AminoAcid nr car cr a -> Bool
/= :: AminoAcid nr car cr a -> AminoAcid nr car cr a -> Bool
$c/= :: forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a.
(Eq (nr a), Eq (car a), Eq (cr a)) =>
AminoAcid nr car cr a -> AminoAcid nr car cr a -> Bool
== :: AminoAcid nr car cr a -> AminoAcid nr car cr a -> Bool
$c== :: forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a.
(Eq (nr a), Eq (car a), Eq (cr a)) =>
AminoAcid nr car cr a -> AminoAcid nr car cr a -> Bool
Eq, forall a b. a -> AminoAcid nr car cr b -> AminoAcid nr car cr a
forall a b.
(a -> b) -> AminoAcid nr car cr a -> AminoAcid nr car cr b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a b.
(Functor nr, Functor car, Functor cr) =>
a -> AminoAcid nr car cr b -> AminoAcid nr car cr a
forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a b.
(Functor nr, Functor car, Functor cr) =>
(a -> b) -> AminoAcid nr car cr a -> AminoAcid nr car cr b
<$ :: forall a b. a -> AminoAcid nr car cr b -> AminoAcid nr car cr a
$c<$ :: forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a b.
(Functor nr, Functor car, Functor cr) =>
a -> AminoAcid nr car cr b -> AminoAcid nr car cr a
fmap :: forall a b.
(a -> b) -> AminoAcid nr car cr a -> AminoAcid nr car cr b
$cfmap :: forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a b.
(Functor nr, Functor car, Functor cr) =>
(a -> b) -> AminoAcid nr car cr a -> AminoAcid nr car cr b
Functor, forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a x.
Rep (AminoAcid nr car cr a) x -> AminoAcid nr car cr a
forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a x.
AminoAcid nr car cr a -> Rep (AminoAcid nr car cr a) x
$cto :: forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a x.
Rep (AminoAcid nr car cr a) x -> AminoAcid nr car cr a
$cfrom :: forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a x.
AminoAcid nr car cr a -> Rep (AminoAcid nr car cr a) x
Generic, forall a. (a -> ()) -> NFData a
forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a.
(NFData (nr a), NFData (car a), NFData (cr a)) =>
AminoAcid nr car cr a -> ()
rnf :: AminoAcid nr car cr a -> ()
$crnf :: forall (nr :: * -> *) (car :: * -> *) (cr :: * -> *) a.
(NFData (nr a), NFData (car a), NFData (cr a)) =>
AminoAcid nr car cr a -> ()
NFData)
data Radical a = Alanine
{ forall a. Radical a -> a
_cb :: a
}
| Cysteine
{ _cb :: a
, forall a. Radical a -> a
_sg :: a
}
| AsparticAcid
{ _cb :: a
, forall a. Radical a -> a
_cg :: a
, forall a. Radical a -> a
_od1 :: a
, forall a. Radical a -> a
_od2 :: a
}
| GlutamicAcid
{ _cb :: a
, _cg :: a
, forall a. Radical a -> a
_cd :: a
, forall a. Radical a -> a
_oe1 :: a
, forall a. Radical a -> a
_oe2 :: a
}
| Phenylalanine
{ _cb :: a
, _cg :: a
, forall a. Radical a -> a
_cd1 :: a
, forall a. Radical a -> a
_cd2 :: a
, forall a. Radical a -> a
_ce1 :: a
, forall a. Radical a -> a
_ce2 :: a
, forall a. Radical a -> a
_cz :: a
}
| Glycine
| Histidine
{ _cb :: a
, _cg :: a
, forall a. Radical a -> a
_nd1 :: a
, _cd2 :: a
, _ce1 :: a
, forall a. Radical a -> a
_ne2 :: a
}
| Isoleucine
{ _cb :: a
, forall a. Radical a -> a
_cg1 :: a
, forall a. Radical a -> a
_cg2 :: a
, _cd1 :: a
}
| Lysine
{ _cb :: a
, _cg :: a
, _cd :: a
, forall a. Radical a -> a
_ce :: a
, forall a. Radical a -> a
_nz :: a
}
| Leucine
{ _cb :: a
, _cg :: a
, _cd1 :: a
, _cd2 :: a
}
| Methionine
{ _cb :: a
, _cg :: a
, forall a. Radical a -> a
_sd :: a
, _ce :: a
}
| Asparagine
{ _cb :: a
, _cg :: a
, _od1 :: a
, forall a. Radical a -> a
_nd2 :: a
}
| Proline
{ _cb :: a
, _cg :: a
, _cd :: a
}
| Glutamine
{ _cb :: a
, _cg :: a
, _cd :: a
, _oe1 :: a
, _ne2 :: a
}
| Arginine
{ _cb :: a
, _cg :: a
, _cd :: a
, forall a. Radical a -> a
_ne :: a
, _cz :: a
, forall a. Radical a -> a
_nh1 :: a
, forall a. Radical a -> a
_nh2 :: a
}
| Serine
{ _cb :: a
, forall a. Radical a -> a
_og :: a
}
| Threonine
{ _cb :: a
, forall a. Radical a -> a
_og1 :: a
, _cg2 :: a
}
| Valine
{ _cb :: a
, _cg1 :: a
, _cg2 :: a
}
| Tryptophan
{ _cb :: a
, _cg :: a
, _cd1 :: a
, _cd2 :: a
, forall a. Radical a -> a
_ne1 :: a
, _ce2 :: a
, forall a. Radical a -> a
_ce3 :: a
, forall a. Radical a -> a
_cz2 :: a
, forall a. Radical a -> a
_cz3 :: a
, forall a. Radical a -> a
_ch2 :: a
}
| Tyrosine
{ _cb :: a
, _cg :: a
, _cd1 :: a
, _cd2 :: a
, _ce1 :: a
, _ce2 :: a
, _cz :: a
, forall a. Radical a -> a
_oh :: a
}
deriving (Int -> Radical a -> ShowS
forall a. Show a => Int -> Radical a -> ShowS
forall a. Show a => [Radical a] -> ShowS
forall a. Show a => Radical a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Radical a] -> ShowS
$cshowList :: forall a. Show a => [Radical a] -> ShowS
show :: Radical a -> String
$cshow :: forall a. Show a => Radical a -> String
showsPrec :: Int -> Radical a -> ShowS
$cshowsPrec :: forall a. Show a => Int -> Radical a -> ShowS
Show, Radical a -> Radical a -> Bool
forall a. Eq a => Radical a -> Radical a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Radical a -> Radical a -> Bool
$c/= :: forall a. Eq a => Radical a -> Radical a -> Bool
== :: Radical a -> Radical a -> Bool
$c== :: forall a. Eq a => Radical a -> Radical a -> Bool
Eq, forall a b. a -> Radical b -> Radical a
forall a b. (a -> b) -> Radical a -> Radical b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: forall a b. a -> Radical b -> Radical a
$c<$ :: forall a b. a -> Radical b -> Radical a
fmap :: forall a b. (a -> b) -> Radical a -> Radical b
$cfmap :: forall a b. (a -> b) -> Radical a -> Radical b
Functor, forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall a x. Rep (Radical a) x -> Radical a
forall a x. Radical a -> Rep (Radical a) x
$cto :: forall a x. Rep (Radical a) x -> Radical a
$cfrom :: forall a x. Radical a -> Rep (Radical a) x
Generic, forall a. NFData a => Radical a -> ()
forall a. (a -> ()) -> NFData a
rnf :: Radical a -> ()
$crnf :: forall a. NFData a => Radical a -> ()
NFData)
data Env r a = Env { forall (r :: * -> *) a. Env r a -> a
_atom' :: a
, forall (r :: * -> *) a. Env r a -> r a
_environment :: r a
}
deriving (Int -> Env r a -> ShowS
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall (r :: * -> *) a.
(Show a, Show (r a)) =>
Int -> Env r a -> ShowS
forall (r :: * -> *) a. (Show a, Show (r a)) => [Env r a] -> ShowS
forall (r :: * -> *) a. (Show a, Show (r a)) => Env r a -> String
showList :: [Env r a] -> ShowS
$cshowList :: forall (r :: * -> *) a. (Show a, Show (r a)) => [Env r a] -> ShowS
show :: Env r a -> String
$cshow :: forall (r :: * -> *) a. (Show a, Show (r a)) => Env r a -> String
showsPrec :: Int -> Env r a -> ShowS
$cshowsPrec :: forall (r :: * -> *) a.
(Show a, Show (r a)) =>
Int -> Env r a -> ShowS
Show, Env r a -> Env r a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall (r :: * -> *) a.
(Eq a, Eq (r a)) =>
Env r a -> Env r a -> Bool
/= :: Env r a -> Env r a -> Bool
$c/= :: forall (r :: * -> *) a.
(Eq a, Eq (r a)) =>
Env r a -> Env r a -> Bool
== :: Env r a -> Env r a -> Bool
$c== :: forall (r :: * -> *) a.
(Eq a, Eq (r a)) =>
Env r a -> Env r a -> Bool
Eq, forall a b. a -> Env r b -> Env r a
forall a b. (a -> b) -> Env r a -> Env r b
forall (r :: * -> *) a b. Functor r => a -> Env r b -> Env r a
forall (r :: * -> *) a b.
Functor r =>
(a -> b) -> Env r a -> Env r b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: forall a b. a -> Env r b -> Env r a
$c<$ :: forall (r :: * -> *) a b. Functor r => a -> Env r b -> Env r a
fmap :: forall a b. (a -> b) -> Env r a -> Env r b
$cfmap :: forall (r :: * -> *) a b.
Functor r =>
(a -> b) -> Env r a -> Env r b
Functor, forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (r :: * -> *) a x. Rep (Env r a) x -> Env r a
forall (r :: * -> *) a x. Env r a -> Rep (Env r a) x
$cto :: forall (r :: * -> *) a x. Rep (Env r a) x -> Env r a
$cfrom :: forall (r :: * -> *) a x. Env r a -> Rep (Env r a) x
Generic, forall a. (a -> ()) -> NFData a
forall (r :: * -> *) a. (NFData a, NFData (r a)) => Env r a -> ()
rnf :: Env r a -> ()
$crnf :: forall (r :: * -> *) a. (NFData a, NFData (r a)) => Env r a -> ()
NFData)
type H a = Env [] a
data OXT a = OXT { forall a. OXT a -> a
_o' :: a
, forall a. OXT a -> a
_oxt' :: a
}
deriving (Int -> OXT a -> ShowS
forall a. Show a => Int -> OXT a -> ShowS
forall a. Show a => [OXT a] -> ShowS
forall a. Show a => OXT a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [OXT a] -> ShowS
$cshowList :: forall a. Show a => [OXT a] -> ShowS
show :: OXT a -> String
$cshow :: forall a. Show a => OXT a -> String
showsPrec :: Int -> OXT a -> ShowS
$cshowsPrec :: forall a. Show a => Int -> OXT a -> ShowS
Show, OXT a -> OXT a -> Bool
forall a. Eq a => OXT a -> OXT a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OXT a -> OXT a -> Bool
$c/= :: forall a. Eq a => OXT a -> OXT a -> Bool
== :: OXT a -> OXT a -> Bool
$c== :: forall a. Eq a => OXT a -> OXT a -> Bool
Eq, forall a b. a -> OXT b -> OXT a
forall a b. (a -> b) -> OXT a -> OXT b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: forall a b. a -> OXT b -> OXT a
$c<$ :: forall a b. a -> OXT b -> OXT a
fmap :: forall a b. (a -> b) -> OXT a -> OXT b
$cfmap :: forall a b. (a -> b) -> OXT a -> OXT b
Functor, forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall a x. Rep (OXT a) x -> OXT a
forall a x. OXT a -> Rep (OXT a) x
$cto :: forall a x. Rep (OXT a) x -> OXT a
$cfrom :: forall a x. OXT a -> Rep (OXT a) x
Generic, forall a. NFData a => OXT a -> ()
forall a. (a -> ()) -> NFData a
rnf :: OXT a -> ()
$crnf :: forall a. NFData a => OXT a -> ()
NFData)
data CG a = CG { forall a. CG a -> a
_cg' :: a
, forall a. CG a -> AA
_radical' :: AA
}
deriving (Int -> CG a -> ShowS
forall a. Show a => Int -> CG a -> ShowS
forall a. Show a => [CG a] -> ShowS
forall a. Show a => CG a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CG a] -> ShowS
$cshowList :: forall a. Show a => [CG a] -> ShowS
show :: CG a -> String
$cshow :: forall a. Show a => CG a -> String
showsPrec :: Int -> CG a -> ShowS
$cshowsPrec :: forall a. Show a => Int -> CG a -> ShowS
Show, CG a -> CG a -> Bool
forall a. Eq a => CG a -> CG a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CG a -> CG a -> Bool
$c/= :: forall a. Eq a => CG a -> CG a -> Bool
== :: CG a -> CG a -> Bool
$c== :: forall a. Eq a => CG a -> CG a -> Bool
Eq, forall a b. a -> CG b -> CG a
forall a b. (a -> b) -> CG a -> CG b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: forall a b. a -> CG b -> CG a
$c<$ :: forall a b. a -> CG b -> CG a
fmap :: forall a b. (a -> b) -> CG a -> CG b
$cfmap :: forall a b. (a -> b) -> CG a -> CG b
Functor, forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall a x. Rep (CG a) x -> CG a
forall a x. CG a -> Rep (CG a) x
$cto :: forall a x. Rep (CG a) x -> CG a
$cfrom :: forall a x. CG a -> Rep (CG a) x
Generic, forall a. NFData a => CG a -> ()
forall a. (a -> ()) -> NFData a
rnf :: CG a -> ()
$crnf :: forall a. NFData a => CG a -> ()
NFData)
makeLenses ''AminoAcid
makeLenses ''Radical
makeLenses ''Env
makeLenses ''OXT
makeLenses ''CG
type BB a = AminoAcid Identity Identity Identity (Identity a)
type BBCA a = AminoAcid (Const ()) Identity (Const ()) (Identity a)
type BBT a = AminoAcid Identity (Env (Const AA)) Identity (Identity a)
type BBCAT a = AminoAcid (Const ()) (Env (Const AA)) (Const ()) (Identity a)
type BBCG a = AminoAcid Identity (Env CG) Identity (Identity a)
type BBO a = AminoAcid Identity Identity (Env Identity) (Identity a)
type BBOT a = AminoAcid Identity (Env (Const AA)) (Env Identity) (Identity a)
type BBOCG a = AminoAcid Identity (Env CG) (Env Identity) (Identity a)
type BBOR a = AminoAcid Identity (Env Radical) (Env Identity) (Identity a)
type BBOXTR a = AminoAcid Identity (Env Radical) (Env OXT) (Identity a)
type BBORH a = AminoAcid Identity (Env Radical) (Env Identity) (H a)
type BBOXTRH a = AminoAcid Identity (Env Radical) (Env OXT) (H a)
rad2rad :: Radical a -> AA
rad2rad :: forall a. Radical a -> AA
rad2rad Alanine{} = AA
ALA
rad2rad Cysteine{} = AA
CYS
rad2rad AsparticAcid{} = AA
ASP
rad2rad GlutamicAcid{} = AA
GLU
rad2rad Phenylalanine{} = AA
PHE
rad2rad Radical a
Glycine = AA
GLY
rad2rad Histidine{} = AA
HIS
rad2rad Isoleucine{} = AA
ILE
rad2rad Lysine{} = AA
LYS
rad2rad Leucine{} = AA
LEU
rad2rad Methionine{} = AA
MET
rad2rad Asparagine{} = AA
ASN
rad2rad Proline{} = AA
PRO
rad2rad Glutamine{} = AA
GLN
rad2rad Arginine{} = AA
ARG
rad2rad Serine{} = AA
SER
rad2rad Threonine{} = AA
THR
rad2rad Valine{} = AA
VAL
rad2rad Tryptophan{} = AA
TRP
rad2rad Tyrosine{} = AA
TYR