0 | ||| Corresponds to residues found in `ChemDoodle.RESIDUE`
 1 | module CyBy.Draw.Residue
 2 |
 3 | %default total
 4 |
 5 |
 6 | ||| I did not incluede 'acidity', because we don't need it later.
 7 | ||| (claudio-etterli)
 8 | record Info where
 9 |   constructor MkInfo
10 |   symbol : String
11 |   name : String
12 |   polar : Bool
13 |   aminoColor : String
14 |   shaplyColor : String
15 |
16 |
17 | ||| '*' problematic as a type, therefore I named it 'Other'
18 | data Residue = Ala | Arg | Asn | Asp | Cys | Gln | Glu | Gly | His | Ile |
19 |                Leu | Lys | Met | Phe | Pro | Ser | Thr | Trp | Tyr | Val |
20 |                Asx | Glx | A   | G   | I   | C   | T   | U   | Other
21 |
22 | public export
23 | residue : Residue -> Info
24 | residue Ala   = MkInfo "Ala" "Alanine" False "#C8C8C8" "#8CFF8C"
25 | residue Arg   = MkInfo "Arg" "Arginine" True "#145AFF" "#00007C"
26 | residue Asn   = MkInfo "Asn" "Asparagine" True "#00DCDC" "#FF7C70"
27 | residue Asp   = MkInfo "Asp" "Aspartic Acid" True "#E60A0A" "#A00042"
28 | residue Cys   = MkInfo "Cys" "Cysteine" True "#E6E600" "#FFFF70"
29 | residue Gln   = MkInfo "Gln" "Glutamine" True "#00DCDC" "#FF4C4C"
30 | residue Glu   = MkInfo "Glu" "Glutamic Acid" True "#E60A0A" "#660000"
31 | residue Gly   = MkInfo "Gly" "Glycine" False "#EBEBEB" "#FFFFFF"
32 | residue His   = MkInfo "His" "Histidine" True "#8282D2" "#7070FF"
33 | residue Ile   = MkInfo "Ile" "Isoleucine" False "#0F820F" "#004C00"
34 | residue Leu   = MkInfo "Leu" "Leucine" False "#0F820F" "#455E45"
35 | residue Lys   = MkInfo "Lys" "Lysine" True "#145AFF" "#4747B8"
36 | residue Met   = MkInfo "Met" "Methionine" False "#E6E600" "#B8A042"
37 | residue Phe   = MkInfo "Phe" "Phenylalanine" False "#3232AA" "#534C52"
38 | residue Pro   = MkInfo "Pro" "Proline" False "#DC9682" "#525252"
39 | residue Ser   = MkInfo "Ser" "Serine" True "#FA9600" "#FF7042"
40 | residue Thr   = MkInfo "Thr" "Threonine" True "#FA9600" "#B84C00"
41 | residue Trp   = MkInfo "Trp" "Tryptophan" True "#B45AB4" "#4F4600"
42 | residue Tyr   = MkInfo "Tyr" "Tyrosine" True "#3232AA" "#8C704C"
43 | residue Val   = MkInfo "Val" "Valine" False "#0F820F" "#FF8CFF"
44 | residue Asx   = MkInfo "Asx" "Asparagine/Aspartic Acid" True "#FF69B4" "#FF00FF"
45 | residue Glx   = MkInfo "Glx" "Glutamine/Glutamic Acid" True "#FF69B4" "#FF00FF"
46 | residue A     = MkInfo "A" "Adenine" False "#BEA06E" "#A0A0FF"
47 | residue G     = MkInfo "G" "Guanine" False "#BEA06E" "#FF7070"
48 | residue I     = MkInfo "I" "" False "#BEA06E" "#80FFFF"
49 | residue C     = MkInfo "C" "Cytosine" False "#BEA06E" "#FF8C4B"
50 | residue T     = MkInfo "T" "Thymine" False "#BEA06E" "#A0FFA0"
51 | residue U     = MkInfo "U" "Uracil" False "#BEA06E" "#FF8080"
52 | residue Other = MkInfo "*" "Other" False "#BEA06E" "#FF00FF"
53 |
54 | namespace Res
55 |   public export %inline
56 |   symbol : Residue -> String
57 |   symbol = symbol . residue
58 |
59 |   public export %inline
60 |   name : Residue -> String
61 |   name = name . residue
62 |
63 |   public export %inline
64 |   polar : Residue -> Bool
65 |   polar = polar . residue
66 |
67 |   public export %inline
68 |   aminoColor : Residue -> String
69 |   aminoColor = aminoColor . residue
70 |
71 |   public export %inline
72 |   shaplyColor : Residue -> String
73 |   shaplyColor = shaplyColor . residue
74 |