Exemplo n.º 1
0
                      #   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("=") +
Exemplo n.º 2
0
## 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+="))) + \