注意:notepad++ 不支持匹配提取。 一般操作正则表达式主要是用来匹配查找、匹配替换。这个提取问题可以使用sublime text来进行实现, SublimeText可以选中所有匹配项。另外EmEditor也可以选中正则表达式的匹配项,但是EmEditor这个软件不是开源的,也不是免费的,所以推荐还是使用sublime text。
用Notepad++ 的正则表达式简单地处理数据,我发现学会正则表达式可以起到事半功倍的作用。
下面是我最近处理的几个小案例。
案例一
首先在Ensembl Plants 的Biomart 下载转录本对应的cds序列,如下:
>TraesCS6B02G039100|TraesCS6B02G039100.1
ATGTACCGTTGTGCTGTGGTCTTTCTGATCGTGGTGGCCGCCTGCACTCCGGCCATGAGC
AGCTTTTGGCAGCAGGCCCTCCCGGGCACGCCGATGCCAGAGGCCATCGCAGACCTTGTG
CCGAAAGGCATCGATGATGCGCCTCAAGTGGAGCGCTACCCTGCATTCCCCAGCATCAGT
TTGTGCGGTGCTTGGACCGGCATGTGTACGGCGAGCTTGGCGGCACCGACGGGCATCTTC
我们希望将
>TraesCS6B02G039100|TraesCS6B02G039100.1
替换为
>TraesCS6B02G039100.1
`查找`
([A-Za-z0-9]*)(\|)([A-Za-z0-9]*\.[0-9])
`替换`
\3
这里([A-Za-z0-9]*)
表示基因TraesCS6B02G039100; (\|)
对应特殊符号|,特殊符号用\
进行转义。([A-Za-z0-9]*\.[0-9])
表示转录本TraesCS6B02G039100.1。也就是说,我们将其分为3个匹配组,正则匹配并按匹配组进行替换,最终我们将三个匹配组替换为一个匹配组,也就是第三个\3
。
👉注意:转录本的那个点.
,也是特殊符号,同样需要用\
转义。
结果如下:
>TraesCS6B02G039100.1
ATGTACCGTTGTGCTGTGGTCTTTCTGATCGTGGTGGCCGCCTGCACTCCGGCCATGAGC
AGCTTTTGGCAGCAGGCCCTCCCGGGCACGCCGATGCCAGAGGCCATCGCAGACCTTGTG
CCGAAAGGCATCGATGATGCGCCTCAAGTGGAGCGCTACCCTGCATTCCCCAGCATCAGT
TTGTGCGGTGCTTGGACCGGCATGTGTACGGCGAGCTTGGCGGCACCGACGGGCATCTTC
案例二
原始数据如下
>BAK07777.1 predicted protein [Hordeum vulgare subsp. vulgare]
MASKSASLLILAALVAAACLAGQGSAARHLPAEKPAEDVVKRPDTFQEGTVLIPGIGRYELGTHYIPDIGGLDHSIPAAANGQFIPGADDTWVPNPGFEVPNPFRPGSDSP
>KAF0905970.1 hypothetical protein E2562_008992 [Oryza meyeriana var. granulata]
MARSSSLQALLVLAVLVMAAACSTAAARSVPAEEKKTAAAEDVKQPETFHEGTVLIPGFGRFELGSHYVPDITGVDHSIPAAASGQFIPGADDTWVPNPGFEVPNPFHPGFEVPNPFHPGSASP
>RWW32695.1 hypothetical protein GW17_00002621 [Ensete ventricosum]
MPNQHLFNALNPHNLTFGGPRRIEIGSPPLVAHAPSNTPPKRKKKKKTVGFRLLRATSACATTDLHFERERSDHDRTCVITGGSTRYGPVCLPSTALQWGPRNKRVRRRVDERTPHHQYGKRGGKRGSTLPYGRPGTGKVGNPHLQAHASPPVQQAWQEARQHAPPPRVTEAPPPRIPASPTSTPNRSQSRSHNPAPTEPDLDVLSTDSTDSLREQVRRVHQRLDEVQREVLKSKDEAGESSKGGSPFTLEIHSKPLPATFRLPALEPYDGSGDPVEHVATFRAQMALYDTSEALMCRAFPTTLRGSARNWYARLKPASIPSFDVLAREFESNFLASACPRPTTASLLGMAQGSDEPLSQFVRRFTSQVQGIPDLHPSLAIQVFLTGLKPSRFFWSLIERPPTTLPEMLQRAHQYVAAETLIAGKRDEAKRPRGEQSRGNPAPPPKKREDRSGLLPARPPPIPLNSTRTEIFFQIREKGLLKAPSPMKSHPERRDKRRYCRFHREYGHDTEECRDLQYQIEDLIKRGHLRRYVREQPPLSDGRPPRDLSKTLMVPFMVVRLPSAYNAIIGRPTLNRLRAVVSTYHRVLKFPTRAGVGEVRSDPKESRQCYLAATTLCKKPRTGPINATAPDPVEDARAANQHSILYFFFLSLSVSMASCSRCPTLPLIILFLGLMSVAQVALAGRKIPANSDKKETEFLGHEGTVLIPGIGRYMIGSHEKPGFSGLDHSIPAAANGKYLPGNDDTFVPNPGYEIPNPFRGVIP
如果我们想删除>BAK07777.1 和 [Hordeum vulgare subsp. vulgare]中间的文字部分,该如何解决?
👉解决方案如下
`查找`
(.*\.[0-9])(.*)(\[.*\])
`替换`
\1\3
结果如下:
>BAK07777.1[Hordeum vulgare subsp. vulgare]
MASKSASLLILAALVAAACLAGQGSAARHLPAEKPAEDVVKRPDTFQEGTVLIPGIGRYELGTHYIPDIGGLDHSIPAAANGQFIPGADDTWVPNPGFEVPNPFRPGSDSP
>KAF0905970.1[Oryza meyeriana var. granulata]
MARSSSLQALLVLAVLVMAAACSTAAARSVPAEEKKTAAAEDVKQPETFHEGTVLIPGFGRFELGSHYVPDITGVDHSIPAAASGQFIPGADDTWVPNPGFEVPNPFHPGFEVPNPFHPGSASP
>RWW32695.1[Ensete ventricosum]
MPNQHLFNALNPHNLTFGGPRRIEIGSPPLVAHAPSNTPPKRKKKKKTVGFRLLRATSACATTDLHFERERSDHDRTCVI
TGGSTRYGPVCLPSTALQWGPRNKRVRRRVDERTPHHQYGKRGGKRGSTLPYGRPGTGKVGNPHLQAHASPPVQQAWQEARQHAPPPRVTEAPPPRIPASPTSTPNRSQSRSHNPAPTEPDLDVLSTDSTDSLREQVRRVHQRLDEVQREVLKSKDEAGESSKGGSPFTLEIHSKPLPATFRLPALEPYDGSGDPVEHVATFRAQMALYDTSEALMCRAFPTTLRGSARNWYARLKPASIPSFDVLAREFESNFLASACPRPTTASLLGMAQGSDEPLSQFVRRFTSQVQGIPDLHPSLAIQVFLTGLKPSRFFWSLIERPPTTLPEMLQRAHQYVAAETLIAGKRDEAKRPRGEQSRGNPAPPPKKREDRSGLLPARPPPIPLNSTRTEIFFQIREKGLLKAPSPMKSHPERRDKRRYCRFHREYGHDTEECRDLQYQIEDLIKRGHLRRYVREQPPLSDGRPPRDLSKTLMVPFMVVRLPSAYNAIIGRPTLNRLRAVVSTYHRVLKFPTRAGVGEVRSDPKESRQCYLAATTLCKKPRTGPINATAPDPVEDARAANQHSILYFFFLSLSVSMASCSRCPTLPLIILFLGLMSVAQVALAGRKIPANSDKKETEFLGHEGTVLIPGIGRYMIGSHEKPGFSGLDHSIPAAANGKYLPGNDDTFVPNPGYEIPNPFRGVIP
网友评论