Martel based parser to read MetaTool output files.
This is a huge regular regular expression for MetaTool 3.5 output,
built using the 'regular expressiona on steroids' capabilities of
Martel.
This helps us have endlines be consistent across platforms.
|
blank = ' '
|
|
tab = ' \t '
|
|
blank_space = MaxRepeat(Any(blank+ tab), 1, 80)
|
|
optional_blank_space = Rep(Any(blank+ tab))
|
|
white_space = ' \t\n\r '
|
|
blank_line = optional_blank_space+ AnyEol()
|
|
lower_case_letter = Group("lower_case_letter", Any("abcdefghij...
|
|
digits = ' 0123456789 '
|
|
enzyme = Group("enzyme", optional_blank_space+ Digits()+ optio...
|
|
reaction = Group("reaction", optional_blank_space+ Digits()+ o...
|
|
not_found_line = Group("not_found_line", optional_blank_space+...
|
|
enzymes_header = Group("enzymes_header", optional_blank_space+...
|
|
enzymes_list = Group("enzymes_list", Alt(Rep1(enzyme), not_fou...
|
|
enzymes_block = Group("enzymes_block", enzymes_header+ Rep(bla...
|
|
reactions_header = Group("reactions_header", optional_blank_sp...
|
|
reactions_list = Group("reactions_list", Alt(Rep1(reaction), n...
|
|
reactions_block = Group("reactions_block", reactions_header+ R...
|
|
rev = Group("rev", Opt(lower_case_letter))
|
|
version = Group("version", Digits("version_major")+ Any(".")+ ...
|
|
metatool_tag = Str("METATOOL OUTPUT")
|
|
metatool_line = Group("metatool_line", metatool_tag+ blank_spa...
|
|
input_file_tag = Str("INPUT FILE:")
|
|
input_file_line = Group("input_file_line", input_file_tag+ bla...
|
|
metabolite_count_tag = Str("INTERNAL METABOLITES:")
|
|
metabolite_count_line = Group("metabolite_count_line", metabol...
|
|
reaction_count_tag = Str("REACTIONS:")
|
|
reaction_count_line = Group("reaction_count_line", reaction_co...
|
|
type_metabolite = Group("type_metabolite", Alt(Str("int"), Str...
|
|
metabolite_info = Group("metabolite_info", optional_blank_spac...
|
|
metabolite_line = Group("metabolite_line", metabolite_info+ To...
|
|
metabolites_summary = Group("metabolites_summary", optional_bl...
|
|
metabolites_block = Group("metabolites_block", Rep1(metabolite...
|
|
graph_structure_heading = Group("graph_structure_heading", opt...
|
|
graph_structure_line = Group("graph_structure_line", optional_...
|
|
graph_structure_block = Group("graph_structure_block", graph_s...
|
|
sum_is_constant_line = Group("sum_is_constant_line", optional_...
|
|
sum_is_constant_block = Group("sum_is_constant_block", Rep(sum...
|
|
stoichiometric_tag = Group("stoichiometric_tag", Str("STOICHIO...
|
|
stoichiometric_line = Group("stoichiometric_line", stoichiomet...
|
|
not_balanced_tag = Group("not_balanced_tag", Str("NOT BALANCED...
|
|
not_balanced_line = Group("not_balanced_line", not_balanced_ta...
|
|
subsets_tag = Group("subsets_tag", Str("SUBSETS OF REACTIONS"))
|
|
subsets_line = Group("subsets_line", subsets_tag+ ToEol())
|
|
reduced_system_tag = Group("reduced_system_tag", Str("REDUCED ...
|
|
reduced_system_line = Group("reduced_system_line", reduced_sys...
|
|
kernel_tag = Group("kernel_tag", Str("KERNEL"))
|
|
kernel_line = Group("kernel_line", kernel_tag+ ToEol())
|
|
convex_basis_tag = Group("convex_basis_tag", Str("CONVEX BASIS"))
|
|
convex_basis_line = Group("convex_basis_line", convex_basis_ta...
|
|
conservation_relations_tag = Group("conservation_relations_tag...
|
|
conservation_relations_line = Group("conservation_relations_li...
|
|
elementary_modes_tag = Group("elementary_modes_tag", Str("ELEM...
|
|
elementary_modes_line = Group("elementary_modes_line", element...
|
|
num_rows = Group("num_rows", Digits())
|
|
num_cols = Group("num_cols", Digits())
|
|
matrix_header = Group("matrix_header", optional_blank_space+ S...
|
|
matrix_element = Group("matrix_element", Integer())
|
|
matrix_row = Group("matrix_row", MaxRepeat(optional_blank_spac...
|
|
matrix = Group("matrix", MaxRepeat(matrix_row, "num_rows", "nu...
|
|
matrix_block = Group("matrix_block", matrix_header+ matrix)
|
|
irreversible_vector = Group("irreversible_vector", MaxRepeat(b...
|
|
little_gap = Str(" ")
|
|
big_gap = Alt(Str("\t"), MaxRepeat(Str(" "), 2, 80))
|
|
unbalanced_metabolite = Group("unbalanced_metabolite", Rep1(An...
|
|
not_balanced_data = Group("not_balanced_data", optional_blank_...
|
|
metabolite_roles_heading = Group("metabolite_roles_heading", S...
|
|
metabolite_role_cols = Group("metabolite_role_cols", optional_...
|
|
branch_metabolite = Group("branch_metabolite", optional_blank_...
|
|
non_branch_metabolite = Group("non_branch_metabolite", optiona...
|
|
branch_metabolite_block = Group("branch_metabolite_block", met...
|
|
non_branch_metabolite_block = Group("non_branch_metabolite_blo...
|
|
end_stoichiometric = Group("end_stochiometric", Rep(Expression...
|
|
end_not_balanced = Group("end_not_balanced", Rep(Expression.As...
|
|
end_kernel = Group("end_kernel", Rep(Expression.Assert(subsets...
|
|
end_subsets = Group("end_subsets", Rep(Expression.Assert(reduc...
|
|
end_reduced_system = Group("end_reduced_system", Rep(Expressio...
|
|
end_convex_basis = Group("end_convex_basis", Rep(Expression.As...
|
|
end_conservation_relations = Group("end_conservation_relations...
|
|
end_elementary_modes = Group("end_elementary_modes", Rep(ToEol...
|
|
input_file_block = Group("input_file_block", input_file_line+ ...
|
|
metatool_block = Group("metatool_block", metatool_line+ Rep1(b...
|
|
metabolite_count_block = Group("metabolite_count_block", metab...
|
|
reaction_count_block = Group("reaction_count_block", reaction_...
|
|
stoichiometric_block = Group("stoichiometric_block", stoichiom...
|
|
not_balanced_block = Group("not_balanced_block", not_balanced_...
|
|
kernel_block = Group("kernel_block", kernel_line+ Rep(blank_li...
|
|
subsets_block = Group("subsets_block", subsets_line+ Rep(blank...
|
|
reduced_system_block = Group("reduced_system_block", reduced_s...
|
|
convex_basis_block = Group("convex_basis_block", convex_basis_...
|
|
conservation_relations_block = Group("conservation_relations_b...
|
|
elementary_modes_block = Group("elementary_modes_block", eleme...
|
|
metatool_record = Group("metatool_record", metatool_block+ inp...
|