File tree Expand file tree Collapse file tree 4 files changed +58
-0
lines changed
Expand file tree Collapse file tree 4 files changed +58
-0
lines changed Original file line number Diff line number Diff line change 1+ > seq 1
2+ ACT---NCT
3+ > seq2
4+ ACTACTA!T
Original file line number Diff line number Diff line change 1+ > seq 1
2+ ACTRCT
3+ > seq2
4+ ACTactAT
Original file line number Diff line number Diff line change 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+
Original file line number Diff line number Diff line change 1+ > seq 1
2+ ACT---RCT
3+ > seq2
4+ ACTactA!T
You can’t perform that action at this time.
0 commit comments