コード例 #1
0
internal_oligo_seq = Martel.Group("internal_seq", sequence)
internal_line = Martel.Group(
    "internal_line", primer_space + Martel.Str("INTERNAL OLIGO") + any_space +
    internal_oligo_start + any_space + internal_oligo_length + any_space +
    internal_oligo_tm + any_space + internal_oligo_gc + any_space +
    internal_oligo_seq + Martel.AnyEol())

# XXX This record definition is ugly. But it works :-)
record = Martel.Group("primer3_record",
                      comments + \
                        Martel.Alt(
                         # case 1. primer file with nothing
                         Martel.Str("\n" * 3) +
                         Martel.Opt(Martel.Str("\n" * 4)),
                         # case 2. some primers have been picked
                         Martel.Rep(
                           # case 2a. we are designing a primer pair
                           Martel.Alt(blank_line + primer_start_line,
                           # case 2b. we are designing a single primer
                                      single_primer_line) +
                           # case 2a. both primer pairs
                           Martel.Alt(forward_line + blank_line +
                                      reverse_line + blank_line,
                           # case 2b1. Reverse primer
                                      reverse_line + blank_line,
                           # case 2b2, Forward primer
                                      forward_line + blank_line,
                           # case 2b3, Internal oligo
                                      internal_line + blank_line)) +
                           blank_line + blank_line + Martel.Rep(blank_line)))
コード例 #2
0
ファイル: swissprot38.py プロジェクト: manucorreia/biopython
                       "(?P<primary_identifier>[^;]+); " \
                       "(?P<secondary_identifier>([^.\R]|(?!.\R)\.)+)")

DR_prosite = Martel.Re("(?P<database_identifier>(PROSITE|PFAM)); " \
                       "(?P<primary_identifier>[^;]+); " \
                       "(?P<secondary_identifier>[^;]+); " \
                       "(?P<status_identifier>[^.]+)")

DR_embl = Martel.Re("(?P<database_identifier>EMBL); " \
                    "(?P<primary_identifier>[^;]+); " \
                    "(?P<secondary_identifier>[^;]+); " \
                    "(?P<status_identifier>[^.]+)")

DR = Martel.Group("DR", Martel.Str("DR   ") + \
           Martel.Group("database_reference",
                        Martel.Alt(DR_embl, DR_prosite, DR_general)) + \
           Martel.Str(".") + Martel.AnyEol())

DR_block = Martel.Group("DR_block", Martel.Rep1(DR))

#--- KW

KW = Simple("KW", "keyword")
KW_block = Martel.Group("KW_block", Martel.Rep1(KW))

#--- FT

# FT   DOMAIN       77     88       ASP/GLU-RICH (ACIDIC).
# 123456789012345678901234567890123456789012345678901234567890123456789012345
#          1         2         3         4         5         6         7
# FT   ........ ...... ......       .........................................