Skip to content

Commit fb47852

Browse files
committed
script for reporting gaps
1 parent 4714bed commit fb47852

File tree

4 files changed

+58
-0
lines changed

4 files changed

+58
-0
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
> seq 1
2+
ACT---NCT
3+
> seq2
4+
ACTACTA!T
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
> seq 1
2+
ACTRCT
3+
> seq2
4+
ACTactAT
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import sys
2+
3+
def insert_gaps(aligned_file, unaligned_file):
4+
unaligned_seqs = {}
5+
with open(unaligned_file, "r") as unaligned:
6+
seq_name = ""
7+
seq = ""
8+
for line in unaligned:
9+
if line.startswith(">"):
10+
if seq_name:
11+
unaligned_seqs[seq_name] = seq
12+
seq_name = line.strip()
13+
seq = ""
14+
else:
15+
seq += line.strip()
16+
if seq_name:
17+
unaligned_seqs[seq_name] = seq
18+
19+
with open(aligned_file, "r") as aligned:
20+
seq_name = ""
21+
for line in aligned:
22+
if line.startswith(">"):
23+
seq_name = line.strip()
24+
print(line.strip())
25+
else:
26+
aligned_seq = line.strip()
27+
unaligned_seq = unaligned_seqs.get(seq_name, "")
28+
i = 0
29+
res = []
30+
for char in aligned_seq:
31+
if char == "-" or char == "!":
32+
res.append(char)
33+
else:
34+
res.append(unaligned_seq[i])
35+
i += 1
36+
print("".join(res))
37+
38+
if len(sys.argv) != 3:
39+
print("Usage: python insert_gaps.py input_aligned.fasta input_nonaligned.fasta")
40+
sys.exit(1)
41+
42+
aligned_file = sys.argv[1]
43+
unaligned_file = sys.argv[2]
44+
45+
insert_gaps(aligned_file, unaligned_file)
46+
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
> seq 1
2+
ACT---RCT
3+
> seq2
4+
ACTactA!T

0 commit comments

Comments
 (0)