Skip to content

Commit b96706b

Browse files
Merge pull request #20 from TheLostLambda/lanthionine
feat(muropeptide): add meso-Lanthionine as `mL`
2 parents e998fd6 + 9564e04 commit b96706b

6 files changed

+102
-0
lines changed

crates/muropeptide/data/polymer_database.kdl

+5
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,11 @@ residues {
133133
functional-group "Amino" at="Sidechain"
134134
functional-group "Carboxyl" at="Sidechain"
135135
}
136+
AminoAcid "mL" "Lanthionine" {
137+
composition "C6H12N2O4S"
138+
functional-group "Amino" at="Sidechain"
139+
functional-group "Carboxyl" at="Sidechain"
140+
}
136141
AminoAcid "K" "Lysine" {
137142
composition "C6H14N2O2"
138143
functional-group "Amino" at="Sidechain"

crates/muropeptide/data/smiles_database.kdl

+11
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,17 @@ residues {
148148
modification "Am" replace=r"O\)=O\)" with="N)=O)"
149149
}
150150

151+
AminoAcid "mL" {
152+
// No `sidechain`, so no L and D forms...
153+
isomer "meso" "N[C@@H](CSC[C@@H](N)C(O)=O)C(O)=O"
154+
155+
bond-sites "NToC" donor=r"(\(O\))=O\)"
156+
bond-sites "CToN" acceptor=r"\(N()\)"
157+
bond-sites "Link" acceptor=r"\(N()\)"
158+
159+
modification "Am" replace=r"O\)=O\)" with="N)=O)"
160+
}
161+
151162
AminoAcid "K" {
152163
sidechain "CCCCN"
153164

crates/muropeptide/src/snapshots/muropeptide__smiles_database__tests__build_smiles_database.snap

+28
Original file line numberDiff line numberDiff line change
@@ -791,5 +791,33 @@ SmilesDatabase(
791791
],
792792
},
793793
),
794+
"mL": ResidueDescription(
795+
isomers: [
796+
Isomer(
797+
name: Some("meso"),
798+
smiles: "N[C@@H](CSC[C@@H](N)C(O)=O)C(O)=O",
799+
),
800+
],
801+
isomer_rules: {},
802+
bond_sites: {
803+
Acceptor("CToN"): "\\(N()\\)",
804+
Acceptor("Link"): "\\(N()\\)",
805+
Acceptor("NToC"): "^N()",
806+
Acceptor("Pep"): "^N()",
807+
Acceptor("Stem"): "^N()",
808+
Donor("CToN"): "(\\(O\\))=O$",
809+
Donor("Link"): "(\\(O\\))=O$",
810+
Donor("NToC"): "(\\(O\\))=O\\)",
811+
Donor("Pep"): "(\\(O\\))=O$",
812+
},
813+
modifications: {
814+
"Am": [
815+
Modification(
816+
replace: "O\\)=O\\)",
817+
with: "N)=O)",
818+
),
819+
],
820+
},
821+
),
794822
},
795823
)

crates/muropeptide/src/snapshots/muropeptide__smiles_database__tests__dump_isomer_positions.snap

+7
Original file line numberDiff line numberDiff line change
@@ -191,3 +191,10 @@ m:
191191
Stem(4) -> β-D (O[C@H]([C@H](O1)CO)[C@H](O[C@H](C)C(O)=O)[C@@H](NC(=O)C)[C@@H]1O)
192192
Stem(5) -> β-D (O[C@H]([C@H](O1)CO)[C@H](O[C@H](C)C(O)=O)[C@@H](NC(=O)C)[C@@H]1O)
193193
Lateral -> β-D (O[C@H]([C@H](O1)CO)[C@H](O[C@H](C)C(O)=O)[C@@H](NC(=O)C)[C@@H]1O)
194+
mL:
195+
Stem(1) -> meso (N[C@@H](CSC[C@@H](N)C(O)=O)C(O)=O)
196+
Stem(2) -> meso (N[C@@H](CSC[C@@H](N)C(O)=O)C(O)=O)
197+
Stem(3) -> meso (N[C@@H](CSC[C@@H](N)C(O)=O)C(O)=O)
198+
Stem(4) -> meso (N[C@@H](CSC[C@@H](N)C(O)=O)C(O)=O)
199+
Stem(5) -> meso (N[C@@H](CSC[C@@H](N)C(O)=O)C(O)=O)
200+
Lateral -> meso (N[C@@H](CSC[C@@H](N)C(O)=O)C(O)=O)

crates/muropeptide/src/snapshots/muropeptide__smiles_database__tests__dump_isomer_smiles.snap

+1
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,4 @@ Z(D): N[C@H]([C@@H](O)CC(=O)O)C(O)=O
5555
Z(D-iso): N[C@@H](C(=O)O)[C@@H](O)CC(O)=O
5656
g-D): O[C@H]([C@H](O1)CO)[C@H](O)[C@@H](NC(=O)C)[C@@H]1O
5757
m-D): O[C@H]([C@H](O1)CO)[C@H](O[C@H](C)C(O)=O)[C@@H](NC(=O)C)[C@@H]1O
58+
mL(meso): N[C@@H](CSC[C@@H](N)C(O)=O)C(O)=O

crates/muropeptide/src/snapshots/muropeptide__smiles_database__tests__parse_smiles_database.snap

+50
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,56 @@ SmilesDatabaseKdl {
484484
],
485485
template_values: [],
486486
},
487+
ResidueKdl {
488+
kind: "AminoAcid",
489+
abbr: "mL",
490+
isomers: [
491+
IsomerKdl {
492+
name: Some(
493+
"meso",
494+
),
495+
smiles: "N[C@@H](CSC[C@@H](N)C(O)=O)C(O)=O",
496+
},
497+
],
498+
stem: [],
499+
lateral: None,
500+
bond_sites: [
501+
BondSitesKdl {
502+
bond: "NToC",
503+
donor: Some(
504+
"(\\(O\\))=O\\)",
505+
),
506+
acceptor: None,
507+
},
508+
BondSitesKdl {
509+
bond: "CToN",
510+
donor: None,
511+
acceptor: Some(
512+
"\\(N()\\)",
513+
),
514+
},
515+
BondSitesKdl {
516+
bond: "Link",
517+
donor: None,
518+
acceptor: Some(
519+
"\\(N()\\)",
520+
),
521+
},
522+
],
523+
modifications: [
524+
ModificationKdl {
525+
abbr: "Am",
526+
replace: Some(
527+
"O\\)=O\\)",
528+
),
529+
with: Some(
530+
"N)=O)",
531+
),
532+
replacements: [],
533+
},
534+
],
535+
template_values: [],
536+
},
487537
ResidueKdl {
488538
kind: "AminoAcid",
489539
abbr: "K",

0 commit comments

Comments
 (0)