首页 > 系统相关 >linux 中awk命令从fasta文件中提取指定的scaffold数据

linux 中awk命令从fasta文件中提取指定的scaffold数据

时间:2023-01-29 16:14:39浏览次数:46  
标签:## scaffold PC1 gg fa awk linux test root

 

awk实现

001、awk实现,提取第一个scaffold

[root@PC1 test]# ls
a.fa
[root@PC1 test]# cat a.fa                ## 测试数据
>chr1
aattcc
gg
>chr2
ttccggaa
ggccttgg
cc
>chr3
aatt
gg
>chr4
ttccgg
>chr5
aaccgg
ttaa
[root@PC1 test]# awk '/>/ {p = ($0 ~ "chr1")}p' a.fa     ## 提取chr1
>chr1
aattcc
gg

 

 

002、awk实现提取中间任一scaffild

[root@PC1 test]# ls
a.fa
[root@PC1 test]# cat a.fa            ## 测试数据
>chr1
aattcc
gg
>chr2
ttccggaa
ggccttgg
cc
>chr3
aatt
gg
>chr4
ttccgg
>chr5
aaccgg
ttaa
[root@PC1 test]# awk '/>/ {p = ($0 ~ "chr3")}p' a.fa      ## 提取chr3
>chr3
aatt
gg

 

 

003、awk提取末尾scaffold

[root@PC1 test]# ls
a.fa
[root@PC1 test]# cat a.fa               ## 测试数据
>chr1
aattcc
gg
>chr2
ttccggaa
ggccttgg
cc
>chr3
aatt
gg
>chr4
ttccgg
>chr5
aaccgg
ttaa
[root@PC1 test]# awk '/>/ {p = ($0 ~ /chr5/)}p' a.fa     ## 提取chr5
>chr5
aaccgg
ttaa

 

 

004、随机连续提取

[root@PC1 test]# ls
a.fa  scaffold.list
[root@PC1 test]# cat scaffold.list       ## scaffold列表
chr2
chr4
chr5
[root@PC1 test]# for i in $(cat scaffold.list ); do awk -v a=$i '/>/ {p = ($0 ~ a)}p' a.fa >> result.fa; done    ## 利用循环提取
[root@PC1 test]# ls
a.fa  result.fa  scaffold.list
[root@PC1 test]# cat result.fa       ## 提取结果
>chr2
ttccggaa
ggccttgg
cc
>chr4
ttccgg
>chr5
aaccgg
ttaa

 

sed实现

001、提取第一个scaffold

[root@PC1 test]# ls
a.fa
[root@PC1 test]# cat a.fa       ## 测试数据
>chr1
aattcc
gg
>chr2
ttccggaa
ggccttgg
cc
>chr3
aatt
gg
>chr4
ttccgg
>chr5
aaccgg
ttaa
[root@PC1 test]# sed -n '/>chr1/,/>/p' a.fa | sed '1b; />/d'     ## 提取chr1
>chr1
aattcc
gg

 

 

002、提取中间任一scaffold

[root@PC1 test]# ls
a.fa
[root@PC1 test]# cat a.fa            ## 测试数据
>chr1
aattcc
gg
>chr2
ttccggaa
ggccttgg
cc
>chr3
aatt
gg
>chr4
ttccgg
>chr5
aaccgg
ttaa
[root@PC1 test]# sed -n '/>chr3/,/>/p' a.fa | sed '1b; />/d'       ## 提取chr3
>chr3
aatt
gg

 

 

003、提取末尾scaffold

[root@PC1 test]# ls
a.fa
[root@PC1 test]# cat a.fa           ## 测试数据
>chr1
aattcc
gg
>chr2
ttccggaa
ggccttgg
cc
>chr3
aatt
gg
>chr4
ttccgg
>chr5
aaccgg
ttaa
[root@PC1 test]# sed -n '/>chr5/,/>/p' a.fa | sed '1b; />/d'      ## 提取chr5
>chr5
aaccgg
ttaa

 

 

004、多条scaffold 连续提取

[root@PC1 test]# ls
a.fa  scaffold.list
[root@PC1 test]# cat scaffold.list         ## scaffold列表
chr1
chr3
chr5
[root@PC1 test]# for i in $(cat scaffold.list ); do sed -n "/>$i/,/>/p" a.fa | sed '1b; />/d' >> result.fa; done    ## 利用循环结构连续提取
[root@PC1 test]# ls
a.fa  result.fa  scaffold.list
[root@PC1 test]# cat result.fa            ## 提取结果
>chr1
aattcc
gg
>chr3
aatt
gg
>chr5
aaccgg
ttaa

 

标签:##,scaffold,PC1,gg,fa,awk,linux,test,root
From: https://www.cnblogs.com/liujiaxin2018/p/17072949.html

相关文章

  • CentOS Linux release 7.6 zabbix5.0 安装
    #zabbix安装关方文档https://www.zabbix.com/cn/download?zabbix=5.0&os_distribution=centos&os_version=7&components=server_frontend_agent&db=mysql&ws=nginx安......
  • linux网络名词--ip、域名、主机名、uri、url、
    一、ip、域名、主机名定义ip:IP地址就可以访问到每一台主机域名:与ip之间存在对应关系主机名:服务器名+域名主机名和域名区别:1、域名的范围要比主机名大,一个域名下可以有......
  • linux--systemctl、service和chkconfig
    一、systemctl1、centos7下,systemctl可以理解为systemd的一个工具。也可以认为systemctl命令将service和chkconfig命令结合在了一起,它永久性或只在当前会话中启用/禁用服务......
  • Linux 命令 | nslookup
    nslookup(NameServerLookup)是一种网络管理命令。用于从DNS服务器查询域名、IP或其他DNS记录信息。命令格式nslookup[-OPTION][SERVER|IP][DNSSERVER]OP......
  • Linux删除软连接
    概述:如何在linux服务器上正确且安全的删除软连接?例子:touchabc.txttouchzzz.txtecho'testtesttest'>zzz.txtln-szzz.txtzcw示例图:软连接已生效,可以......
  • docker(linux安装docker)
    接上篇:docker(开篇)目前,CentOS仅发现版中的内核支持Docker。Docker运行在CentOS7(64-bit)上,要求系统64位,Linux系统内核3.8以上,这里选择CentOS7.x1、确定你是CentOS7及以......
  • linux-安装mysql
    1.在/use/local下mkdirmysql  2.切换到mysql文件夹下cdmysql  3.下载mysql wgethttps://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-lin......
  • Windows与Linux的互相访问
    安装上几台windows的主机,不管是xp系统还是win7win10,只要打开网络发现,在网上邻居上都可以看到局域网内在线的计算机。但是Linux就不行了。常见的解决办法是在Linux下安装S......
  • Linux上如何查找占用空间最大的文件来清理
    Linux上如何查找占用空间最大的文件来清理jiang0615csdn于2022-04-1511:15:41发布3998 收藏10分类专栏:Linux操作系统运维日常工作文章标签:linux运维版权......
  • linux发送邮件mail详解
       1、发送邮件箱配置   2、配置常用邮件正文   3、邮件发送命令这两天,公司对数据安全进行了管控,发送数据时不能将数据下载到个人电脑上,上网研究了下,可以通过l......