Obecnie projektuję niektóre narzędzia do konwersji formatu w dziedzinie glikobiologii. Konwersja formatu polega na przechodzeniu z pliku tekstowego do pliku XML, który jest standardem w tej dziedzinie. W większości przypadków dane, które otrzymujemy, zawierają interesujące informacje w pliku tekstowym, jak poniżej. Rzeczywisty plik zawiera wszystko w jednym wierszu. Czytanie i dzielenie tego tekstu w celu uzyskania informacji jest banalne (prawdopodobnie nie intuicyjne), ale XML jest tam, gdzie jest problem.Wyodrębnianie informacji z zwykłego tekstu i pisanie do XML przy użyciu DOM
[][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]{}
}
}
}
Jak interpretować następująco:
- Wszystko formularza W-W-w + jest cukrem, który jest powiązany z innym. Powiązanie jest pokazane przez kręcone {.
- 4 + 1, 3 + 1 i tak dalej wskazują, które wiązania węglowe jednego cukru na drugie. Zatem czwarty węgiel na poprzednim łączy się z pierwszym węglem na następnym.
- {} Oznacza to brak dodatkowego cukru związanego z tym cukrem
- } Lokówki właśnie zamykają ten poziom.
Prawdopodobnie można odczytać kod XML i dowiedzieć się, jak działają powiązania. Ale jeśli wolisz bardziej szczegółowe wyjaśnienie, po prostu zapytaj.
Wygląd XML powinien wyglądać tak, jak pokazano poniżej.
<?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>
Do tej pory byłem trywialnie w stanie uzyskać wszystkie pola pozostałości i zapisałem je do XML. Ale mam problem nawet przy pisaniu pseudo kodu dla pól residue_link. Nawet jeśli mogę uzyskać pomoc i pomysły dotyczące dodawania informacji o powiązaniach w xml, byłbym wdzięczny.
Chyba brakuje Ci nawiasu klamrowego. Czy możesz użyć formatowania kodu, nowych linii i wcięcia dla lepszego wizualnego wyjaśnienia tekstu źródłowego? – Udi
Co [] oznacza? – Udi
Jasne, przepraszam za ból oczu. – arkestra