Module:LBS
Documentation for this module may be created at Module:LBS/doc
local getArgs = require('Module:Arguments').getArgs; local lbs = {}; function lbs.FormatSugar( frame ) local args = getArgs(frame); local arg; if nil == args[1] then arg = "GlcNAca/b1-3Xyla-4Galb1-3GalNAca1-4(NeuAc?1-2NeuGc4Mea1-3)GalNAcb1-4(EtnP-6)GlcNAcb1-3Manb1-4Glcb1-1Cer"; else arg = args[1]; end seq = arg:match("[%S()%[%], ]+"); local ret = ""; seq = string.gsub(seq, "a/b([1-9?]?-[1-9/?]*)", "<sub>α/β%1</sub>"); seq = string.gsub(seq, "a([1-9?]?-[1-9/?]*)", "<sub>α%1</sub>"); seq = string.gsub(seq, "b([1-9?]?-[1-9/?]*)", "<sub>β%1</sub>"); seq = string.gsub(seq, "?([1-9?]?-[1-9/?]*)", "<sub>?%1</sub>"); seq = string.gsub(seq, "Cer$", "<b>Cer</b>"); seq = string.gsub(seq, "(Gal[NAcH234Me]*)", '<span style="color:Gold"><b>%1</b></span>'); seq = string.gsub(seq, "(Glc[NAcH2]*)", '<span style="color:Blue"><b>%1</b></span>'); seq = string.gsub(seq, "(Man[A]*)", '<span style="color:Green"><b>%1</b></span>'); seq = string.gsub(seq, "(Rha)", '<span style="color:Green"><b>%1</b></span>'); seq = string.gsub(seq, "(Fuc[A]*)", '<span style="color:Red"><b>%1</b></span>'); seq = string.gsub(seq, "(NeuAc[Me489]*)", '<span style="color:Purple"><b>%1</b></span>'); seq = string.gsub(seq, "(NeuGc[Me489]*)", '<span style="color:Gray"><b>%1</b></span>'); seq = string.gsub(seq, "(Xyl)", '<span style="color:DarkOrange"><b>%1</b></span>'); seq = string.gsub(seq, "(Ara)", '<span style="color:DarkOrange"><b>%1</b></span>'); seq = string.gsub(seq, "(KDN)", '<span style="color:Green"><b>%1</b></span>'); return seq; end return lbs;