使用 Biopython 通过坐标删除序列
Remove sequence by coordinates with Biopython
你好
我有一个序列,例如:
record_dict = SeqIO.to_dict(SeqIO.parse("sequence.fasta", "fasta"))
>sequence1
AAACCCGGGTTTAAACCCGGGTTTGGGTTTGGG
而且我从这个序列中知道如何 select 坐标为
的特定部分
print(record_dict[sequence1].seq[coordinate_start:coordinate_end])
print(record_dict[sequence1].seq[3:7])
我得到:
CCCGG
但是如果我想从
中删除这部分怎么办?
>sequence1
AAACCCGGGTTTAAACCCGGGTTTGGGTTTGGG
并获得
>sequence1
AAACGTTTAAACCCGGGTTTGGGTTTGGG
有人有想法吗?
感谢您的帮助
这是一个更好的例子
ACCGCTTTGAATCCGAGCTAG
---- ----
我想删除 2 个部分:
TCCG和GCTA同对应坐标
11:14
和 16:19
最后我想删除两者并得到:
>seq
ACCGCTTTGAAAG
您可以将所需的两个部分加在一起来完成此操作:
sequence_1 = 'AAACCCGGGTTTAAACCCGGGTTTGGGTTTGGG'
sequence_1a = sequence_1[:4]
sequence_1b = sequence_1[8:]
sequence_2 = sequence_1a + sequence_1b
print(sequence_2)
>>> AAACGTTTAAACCCGGGTTTGGGTTTGGG
请注意,我在您的两个索引中都加了 1,以便删除正确的部分。
如果您想对多个部分执行此操作,可以通过循环遍历列表来执行此操作:
sequence_1 = 'ACCGCTTTGAATCCGAGCTAG'
indexes_to_delete = [(11, 14), (16, 19)]
output_sequence = ''
start_value = 0
for start_delete, end_delete in indexes_to_delete:
output_sequence += sequence_1[start_value: start_delete]
start_value = end_delete
output_sequence += sequence_1[start_value:]
print(output_sequence)
>>> ACCGCTTTGAAGAAG
你好
我有一个序列,例如:
record_dict = SeqIO.to_dict(SeqIO.parse("sequence.fasta", "fasta"))
>sequence1
AAACCCGGGTTTAAACCCGGGTTTGGGTTTGGG
而且我从这个序列中知道如何 select 坐标为
的特定部分print(record_dict[sequence1].seq[coordinate_start:coordinate_end])
print(record_dict[sequence1].seq[3:7])
我得到:
CCCGG
但是如果我想从
中删除这部分怎么办?>sequence1
AAACCCGGGTTTAAACCCGGGTTTGGGTTTGGG
并获得
>sequence1
AAACGTTTAAACCCGGGTTTGGGTTTGGG
有人有想法吗?
感谢您的帮助
这是一个更好的例子
ACCGCTTTGAATCCGAGCTAG
---- ----
我想删除 2 个部分:
TCCG和GCTA同对应坐标
11:14
和 16:19
最后我想删除两者并得到:
>seq
ACCGCTTTGAAAG
您可以将所需的两个部分加在一起来完成此操作:
sequence_1 = 'AAACCCGGGTTTAAACCCGGGTTTGGGTTTGGG'
sequence_1a = sequence_1[:4]
sequence_1b = sequence_1[8:]
sequence_2 = sequence_1a + sequence_1b
print(sequence_2)
>>> AAACGTTTAAACCCGGGTTTGGGTTTGGG
请注意,我在您的两个索引中都加了 1,以便删除正确的部分。
如果您想对多个部分执行此操作,可以通过循环遍历列表来执行此操作:
sequence_1 = 'ACCGCTTTGAATCCGAGCTAG'
indexes_to_delete = [(11, 14), (16, 19)]
output_sequence = ''
start_value = 0
for start_delete, end_delete in indexes_to_delete:
output_sequence += sequence_1[start_value: start_delete]
start_value = end_delete
output_sequence += sequence_1[start_value:]
print(output_sequence)
>>> ACCGCTTTGAAGAAG