File: primersearch_format.py

package info (click to toggle)
python-biopython 1.42-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 17,584 kB
  • ctags: 12,272
  • sloc: python: 80,461; xml: 13,834; ansic: 7,902; cpp: 1,855; sql: 1,144; makefile: 203
file content (50 lines) | stat: -rw-r--r-- 2,040 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
"""Martel format for primersearch output files,
"""
import Martel

blank_line = Martel.AnyEol()

# Primer name D1S2660
primer_name = Martel.Group("primer_name",
                           Martel.ToEol())
primer_name_line = Martel.Str("Primer name ") + primer_name

# Amplimer 1
amplifier = Martel.Group("amplifier",
                         Martel.Re("[\d]+"))
amplimer_line = Martel.Str("Amplimer ") + amplifier + Martel.AnyEol()

# Sequence: AC074298 AC074298
# Telomere associated sequence for Arabidopsis thaliana TEL1N
# CCGGTTTCTCTGGTTGAAAA hits forward strand at 114 with 0 mismatches
# TCACATTCCCAAATGTAGATCG hits reverse strand at [114] with 0 mismatches
seq_indent = Martel.Str("\t")

sequence_id = Martel.Group("sequence_id",
                           Martel.ToEol())
sequence_descr = Martel.Group("sequence_descr",
                              Martel.ToEol())
sequence_info = sequence_id + sequence_descr
forward_strand_info = Martel.Group("forward_strand_info",
                                   Martel.ToEol())
reverse_strand_info = Martel.Group("reverse_strand_info",
                                   Martel.ToEol())
amplifier_sequence = Martel.Group("amplifier_sequence",
                                  sequence_info + 
                                  forward_strand_info +
                                  reverse_strand_info)
amplifier_sequence_lines = seq_indent + Martel.Str("Sequence: ") + \
                           amplifier_sequence

amplifier_length = Martel.Group("amplifier_length", 
                                Martel.Re("[\d]+"))
amplifier_length_line = seq_indent + Martel.Str("Amplimer length: ") + \
                        amplifier_length + Martel.Str(" bp") + \
                        Martel.AnyEol()

record = Martel.Group("primersearch_record",
                      Martel.Rep1(blank_line + primer_name_line +
                        Martel.Rep(amplimer_line +
                                   amplifier_sequence_lines +
                                   amplifier_length_line)))