|
|
(16 intermediate revisions by one user not shown) |
Line 1: |
Line 1: |
− | {| | + | {{Volatile:Pathway/Metabolic|{{{source|}}}|{{#replace:{{#trimex:{{{list|}}}}}|&&|__}}|0|{{PAGENAME}}}} |
− | |-
| + | |
− | |style="text-align:center"|[[Image:{{{source|}}}.png|thumb|{{#var:PIC_SCALE}}px]]
| + | |
− | |
| + | |
− | {{#repeat:Pathway/MetabolicTable|4|<!---- | + | |
− | 4行の出力内訳
| + | |
− | 1 ... mapping pagetitle
| + | |
− | 2 ... mapping direction
| + | |
− | 3 ... mapped position
| + | |
− | 4 ... target molecular ID
| + | |
− | --->{{#lua:
| + | |
− | local list = {};
| + | |
− | local count = 0;
| + | |
− | for line in stdin:gmatch("([^\n]+)") do
| + | |
− | count = count+1;
| + | |
− | if (count % 3 ~= 2) then
| + | |
− | --- do nothing for AtomMaps and metabolite IDs ---
| + | |
− | print(line);
| + | |
− | else
| + | |
− | if (count==2) then
| + | |
− | --- First mapping line ---
| + | |
− | local str = "";
| + | |
− | for k, v in string.gmatch(line, "(%d%d?) (%d%d?) %d?%d? ?;") do
| + | |
− | list[k] = v; str = str .. "<br/>" .. k .. "->" .. v;
| + | |
− | end
| + | |
− | print(str);
| + | |
− | else
| + | |
− | --- Second and later lines ---
| + | |
− | local map = {};
| + | |
− | if (string.sub(line,1,1) == 'R') then
| + | |
− | line = string.sub(line,2);
| + | |
− | --- Create reverse mapping
| + | |
− | for k, v in string.gmatch(line, "(%d%d?) (%d%d?) %d?%d? ?;") do
| + | |
− | map[v] = k;
| + | |
− | end
| + | |
− | else
| + | |
− | --- Create standard mapping
| + | |
− | for k, v in string.gmatch(line, "(%d%d?) (%d%d?) %d?%d? ?;") do
| + | |
− | map[k] = v;
| + | |
− | end
| + | |
− | end
| + | |
− | --- Leave only positions that can be mapped
| + | |
− | local list2 = {};
| + | |
− | local str = "";
| + | |
− | for k, v in pairs(list) do
| + | |
− | if (map[k] ~= nil)
| + | |
− | then list2[map[k]] = map[k];
| + | |
− | str = str .. "<br/>" .. k .. "->" .. map[k];
| + | |
− | end
| + | |
− | end
| + | |
− | print(str); -- output 3rd line
| + | |
− | list = list2;
| + | |
− | end
| + | |
− | local str = "";
| + | |
− | for k, v in pairs(list) do
| + | |
− | str = str .. k .. "<br/>";
| + | |
− | end
| + | |
− | print(str); -- output 4th line
| + | |
− | end
| + | |
− | end
| + | |
− | |{{#repeat:Pathway/Mapping|1|{{#cdr:{{{list}}}|&&}}|&&}}
| + | |
− | }} | + | |
− | }}
| + | |
− | |}
| + | |