/
Parse_Ace.py
executable file
·30 lines (27 loc) · 1.03 KB
/
Parse_Ace.py
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
from Bio.Sequencing import Ace
import re
class Parser:
def __init__(self,ace_file):
self.ace_file = ace_file
self.records = Ace.read(open(ace_file, 'r'))
assert len(self.records.contigs)==1
self.contig = self.records.contigs[0]
self.consensus = self.contig.sequence
self.consensus_name = self.contig.name
self.number_sequences = len(self.contig.reads)
self.reference = ""
self.reference_name = ""
def get_sequence(self,index):
start = 0
sequence = ""
text = self.contig.reads[index].rd.name
# Find Reference
match = re.search("ref",text)
if match or len(self.contig.reads[index].rd.sequence)==len(self.contig.sequence):
self.reference = self.contig.reads[index].rd.sequence
self.reference_name = text
return -1,"REFERENCE"
###
start = self.contig.af[index].padded_start
sequence = self.contig.reads[index].rd.sequence
return start,sequence