这是一个很小众的需求。大部分变异检测都是基于组装质量比较高的基因组,而不是那种初步拼接的contig。

由于初步拼接的参考序列通常会有成千上万个contig序列,也就导致在VCF的头文件的##contig=<ID=xxx,length=xxx>部分会有成千上万个contig,将这个文件加载到IGV时, IGV会去解析VCF,这将会是非常缓慢的过程,最好的策略就是只提取其中一个contig查看。

一开始,我想到的是这个方法,直接用bcftools去提取目标contig

bcftools view some_variants.bcf contig_1

但是,你会发现HEADER部分还是会保留原来的信息。怎么办呢?

我们这里会用到一个Shell高级技巧--subshell。举个例子,比如说同时查看一个文件的头10行和后10行.

(head -n 10 ; tail -n10 ) < ~/referece/annotaiton/TAIR10/TAIR10_GFF3_genes.bed

这里的()就是一个subshell, 它的作用就是同时执行()中的所有命令。

用到此处,就是同时完成提取VCF的header部分并只保留目标contig和提取目标区间的所有记录这两个任务,然后保存为vcf.gz格式。

(bcftools view -h some_variants.bcf | grep -v "##contig" | sed "/^##reference/a $(bcftools view -h some_variants.bcf | grep -w "ID=contig_1")" ; bcftools view -H some_variants.bcf contig_1 ) | bcftools view -Oz -o contig_1.vcf.gz

上面是一个非常复杂的shell命令,希望你能看懂。

这里面重复出现了两个变量,一个是some_variants.bcf,一个是contig_1, 我们可以将其用$1$2代替,然后添加到你的~/.bashrc中,如下所示

# function
subvcf()
{(bcftools view -h $1 | grep -v "##contig" | sed "/^##reference/a $(bcftools view -h $1| grep -w "ID=$2")" ;  bcftools view -H $1 $2 ) | bcftools view -Oz -o $2.vcf.gz && bcftoos index $2.vcf.gz
}

最后用source ~/.bashrc添加刚才的函数到环境变量中,最后就是subvcf some_variants.bcf contig_1 代替之前的长串命令。

shell高级技巧:提取vcf文件中一个contig相关推荐

  1. Tips--利用shell脚本批量提取txt文件中任意字段

    利用shell脚本批量提取txt文件中任意字段 前言 0. 一个例子 1. cat命令 2. '|'符号与'>'符号 3. grep命令 4. awk命令 前言 对于测试中出现的log,我们经常 ...

  2. 2021.06.08|提取、比较各样品vcf文件中snp突变频率

    目录 摘要 环境与方法 使用代码 分析结果 总结 摘要 接到一个wgs项目,要帮助客户统计vcf文件中snp突变频率,比较两个样品的突变位点.这个工作在上一个项目中是手动处理的,当时参考序列短,突变位 ...

  3. 【Python项目实战】提取.docx文件中的图片并保存到指定的文件夹

    文章目录 一.需求分析 二.系统设计 2.1系统业务流程 2.2系统预览 三.系统开发必备 3.1 系统开发环境 3.2文件组织结构 四.主函数设计 1.创建窗口 2.创建按钮 3.创建输入框 五.函 ...

  4. python读json文件中不同的数据类型_怎么使用python提取json文件中的字段

    python中为什么用json有什么作用 python的json模块中如何将变量添加到里面 python的json模块第一个是要打开的文件,第二个是打开的操作,为什么会如果你早认清你在别人心中没那么重 ...

  5. vscode中打开pdf文件_提取pdf文件中的文字

    环境说明 windows10系统 python3.6版本 安装 网上很多说需要安装pdfminer3k和pdfminer3k.six,我尝试了先安装pdfminer3k后安装pdfminer3k.si ...

  6. 利用Python提取PDF文件中的文本信息

    如何利用Python提取PDF文件中的文本信息 日常工作中我们经常会用到pdf格式的文件,大多数情况下是浏览或者编辑pdf信息,但有时候需要提取pdf中的文本,如果是单个文件的话还可以通过复制粘贴来直 ...

  7. 如何使用python提取dwg文件中的坐标信息

    如果要使用 Python 提取 DWG 文件中的坐标信息,你需要使用专业的 CAD 读取工具,例如 Autodesk AutoCAD.Teigha File Converter 等.这些工具可以将 D ...

  8. 提取.c文件中的函数名

    shell脚本提取.c生成函数原型 写了个脚本主要是为了给自己用的,顺带共享下.作用是提取.c文件中的函数名,生成函数原型. #!/bin/bash sourcesfile=$1 if [[ -f $ ...

  9. 提取pdf文件中文字的两种方法

    如今,在我们的工作与学习中已经不是单单使用word.Excel等格式文件了,pdf格式的文件已经被广泛地运用到我们的办公室中.大家都知道pdf文件是不可直接编辑与修改的,使用起来有些不便.那么当我们需 ...

最新文章

  1. 大数据的“平民化”、“流动化”、“商业化”推动企业升级与转型
  2. Android Studio编译好的apk放在哪里?
  3. [转载]OBJECTIVE C (XCODE) 绘图功能简介
  4. ASP.NET2.0_执行页面发送的强类型方法与弱类型方法
  5. [一] 详细讲解: 线性表链式存储结构 中的 单链表; (数据结构和算法)
  6. 比尔-盖茨写给即将走出学校、踏入社会的青年一代的11点忠告
  7. ActionBar之style出现Cannot resolve symbol 'Theme' 错误
  8. Hinton向AAAI提交论文竟收到最差评价!深度学习三教父再押宝,AI或突破常识瓶颈...
  9. YUI Compressor
  10. 并发---ConcurrentHashMap
  11. 华为鸿蒙生态伙伴,华为鸿蒙生态加速 市场相关板块再度活跃
  12. windows多用户远程登录工具 RDPWrap配置
  13. ABB变频器配件,西门子变频器配件,施耐德变频器配件
  14. excel中相对引用、绝对引用、混合引用
  15. chrome插件之网页翻译插件
  16. 吴恩达深度学习笔记(二)——浅层神经网络
  17. 菜鸟Postman的使用教程
  18. 数据分析师拯救猪队友的操作指南
  19. 《JavaWeb从入门到改行》分页功能的实现
  20. python科大讯飞语音接口不能用_【】科大讯飞语音识别支持python吗

热门文章

  1. 比较 REST、JSON:API 和 GraphQL
  2. 代码审计 = 74cms_v3.5.1.20141128 一系列漏洞
  3. 免费下载 | 阿里云“实践”指定教材,7天学会ECS!
  4. Flutter 1.12 最新 hotfix 与 2020 路线计划
  5. 史上最大规模黑客攻击事件曝光,数百万人的个人信息遭到泄露
  6. CAXA PLM助力湖南郴粮机提升粮食机械研发效率
  7. 网站流量日志分析——day1
  8. 经典例题:求矩阵相乘
  9. 画交叉验证的ROC曲线,多个样本不同的ROC重叠。
  10. 操作系统(thuOS)笔记(一) 第三讲 启动、中断、异常和系统调用