# SOURCE field (XXX not in # http://www.ncbi.nlm.nih.gov/collab/FT/index.html ) "usedin", # Indicates that feature is used in a compound # feature in another entry "variety", # Variety from which sequence was obtained "virion", # Viral genomic sequence as it is encapsidated # (distinguished from its proviral form integrated # in a host cell's chromosome) ) feature_qualifiers = map(Martel.Str, feature_qualifier_names) # qualifiers escape quotes using double quotes quote = Martel.Str('"') quoted_chars = Std.feature_qualifier_description(Martel.Re(r'([^"\R]|"")*')) quoted_string = (quote + quoted_chars + Martel.Rep(Martel.AnyEol() + qualifier_space + quoted_chars) + quote + Martel.AnyEol()) unquoted_string = Martel.AssertNot(quote) + \ Std.feature_qualifier_description(Martel.UntilEol()) + \ Martel.AnyEol() qualifier = Std.feature_qualifier( qualifier_space + Martel.Str("/") + Std.feature_qualifier_name(Martel.Alt(*feature_qualifiers)) + (Martel.AnyEol() | # '/pseudo' (Martel.Str("=") +
## FH - feature table header (0 or 2 per entry) FH_block = Martel.Str("FH Key Location/Qualifiers") + \ Martel.AnyEol() + \ Martel.Str("FH") + \ Martel.AnyEol() ## FT - feature table data (>=0 per entry) ##FT_line = Martel.Str("FT ") + \ ## Martel.ToEol("ft_data") ##FT_block = Martel.Rep1(FT_line) fq_dbxref = Std.feature_qualifier_name(Martel.Str("db_xref")) + \ Martel.Str('=') + \ Std.feature_qualifier_description( Martel.Str('"') + \ Std.dbxref(Std.dbxref_dbname(Martel.UntilSep(None, ":")) + \ Martel.Str(":") + \ Std.dbxref_dbid(Martel.UntilSep(None, '"'))) + \ Martel.Str('"')) + \ Martel.AnyEol() fq_generic = \ Martel.Assert(Martel.Word() + Martel.Str("=")) + \ Std.feature_qualifier_name(Martel.Word()) + \ Martel.Str("=") + \ Std.feature_qualifier_description(Martel.UntilEol()) + \ Martel.AnyEol() + \ Martel.Rep( Martel.Str("FT ") + \ (Martel.AssertNot(Martel.Str("/")) | Martel.AssertNot(Martel.Re(r"/\w+="))) + \