如何从 .vcf 文件中删除错误的 tabs/new 行?

How to remove erronous tabs/new line from .vcf file?

我正在使用 vcf 文件。我尝试从该文件中提取信息,但该文件的格式有误。

在这个文件中有一列包含长字符串。错误是,一些制表符和换行符被错误地放置在该列的某些行中。因此,当我尝试读取此制表符分隔文件时,所有列都乱七八糟。

我知道如何解决这个问题,但不知道如何在代码中执行。字符串是 DNA,所以总是有 ATCG。基本上,如果可以在字符 ATCG 中查找多个制表符和换行符并将其删除,则文件已修复:

ACTGCTGA\t\t\t\t\nCTGATCGA 会变成: ACTGCTGACTGATCGA

所以需要查看此文件,查找 [ACTG] 后跟制表符或换行符,然后是更多 [ACTG],然后将其替换为空。知道怎么做吗?

with open(file.vcf, 'r') as f:
    lines = [l for l in f if not l.startswith('##')]

这是使用正则表达式的一种方法:

首先读取文件在:

import re

with open('file.vcf', 'r') as file:
    dnafile = file.read()

然后写入一个包含更改的新文件:

with open('fileNew.vcf', 'w') as file:
    file.write(re.sub("(?<=[ACTG]{2})((\t)*(\n)*)(?=[ACTG]{2})", "", dnafile))