我的问题与下面的帖子类似,但我需要这个python:
Mpileup regex command to remove indels
输入: chr8 30 T 6…,$.$.$A,…A…,,,,,…+5AGGC…-8GTCGG……,A,^F,^].^F
我想删除可能类似于+5AGGC
和{
输出: chr8 30 T 6…,$.$.$A,…A…,,,…..,……,A,^F,^].^F
我尝试了以下正则表达式,但不起作用,请帮助
= re.sub(" [+]?([0-9]+)([ACGTNacgtn]+)", "", seq)
= re.sub("-\d+[ACGT]+", "", seq)
这个终于奏效了
序列=re.sub公司(“+\d+[ACGT]+”,“”,序列号)
序列=re.sub公司(“-\d+[ACGT]+”,“”,序列号)
可能有助于某人谁正在寻找正则表达式删除索引从他们的堆积文件。在
当然,这是错的。考虑:
贪婪的^{会吃掉所有的基,而不仅仅是堆积符号所说的五个。如果您有一个质量分数字符串,您可以验证这一点,因为在删除索引和其他工件后,这两个字符串的长度将不一致。从概念上讲,我们想要的模式是:
^{pr2}$但是regex语法不允许我们将变量放在重复运算符的一般形式中,即
{5}
可以,但不能使用反向引用{\1}
。在有几种方法可以做到这一点,主要涉及两个步骤:第一,通过计数匹配初始部分;第二,使用该计数完成工作。下面是一个例子:
匹配符号和计数,提取计数。然后从字符串中剪切匹配本身加上count个字符。重复,直到找不到更多索引。在
输出
另一种方法是使用第一个模式匹配的结果动态地创建第二个模式,您可以将其传递给
re.sub()
,依次删除每个索引。在您只需使用
re.compile('[-+]\d+[ACGTacgtNn]+')
替换所有索引:相关问题 更多 >
编程相关推荐