170 likes | 307 Vues
This outline presents a domain-specific language (DSL) developed for protein manipulation, particularly focusing on the Protein Data Bank (PDB) files. The DSL aims to simplify the management and manipulation of protein structures, allowing functionalities such as importing/exporting protein conformations, linking proteins, and inserting segments. The development environment leverages Eclipse and Xtext for code generation and error checking. Future work includes enhancing grammar evolution, optimizing structure, and expanding functionalities for comprehensive protein structure manipulation.
E N D
Protein Manipulation Domain Specific Language Lu Sun Shuo Wu
Outline • Background • Development Environment • Goals of DSL • Grammar model • Grammar • Editor • Code generation • Future work and Conclusion
Background • DSL • General-purpose programming language • C, Java or Python • Domain specific language • SQL, HTML, YACC • Xtext • Define grammar • Xtend • Language execution
Development Environment • Operating System: Windows 7 • Eclipse Integrated with Xtext • JDK 1.7
Goals of DSL • The PDB(Protein Data Bank) file is used to describe protein structures. • An example of PDB files: • Only desceibe the name of the atoms as well as their coordinates. ATOM 1 N GLN A 1 12.606 0.298 -13.791 ATOM 2 CA GLN A 1 13.611 1.223 -13.286 ATOM 3 C GLN A 1 14.099 0.753 -11.915 ATOM 4 O GLN A 1 15.229 1.025 -11.507 ATOM 5 CB GLN A 1 13.013 2.631 -13.203 ATOM 6 CG GLN A 1 13.956 3.685 -12.648 ATOM 7 CD GLN A 1 13.321 5.064 -12.624
Goals of DSL • Our DSL is designed to simplify management and manipulation of the protein description file. • expected functionality: • import and export protein conformations into or from the DSL program. • implement insert and link operations on the protein objects.
Grammer //Declaration of protein • protein p //import a protein conformation from an external file • import 'input.pdb' into p //export a protein conformation into an external file • dump'output.pdb'fromp
Grammer //link two proteins • combine p1 p2 into p //insert a segment into a protein • insertp1(12,33)intop2(124,145)
Grammer declaration operation *The operations can be in any orders
Editor • Eclipse and Xtext automatically generate an editor with code completion and error checking.
Future Work and Conclusion • Grammer Evolution • Add iteration to handle the batch task • Optimize the structure of the grammer • Functionality Evolution • Complete the functionalities • Manipulate protein structure in other ways • Compare a pair of protein’s structure • Conclusion • Natual language like • Easy to use