Template:LBS/FormatSugar: Difference between revisions

No edit summary
No edit summary
Line 6: Line 6:
     if (o) then ret = ret .. o end
     if (o) then ret = ret .. o end
     ---Process sugar name---
     ---Process sugar name---
     if (string.match(p, "^Glc")) then
     if (string.match(p, "^%$?Glc")) then
       ret = ret .. '<span style="color:Blue"><b>' .. p .. "</b></span>"
       ret = ret .. '<span style="color:Blue"><b>' .. p .. "</b></span>"
     elseif (string.match(p, "^Gal")) then
     elseif (string.match(p, "^%$?Gal")) then
       ret = ret .. '<span style="color:GoldenRod"><b>' .. p .. "</b></span>"
       ret = ret .. '<span style="color:GoldenRod"><b>' .. p .. "</b></span>"
     elseif (string.match(p, "^Man")) then
     elseif (string.match(p, "^%$?Man")) then
       ret = ret .. '<span style="color:Green"><b>' .. p .. "</b></span>"
       ret = ret .. '<span style="color:Green"><b>' .. p .. "</b></span>"
     elseif (string.match(p, "^Fuc")) then
     elseif (string.match(p, "^%$?Fuc")) then
       ret = ret .. '<span style="color:Red"><b>' .. p .. "</b></span>"
       ret = ret .. '<span style="color:Red"><b>' .. p .. "</b></span>"
     elseif (string.match(p, "^Neu")) then
     elseif (string.match(p, "^%$?Neu")) then
       ret = ret .. '<span style="color:MediumVioletRed"><b>' .. p .. "</b></span>"
       ret = ret .. '<span style="color:MediumVioletRed"><b>' .. p .. "</b></span>"
     else
     else

Revision as of 17:26, 23 October 2011

{{#lua:

 local seq = stdin:match("[%S()%[%]]+");
 local ret = "";
 for o,p,q,r,s,t in string.gmatch(seq, "([%[%(]?)([%a%$]+)([?ab%-])([1-9]?)%-?([1-9]?/?[1-9]?)([%]%)]?)") do
   ---Process ( ---
   if (o) then ret = ret .. o end
   ---Process sugar name---
   if (string.match(p, "^%$?Glc")) then
     ret = ret .. '' .. p .. ""
   elseif (string.match(p, "^%$?Gal")) then
     ret = ret .. '' .. p .. ""
   elseif (string.match(p, "^%$?Man")) then
     ret = ret .. '' .. p .. ""
   elseif (string.match(p, "^%$?Fuc")) then
     ret = ret .. '' .. p .. ""
   elseif (string.match(p, "^%$?Neu")) then
     ret = ret .. '' .. p .. ""
   else
     ret = ret .. '' .. p .. ''
   end
   ---Process alpha or beta---
   if (q == "a") then ret = ret .. "α"
   elseif (q == "b") then ret = ret .. "β"
   elseif (q == "-") then ret = ret .. "*"
   else ret = ret .. "" .. q end
   ---Process bond position---
   ret = ret .. r .. "-" .. s .. ""
   if (t) then ret = ret .. t end
 end
 if (string.match(seq,"Cer$")) then
     ret = ret .. "Cer"
 end
 print(ret)

|GlcNAcb1-3Galb1-3GalNAca1-4GalNAcb1-4(EtnP-6)GlcNAcb1-3Manb1-4Glcb1-1Cer}}