A Martel grammar to read information from a clustal formatted file
(*.aln).
This uses Andrew Dalke's Martel to do the parsing dirty work for me.
So all we need to do here is set up a big ol' regular expression to let
Martel know what the file looks like.
|
version = Martel.Group("version", Martel.Re("\d.\d\d?"))
|
|
header = Martel.Group("header", Martel.Str("CLUSTAL ")+ Martel...
|
|
seq_id = Martel.Group("seq_id", Martel.Re("[-a-zA-Z:;^_'\",\+\...
|
|
seq_space = Martel.Group("seq_space", Martel.Re("[ ]+"))
|
|
seq_info = Martel.Group("seq_info", Martel.Re("[-a-zA-Z.]+"))
|
|
seq_num = Martel.Group("seq_num", Martel.Re("[ ]+")+ Martel.Re...
|
|
seq_line = Martel.Group("seq_line", seq_id+ seq_space+ seq_inf...
|
|
match_stars = Martel.Group("match_stars", Martel.Re("[ :\.\*]+...
|
|
new_block = Martel.Group("new_block", Martel.AnyEol())
|
|
block_info = Martel.Group("block_info", Martel.Rep1(seq_line)+...
|
|
format = Martel.Group("clustalx", header+ Martel.Rep1(block_in...
|