lsq546397641的个人博客分享 http://blog.sciencenet.cn/u/lsq546397641

博文

seqkit replace使用说明

已有 977 次阅读 2023-8-9 00:02 |系统分类:科研笔记

功能:使用正则表达式替换name以及sequence

定义name:描述行;sequence:序列行;seqid:name第一个空格前的ID号;descriptions:name第一个空格后的部分。


-p, --pattern string 正则表达式

-r, --replacement string 替换



image.png

1. name前面或者后面添加。在seqid后面添加。


seqkit replace -p ^ -r prefix_ test1.fa >replace.fa

image.png




seqkit replace -p $ -r _suffix test1.fa >replace.fa

image.png



seqkit seq -i test1.fa | seqkit replace -p $ -r _suffix >replace.fa

image.png

seq -i 科学网—seqkit软件用法小记 - 刘树青的博文 (sciencenet.cn)

2. 剔除descriptions

seqkit replace -p "\s.+" test1.fa >replace.fa

image.png 

\s是匹配所有空白符,包括换行符

.匹配除换行符 \n 之外的任何单字符

+配前面的子表达式一次或多次

3. name字符替换

seqkit replace -p '-' -r '=' test1.fa >replace.fa

image.png

4. sequence字符替换

seqkit replace -p " |-" -s test1.fa >replace.fa

image.png 

" |-"是空格或者-

5. sequence中每个碱基后面增加一个空格

seqkit replace -p "(.)" -r '$1 ' -s test1.fa >replace.fa

image.png 

-p "(.)"匹配除换行符 \n 之外的任何单字符,一次

-r '$1 '正则表达式第一个(),后面加一个空格

6. 使用csvtksequence转置

image.png

seqkit replace -p "(.)" -r "\$1 " -s test2.fa | seqkit seq -s -u | csvtk space2tab | csvtk -t transpose >replace.fa

image.png

seq -s -u 打印sequence,小写变大写

csvtk space2tab空格转变tab

csvtk -t transpose转置

7. name计数重命名

image.png

seqkit replace -p .+ -r "seq_{nr}" test3.fa >replace.fa

seqkit replace -p .+ -r "seq_{nr}" --nr-width 5 test3.fa >replace.fa

image.png

 image.png

.+ 一次或多次除换行符 \n 之外的任何单字符,即name

{nr} 计数,从1开始

--nr-width 5计数宽度为5字符

8. 使用key-value file<键值文件alias.txt>替换

image.png

image.png

image.png

alias.txt和alias_seqid.txt替换前后对应内容,中间tab分割


    8.1 替换descriptions

seqkit replace -p ' (.+)$' -r ' {kv}' -k alias.txt test4.fa >replace.fa <图1>

seqkit replace -p ' (.+)$' -r ' {kv}' -k alias.txt --keep-key test4.fa >replace.fa <图2>

image.png

image.png

' (.+)$' 空格加一次或多次除换行符 \n 之外的任何单字符,即descriptions

'{kv}'使用key-value file文件替换

--keep-key如果key-value file中不存在替换的键值,继续使用原值;如果没有此参数,则替换为空。

    8.2 替换seqid

seqkit replace -p '^(\S+)(.+?)$' -r '{kv}$2' -k alias_seqid.txt test4.fa >replace.fa

image.png 

# ^(\S+)   # ID

# (.+)$    # description(前面有一个空格)

#^(.+)  # name

\S 匹配任何非空白字符,不包括换行。

$2 正则表达式第2()

{kv} 使用key-value file文件替换

9. fasta格式转换为genbank格式

image.png

seqkit replace -s -p '(\w{10})' -r '$1 ' -w 66 test5.fa \

| perl -ne 'if (/^>/) {print; $n=1} else {s/ \r?\n$/\n/; printf "%9d %s", $n, $_; $n+=60;}' >replace.fa

image.png 

genbank格式一行60个碱基,每10个碱基用一个空格分割


【参考】

Usage - SeqKit - Ultrafast FASTA/Q kit (shenwei.me)



https://m.sciencenet.cn/blog-994715-1398316.html

上一篇:R语言默认工作路径设置
下一篇:kraken2个性化建库

1 杨正瓴

该博文允许注册用户评论 请点击登录 评论 (2 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-2-21 19:57

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部