Amino = <|"D" -> RGBColor["#E60A0A"], "E" -> RGBColor["#E60A0A"],
"C" -> RGBColor["#E6E600"], "M" -> RGBColor["#E6E600"],
"K" -> RGBColor["#145AFF"], "R" -> RGBColor["#145AFF"],
"S" -> RGBColor["#FA9600"], "T" -> RGBColor["#FA9600"],
"F" -> RGBColor["#3232AA"], "Y" -> RGBColor["#3232AA"],
"N" -> RGBColor["#00DCDC"], "Q" -> RGBColor["#00DCDC"],
"G" -> RGBColor["#EBEBEB"], "I" -> RGBColor["#0F820F"],
"L" -> RGBColor["#0F820F"], "V" -> RGBColor["#0F820F"],
"A" -> RGBColor["#C8C8C8"], "W" -> RGBColor["#B45AB4"],
"H" -> RGBColor["#8282D2"], "P" -> RGBColor["#DC9682"]|>;
ClearAll[colorResidues];
Options[colorResidues] = {ColorScheme -> Amino};
colorResidues[sequence_, opts : OptionsPattern[{colorResidues, Framed}]] :=
sequence // Characters //
Map[Framed[#,
Background -> OptionValue[ColorScheme][#],
FilterRules[{opts}, Options[Framed]]] &] //
Row
muc6 = StringTake[ProteinData["MUC6", "Sequence"], 75];
colorResidues[muc6]

Options for Framed
can be provided
colorResidues[muc6, FrameStyle -> None]

colorResidues[muc6, FrameStyle -> None, RoundingRadius -> 4]

colorResidues[muc6, FrameStyle -> {Thin, Blue, Dotted},
RoundingRadius -> 4, ImageMargins -> 2]

Use a random ColorScheme
colorResidues[muc6, FrameStyle -> None,
ColorScheme -> (Amino /. _RGBColor :> RandomColor[] // Map[Evaluate])]
