Doc:MassBank/PPR

From Metabolomics.JP
(Difference between revisions)
Jump to: navigation, search
m
 
(23 intermediate revisions by one user not shown)
Line 1: Line 1:
 +
{{MassBank/Header}}
 +
__NOTOC__
 
=How to Create Precursor-Product Page=
 
=How to Create Precursor-Product Page=
まず以下のスロットにイオンのリストを半角スペース区切りで質量の降順に入力してください。
 
  
{{#formtag:form|method="post" action="/wiki/Doc:MassBank/PPR"|
+
;Step1
 +
:作成するページ名が決まったら、ブラウザのhttpアドレスに
 +
<pre>http://metabolomics.jp/wiki/MassBank:ページ名</pre>
 +
と入力してください。Edit this pageというリンクを押すとページの編集画面になります。
  
{{#formtag:input|type="text" name="Ions" size="60" value="C6H12 C7H10"}}
+
<br/>
 +
;Step2
 +
:ブラウザの別タブ上でこのページにアクセスし、下のスロットに観測されたイオンのリスト入力します。半角スペース区切りで質量の降順に入力してください。(入力サンプルは消してしまってOKです。)その後、Createボタンを押してください。
  
 +
{{#formtag:form|method="post" action="/wiki/Doc:MassBank/PPR"|
 +
{{#formtag:input|type="text" name="Ions" size="60" value="C4H10NO2 C4H7O2 C4H8NO C4H5O"}}
 
{{#formtag:input|type="submit" value="Create"}}
 
{{#formtag:input|type="submit" value="Create"}}
{{#formtag:input|type="reset" value="Reset"}}
 
 
}}
 
}}
  
 +
<br/>
 +
;Step3
 +
:ボタンを押した後に、以下に生成される文字列がページソースの基本です。新規作成したページのソースとしてSaveしてください。Internet Explorerでは行末にスペースが入ってしまいます。&&組成式&&組成式..&&となっているイオン列の行だけは、最後のスペースを除去して入力するようにお願いします。
 +
 +
<nowiki>{{MassBank/Matrix|data=</nowiki><br/>
 +
{{#lua: <!----make sure that parameters are the same as in Template:MassBank/Matrix --->
 +
  FORMULA_PAT = "(C?[1-9]?[0-9]?)(H?[1-9]?[0-9]?)(C?l?[2-9]?)(F?[2-9]?)(I?[2-9]?)(N?[1-9]?[0-9]?)(O?[1-9]?[0-9]?)(P?[2-9]?)(S?[2-9]?)";
 +
  FORMULA_CHAR = "CHFINOPSl0-9";
 +
  ATOM = {"C", "H", "Cl", "F", "I", "N", "O", "P", "S"};
 +
  MASS = {12, 1, 35, 19, 127, 14, 16, 31, 32};
 +
 +
  function toFormula(t)
 +
    for i,v in pairs(t) do
 +
      if (v == "")
 +
      then t[i] = 0
 +
      else if (v == ATOM[i])
 +
        then t[i] = 1
 +
        else t[i]=tonumber(string.sub(v,1+string.len(ATOM[i])))
 +
        end
 +
      end
 +
    end
 +
    return t
 +
  end
 +
 +
  function mass(str)
 +
    local t = toFormula({string.match(str,FORMULA_PAT)})
 +
    ret = 0;
 +
    for i,v in pairs(t) do
 +
      ret = ret + t[i] * MASS[i]
 +
    end
 +
    return ret;
 +
  end
 +
 +
  function diff(str1, str2)
 +
    ---computes str1 - str2. If negative, returns nil.---
 +
    local t1 = toFormula({string.match(str1,FORMULA_PAT)})
 +
    local t2 = toFormula({string.match(str2,FORMULA_PAT)})
 +
    for i,_ in pairs(t1) do
 +
      if (t1[i] < t2[i]) then return nil else t1[i] = t1[i]-t2[i] end
 +
    end
 +
    local ret = "";
 +
    for i,v in pairs(t1) do
 +
      if (v >= 1) then ret = ret .. ATOM[i] end
 +
      if (v > 1) then ret = ret .. v end
 +
    end
 +
    return ret
 +
  end
 +
 +
  local list = {}
 +
  local x = nil
 +
  for formula in stdin:gmatch("([%S]+)") do
 +
    if (x ~= nil and mass(formula) > mass(x)) then
 +
      print('<span style="color:red">Illegal ion order (check mass!): '..x..' < '..formula..'</span><br/>')
 +
    end
 +
    x = formula
 +
    table.insert(list, formula)
 +
  end
 +
  print("&&"..table.concat(list,"&&").."&&")
 +
 +
  for i=1,table.getn(list)-1 do
 +
    label = false
 +
    str = "&&"..list[i]..":"
 +
    for j=i+1,table.getn(list) do
 +
      if (diff(list[i],list[j])) then
 +
        str = str.." "..list[j]
 +
        label = true
 +
      end
 +
    end
 +
    if (label) then print("\n"..str) end
 +
  end
 +
 +
|{{#get:Ions}}
 +
}}
 +
<nowiki>}}</nowiki>
 +
 +
=How to Write Annotations=
 +
<pre>
 +
{{MassBank/Matrix|data=
 +
&&C7H14NO3&&C7H11O3&&C5H8NO2&&C4H8NO2&&C7H13&&C4H10NO&&C6H11&&C6H7&&C4H7O&&C5H9&&C3H8N&&C4H7&&
 +
 +
&&C7H14NO3:C7H11O3
 +
この行はコメントです。ソースを見てもらえればわかりますが、任意の行数を書くことができます。wikitableの中に配置するので、箇条書きや簡単な見出し表示
 +
#例えばこんな感じ
 +
#も可能です。
 +
; Sample
 +
: This is a pen.
 +
:: This is a pen.
 +
::: This is a pen.
 +
ただし、全てがwiki関数の中で処理されるため表などは作れません。もちろん英語表記もOKです。
 +
コメント中に使えない文字列は、半角の|と~です。
 +
&&C7H14NO3: C4H8NO2 C4H10NO C3H8NP
 +
&&C4H10NO: C3H8N
 +
この行はコメントです。
 +
&&C4H10NO: C4H7
 +
この行は再びコメントです。PPテーブルとwikiテーブルは親イオンに相当する最左列を縦にまとめて表示しない点が異なりますが、まとめてしまうと表全体を列毎にソートすることができないので、縦に列をまとめない仕様にしています。
 +
}}
 +
</pre>
 +
は以下のアノテーションを出力します。
 +
=Annotations=
 +
{{#replace:
 
{{#lua:
 
{{#lua:
print( "({{#get:Ions}})")
+
  ---print comments---
|}}
+
  FORMULA_CHAR = "CHFINOPSl0-9"
 +
  FORMULA_PAT = "(C?[1-9]?[0-9]?)(H?[1-9]?[0-9]?)(C?l?[2-9]?)(F?[2-9]?)(I?[2-9]?)(N?[1-9]?[0-9]?)(O?[1-9]?[0-9]?)(P?[2-9]?)(S?[2-9]?)"
 +
  ATOM = {"C", "H", "Cl", "F", "I", "N", "O", "P", "S"}
 +
  MASS = {12, 1, 35, 19, 127, 14, 16, 31, 32}
 +
 
 +
  function toFormula(t)
 +
    for i,v in pairs(t) do
 +
      if (v == "")
 +
      then t[i] = 0
 +
      else if (v == ATOM[i])
 +
        then t[i] = 1
 +
        else t[i]=tonumber(string.sub(v,1+string.len(ATOM[i])))
 +
        end
 +
      end
 +
    end
 +
    return t
 +
  end
 +
 
 +
  function mass(str)
 +
    local t = toFormula({string.match(str,FORMULA_PAT)})
 +
    ret = 0;
 +
    for i,v in pairs(t) do
 +
      ret = ret + t[i] * MASS[i]
 +
    end
 +
    return ret;
 +
  end
 +
 
 +
  ret = ""
 +
  comment = "";
 +
  head = "";
 +
  tail = "";
 +
  for line in stdin:gmatch("[%S ,]+") do
 +
    repeat
 +
    if (string.find(line, "^&&[&%a%d]+&&$") ~= nil) then break end
 +
    local h, t = string.match(line, "^&&(["..FORMULA_CHAR.."]+) *: *(["..FORMULA_CHAR.." ]+)$");
 +
    if (h ~= nil and t ~= nil) then
 +
      if (comment ~= "") then
 +
        ret = ret .."~-\n~~"..head.." ('''"..mass(tail).."''')".." ~~ "..tail.." ('''"..mass(tail).."''')".."\n~~ "..comment.."\n"
 +
        comment = ""
 +
      end
 +
      head = h; tail = t
 +
      break
 +
    end
 +
    ---comment lines---
 +
    comment = comment .. line.."\n"
 +
    until true
 +
  end
 +
  ---process the last comment (head=precursor, tail=product)---
 +
  if (comment ~= "") then
 +
    ret = ret .. "~-\n~~"..head.." ('''"..mass(head).."''')".." ~~ "..tail.." ('''"..mass(tail).."''')".."\n~~ "..comment.."\n"
 +
  end
 +
  if (ret ~= "") then
 +
    ret = '{~ class="wikitable sortable"\n!Precursor~~Product~~Comments\n'.. ret ..'~}'
 +
    print(ret)
 +
  end
 +
|
 +
&&C7H14NO3&&C7H11O3&&C5H8NO2&&C4H8NO2&&C7H13&&C4H10NO&&C6H11&&C6H7&&C4H7O&&C5H9&&C3H8N&&C4H7&&
 +
 
 +
&&C7H14NO3:C7H11O3
 +
この行はコメントです。ソースを見てもらえればわかりますが、任意の行数を書くことができます。wikitableの中に配置するので、箇条書きや簡単な見出し表示
 +
#例えばこんな感じ
 +
#も可能です。
 +
; Sample
 +
: This is a pen.
 +
:: This is a pen.
 +
::: This is a pen.
 +
ただし、全てがwiki関数の中で処理されるため表などは作れません。もちろん英語表記もOKです。
 +
コメント中に使えない文字列は、半角の|と~です。
 +
&&C7H14NO3:C4H8NO2 C4H10NO C3H8NP
 +
&&C4H10NO: C3H8N
 +
この行はコメントです。
 +
&&C4H10NO: C4H7
 +
この行は再びコメントです。PPテーブルとwikiテーブルは親イオンに相当する最左列を縦にまとめて表示しない点が異なりますが、まとめてしまうと表全体を列毎にソートすることができないので、縦に列をまとめない仕様にしています。
 +
}}
 +
|~|{{#bar:}}}}

Latest revision as of 10:30, 28 October 2010

General Index

All Molecules
KOX PR PBX COX

Ion Frequency Prec.-Product Neutral Loss Help

[edit] How to Create Precursor-Product Page

Step1
作成するページ名が決まったら、ブラウザのhttpアドレスに
http://metabolomics.jp/wiki/MassBank:ページ名

と入力してください。Edit this pageというリンクを押すとページの編集画面になります。


Step2
ブラウザの別タブ上でこのページにアクセスし、下のスロットに観測されたイオンのリスト入力します。半角スペース区切りで質量の降順に入力してください。(入力サンプルは消してしまってOKです。)その後、Createボタンを押してください。


Step3
ボタンを押した後に、以下に生成される文字列がページソースの基本です。新規作成したページのソースとしてSaveしてください。Internet Explorerでは行末にスペースが入ってしまいます。&&組成式&&組成式..&&となっているイオン列の行だけは、最後のスペースを除去して入力するようにお願いします。

{{MassBank/Matrix|data=
&&&&

}}

[edit] How to Write Annotations

{{MassBank/Matrix|data=
&&C7H14NO3&&C7H11O3&&C5H8NO2&&C4H8NO2&&C7H13&&C4H10NO&&C6H11&&C6H7&&C4H7O&&C5H9&&C3H8N&&C4H7&&

&&C7H14NO3:C7H11O3
この行はコメントです。ソースを見てもらえればわかりますが、任意の行数を書くことができます。wikitableの中に配置するので、箇条書きや簡単な見出し表示
#例えばこんな感じ
#も可能です。
; Sample
: This is a pen.
:: This is a pen.
::: This is a pen.
ただし、全てがwiki関数の中で処理されるため表などは作れません。もちろん英語表記もOKです。
コメント中に使えない文字列は、半角の|と~です。
&&C7H14NO3: C4H8NO2 C4H10NO C3H8NP
&&C4H10NO: C3H8N
この行はコメントです。
&&C4H10NO: C4H7
この行は再びコメントです。PPテーブルとwikiテーブルは親イオンに相当する最左列を縦にまとめて表示しない点が異なりますが、まとめてしまうと表全体を列毎にソートすることができないので、縦に列をまとめない仕様にしています。
}}

は以下のアノテーションを出力します。

[edit] Annotations

Precursor Product Comments
C7H14NO3 (143) C7H11O3 (143) この行はコメントです。ソースを見てもらえればわかりますが、任意の行数を書くことができます。wikitableの中に配置するので、箇条書きや簡単な見出し表示
  1. 例えばこんな感じ
  2. も可能です。
Sample
This is a pen.
This is a pen.
This is a pen.

ただし、全てがwiki関数の中で処理されるため表などは作れません。もちろん英語表記もOKです。 コメント中に使えない文字列は、半角の|と~です。

C4H10NO (58) C3H8N (58) この行はコメントです。
C4H10NO (88) C4H7 (55) この行は再びコメントです。PPテーブルとwikiテーブルは親イオンに相当する最左列を縦にまとめて表示しない点が異なりますが、まとめてしまうと表全体を列毎にソートすることができないので、縦に列をまとめない仕様にしています。
Personal tools
Namespaces

Variants
Actions
Navigation
metabolites
Toolbox