编写Python脚本,读取fasta格式的序列文件,并输出无回车跟空行保留ID跟序列并输出无回车跟空行的fasta格式文件
时间: 2024-10-11 10:15:57 浏览: 38
在Python中,你可以使用内置的`io`模块以及一些字符串操作来实现这个功能。首先,你需要打开输入的.fasta文件和输出的新.fasta文件,然后逐行解析。下面是一个简单的示例代码:
```python
def read_and_write_fasta(input_file, output_file):
with open(input_file, 'r') as in_fh, open(output_file, 'w') as out_fh:
# 读取文件,去除空行和回车
lines = [line.strip() for line in in_fh if not line.startswith('>')]
# 将数据分组到id和sequence
sequences = {}
current_id = None
for line in lines:
if line:
if line.startswith('>'): # 结束上一条记录,开始新的
current_id = line[1:].strip()
else: # 这是一段序列
sequences[current_id] += line
# 写入新的fasta文件,只包含ID和序列,无换行
for id, sequence in sequences.items():
out_fh.write(f">{id}\n{sequence}\n")
# 使用函数
read_and_write_fasta('input.fasta', 'output.fasta')
```
在这个脚本中,我们假设输入文件的每一行要么是ID(以`>`开头),要么是序列部分。函数会读取整个文件,跳过空行和行尾的回车,然后将每个ID和其对应的序列合并成无回车、无空行的形式写入到新的fasta文件。
阅读全文