2011-07-07 13 views
5

का उपयोग कर सादा पाठ और लेखन से एक्सएमएल में जानकारी निकालना वर्तमान में, मैं ग्लाइकोबायोलॉजी के क्षेत्र में कुछ प्रारूप रूपांतरण उपकरण तैयार कर रहा हूं। स्वरूप रूपांतरण में टेक्स्ट फ़ाइल से एक XML फ़ाइल में जाना शामिल है जो फ़ील्ड में मानक है। अधिकांश समय, हमारे द्वारा प्राप्त डेटा में नीचे की तरह एक सादा पाठ फ़ाइल में रुचि की जानकारी होती है। वास्तविक फ़ाइल में यह सब एक पंक्ति में है। जानकारी प्राप्त करने के लिए इस पाठ को पढ़ना और विभाजित करना मुश्किल है (शायद सहज नहीं है) लेकिन एक्सएमएल वह समस्या है जहां समस्या है।डीओएम

[][b-D-GlcpNAc] 
    {[(4+1)][b-D-GlcpNAc] 
     {[(4+1)][b-D-Manp] 
      {[(3+1)][a-D-Manp] 
       {[(2+1)][a-D-Manp]{} 
      } 
     [(6+1)][a-D-Manp] 
      {[(3+1)][a-D-Manp]{} 
      [(6+1)][a-D-Manp]{} 
     } 
    } 
} 

इस व्याख्या करने के लिए कैसे:

  1. फार्म की सब कुछ डब्ल्यू-डब्ल्यू-डब्ल्यू + एक चीनी कि एक-दूसरे से जुड़ा हुआ है। लिंकेज घुंघराले द्वारा दिखाया गया है {।
  2. 4 + 1, 3 + 1 और इसी तरह यह इंगित करता है कि एक चीनी पर कौन सा कार्बन बंधन दूसरे के लिए होता है। तो पिछले एक चौथाई कार्बन पहले कार्बन पर पहले कार्बन से जुड़ा हुआ है।
  3. {} यह इंगित करता है कि उस चीनी से जुड़े कोई अतिरिक्त चीनी
  4. } curlies बस उस स्तर को बंद करें।

आप शायद एक्सएमएल पढ़ सकते हैं और पता लगा सकते हैं कि लिंक कैसे काम करते हैं। लेकिन अगर आप अधिक विस्तृत स्पष्टीकरण पसंद करेंगे, तो बस पूछें।

एक्सएमएल जैसा दिखना चाहिए नीचे दिखाया गया है।

<?xml version="1.0" encoding="UTF-8"?> 
<GlydeII> 
    <molecule subtype="glycan" id="From_GlycoCT_Translation"> 
      <residue subtype="base_type" partid="1" ref="http://www.monosaccharideDB.org/GLYDE-II.jsp?G=b-dglc-HEX-1:5" /> 
      <residue subtype="substituent" partid="2" ref="http://www.monosaccharideDB.org/GLYDE-II.jsp?G=n-acetyl" /> 
      <residue subtype="base_type" partid="3" ref="http://www.monosaccharideDB.org/GLYDE-II.jsp?G=b-dglc-HEX-1:5" /> 
      <residue subtype="substituent" partid="4" ref="http://www.monosaccharideDB.org/GLYDE-II.jsp?G=n-acetyl" /> 
      <residue subtype="base_type" partid="5" ref="http://www.monosaccharideDB.org/GLYDE-II.jsp?G=b-dman-HEX-1:5" /> 
      <residue subtype="base_type" partid="6" ref="http://www.monosaccharideDB.org/GLYDE-II.jsp?G=a-dman-HEX-1:5" /> 
      <residue subtype="base_type" partid="7" ref="http://www.monosaccharideDB.org/GLYDE-II.jsp?G=a-dman-HEX-1:5" /> 
      <residue subtype="base_type" partid="8" ref="http://www.monosaccharideDB.org/GLYDE-II.jsp?G=a-dman-HEX-1:5" /> 
      <residue subtype="base_type" partid="9" ref="http://www.monosaccharideDB.org/GLYDE-II.jsp?G=a-dman-HEX-1:5" /> 
      <residue subtype="base_type" partid="10" ref="http://www.monosaccharideDB.org/GLYDE-II.jsp?G=a-dman-HEX-1:5" /> 
      <residue_link from="2" to="1"> 
       <atom_link from="N1H" to="C2" to_replace="O2" bond_order="1" /> 
      </residue_link> 
      <residue_link from="3" to="1"> 
       <atom_link from="C1" to="O4" from_replace="O1" bond_order="1" /> 
      </residue_link> 
      <residue_link from="4" to="3"> 
       <atom_link from="N1H" to="C2" to_replace="O2" bond_order="1" /> 
      </residue_link> 
      <residue_link from="5" to="3"> 
       <atom_link from="C1" to="O4" from_replace="O1" bond_order="1" /> 
      </residue_link> 
      <residue_link from="6" to="5"> 
       <atom_link from="C1" to="O3" from_replace="O1" bond_order="1" /> 
      </residue_link> 
      <residue_link from="7" to="6"> 
       <atom_link from="C1" to="O2" from_replace="O1" bond_order="1" /> 
      </residue_link> 
      <residue_link from="8" to="5"> 
       <atom_link from="C1" to="O6" from_replace="O1" bond_order="1" /> 
      </residue_link> 
      <residue_link from="9" to="8"> 
       <atom_link from="C1" to="O3" from_replace="O1" bond_order="1" /> 
      </residue_link> 
      <residue_link from="10" to="8"> 
       <atom_link from="C1" to="O6" from_replace="O1" bond_order="1" /> 
      </residue_link> 
    </molecule> 
</GlydeII> 

अब तक मैं सभी अवशेष क्षेत्रों को प्राप्त करने में सक्षम हूं और उन्हें एक्सएमएल में लिखा है। लेकिन मुझे residue_link फ़ील्ड के लिए छद्म कोड लिखने में भी परेशानी हो रही है। भले ही मैं एक्सएमएल में लिंकेज जानकारी जोड़ने के बारे में मदद और विचार प्राप्त कर सकूं, मैं इसकी सराहना करता हूं।

+0

मुझे लगता है कि आप एक घुंघराले ब्रैकेट खो रहे हैं। क्या आप स्रोत टेक्स्ट के बेहतर दृश्य स्पष्टीकरण के लिए कोड स्वरूपण, नई लाइनें और इंडेंटेशन का उपयोग कर सकते हैं? – Udi

+0

[] के लिए क्या खड़ा है? – Udi

+0

निश्चित रूप से, मैं आंखों के दर्द के लिए क्षमा चाहता हूं। – arkestra

उत्तर

1

ठीक है! कूल समस्या, यह मेरे दिमाग को एक अच्छे तरीके से दर्द देती है।

पहले ... मेरे विवेक के लिए मैं एक तरह से करता है कि भावना में अपने कच्चे डेटा टैब:

[][b-D-GlcpNAc] { 
    [(4+1)][b-D-GlcpNAc] { 
     [(4+1)][b-D-Manp] { 
      [(3+1)][a-D-Manp] { 
       [(2+1)][a-D-Manp] { } 
      } 
      [(6+1)][a-D-Manp] { 
       [(3+1)][a-D-Manp] { } 
       [(6+1)][a-D-Manp] { } 
      } 
     } 
    } 

मुझे लगता है कि यह करने के लिए महत्वपूर्ण पता लगाना है कि क्या जोड़े हैं, और आप प्रोग्राम करना चाहते हैं पता लगाएं कि आप किस स्तर पर हैं।

स्यूडोकोड:

hierarchy = 0 
nextChar = getNextChar() 
while (Parsing): 
    if (nextChar = "{"): 
     hierarchy += 1 
    elif (nextChar = "}"): 
     hierarchy -= 1 
    if (nextChar = "["): 
     storeSugar(hierarchy) 

तुम भी ट्रैक जिनमें से चीनी पिछले "जनक" चीनी है रखना चाहते हैं चाहते हैं।

+0

एचएम ... तो मेरे पास इस सेट की तरह कुछ है। मुझे अपने सुझाव के बारे में और सोचने दो। मुझे इसे लागू करने का एक तरीका पता लगाने में सक्षम होना चाहिए। धन्यवाद। – arkestra

संबंधित मुद्दे