前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >bam 转 wig 并批量处理的方法

bam 转 wig 并批量处理的方法

原创
作者头像
叶子Tenney
发布于 2024-03-17 08:21:32
发布于 2024-03-17 08:21:32
3210
举报

引言

本文将介绍一种 bam 转 wig 并批量处理的方法。需要用到的软件是来自 Augustus 的 bam2wig.

过程

软件安装

Augustus 官方 github 地址:

GitHub - Gaius-Augustus/Augustus: Genome annotation with AUGUSTUS

对于 linux 客户端,官方提供了 apt/Docker/Singularity/Building AUGUSTUS from source 四种安装方式,由于权限及软件问题,建议编译安装,非常不推荐 docker 安装。

首先需要安装依赖 (samtools 可使用 conda 版本):

sudo apt-get install samtools libhts-dev

代码语言:sh
AI代码解释
复制
git clone https://github.com/Gaius-Augustus/Augustus.git
cd Augustus
make augustus

如果只需要使用 bam2wig, 可以:

代码语言:sh
AI代码解释
复制
git clone https://github.com/Gaius-Augustus/Augustus.git
cd Augustus/auxprogs/bam2wig
make
./Augustus/bin/bam2wig

如果顺利的话,会打印出:

代码语言:txt
AI代码解释
复制
Usage: bam2wig [-r region] [-t trackname] <in.bam>
-----------------------------------------------------------------
 -r   Allows user to specify a target region, e.g. 'chr3L:10-250'
      This option can only be used if an index file exists
      See: samtools index
 -t   A string might be provided as track name

NOTE:File needs to be sorted by Reference ID (i.e. target name)
Use 'samtools sort <in.bam>' to such effect.

软件使用

bam2wig 官方提供的使用教程:

Augustus/auxprogs/bam2wig/README.md at master · Gaius-Augustus/Augustus

由打印可知,在使用 bam2wig 之前需要先进行samtools sort, 因此正确的流程是:

代码语言:sh
AI代码解释
复制
## check
samtools quickcheck SRR******.bam
## sort
samtools sort SRR******.bam -@8 -o SRR******.sorted.bam
samtools stats SRR******.sorted.bam | grep 'is sorted'
## bam2wig
bam2wig SRR******.sorted.bam > SRR6131113.wig

批量运行

批量的思路是先获取 data 文件夹内的所有文件名,然后对每个文件名依次检查,排序,转换。

其中,conda activate bulkrna需要设置为含samtools的环境名,Augustus/bin/bam2wig要设置为bam2wig的绝对路径。

1.get_raw_data.sh

代码语言:sh
AI代码解释
复制
#!/bin/bash
SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
echo $SHELL_FOLDER/data
# cd $SHELL_FOLDER/data
data_dir=$SHELL_FOLDER/data

## get filenames
samplefile="samplenames.txt"
if [ ! -d $samplefile ]; then
        filenames=$(ls $data_dir)
        for filename in $filenames
        do
                echo $filename
        done > filenames.txt
        ### get samplenames
        grep -oP ".*?(?=\.)" filenames.txt | awk ' !x[$0]++' > samplenames.txt
else
        echo "$samplename exists!"
fi

2.run.sh

代码语言:sh
AI代码解释
复制
#!/bin/bash
# 检查 env.txt 文件是否存在
if [ -f "${HOME}/env.txt" ]; then
  # 如果 env.txt 存在,则运行相应的命令
  while IFS='=' read -r key value; do
    echo "$key=$value"
    export "$key"="$value"
  done < "${HOME}/env.txt"
else
  # 运行其他命令
  echo "env.txt 文件不存在"
fi

SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
data_dir=$SHELL_FOLDER/data
results_dir=$SHELL_FOLDER/results
mkdir -p $data_dir
mkdir -p $results_dir
echo $data_dir
cd $data_dir
# samplefile=$data_dir/samplenames.txt
samplefile=$SHELL_FOLDER"/samplenames.txt"

eval "$(conda shell.bash hook)"
conda activate bulkrna

#Run
data_dir=$SHELL_FOLDER/data
data_dir_process=$SHELL_FOLDER/data_process
mkdir -p $data_dir_process

num=$(wc -l < $samplefile)
# for i in $(seq 2 2)
for i in $(seq 1 $num)
do
    echo $i
    samplename=$(sed -n "${i}p" $samplefile)
#     echo $samplename
#     cd $data_dir_process
    if [ ! -d $samplename ]; then
            echo "$samplename not completed, process in $data_dir"
            sample_file=${data_dir}/${samplename}.bam
            samtools quickcheck ${sample_file}
            echo "$samplename is checked"
            sort_file=${data_dir_process}/${samplename}.sorted.bam
            samtools sort ${sample_file} -@8 -o ${sort_file}
            samtools stats ${sort_file} | grep 'is sorted'
            Augustus/bin/bam2wig ${sort_file} > ${results_dir}/${samplename}.wig
    else
            echo "$samplename exists!"
    fi
done > run.log

结论

这是一份较为通用的处理方法。

错误解决

docker 版本 bam2wig 失败

主要遇到的问题是 docker 的存储访问问题,在容器起效之后,容器其实无法访问本机的存储空间。

所以docker run -i augustus augustus --versiondocker run -i augustus bam2wig是可以使用的,但是docker run -i augustus bam2wig SRR******.bam会提示找不到文件。

引用

  1. 通过 WIG 格式将转录组数据展示到 Gbrowse2 中 | Public Library of Bioinformatics
  2. augustus 软件安装与 Docker 使用记录_augustus git-CSDN 博客
  3. 如何检测 bam 文件的完整性 - 小鲨鱼 2018 - 博客园
  4. SAMtools——bam 文件排序 - 简书

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
新冠病毒分型和突变分析(SARS-CoV2_ARTIC_Nanopore)
备注:docker运行的操作系统,推荐为Linux,windows,macOS系统下docker可能部分功能(网络)不能正常运行
SliverWorkspace
2022/11/30
1K0
新冠病毒分型和突变分析(SARS-CoV2_ARTIC_Nanopore)
一个优秀的ATAC-seq数据分析资源实战(二)
之前我们给大家介绍了两篇ATAC-Seq数据分析pipeline的优秀综述:综述:ATAC-Seq 数据分析工具大全 和 Omni-ATAC:更新和优化的ATAC-seq协议(NatProtoc),我们今天就来实战介绍!
生信技能树
2025/02/28
3020
一个优秀的ATAC-seq数据分析资源实战(二)
流程管理工具snakemake学习笔记杂记
这里rule all的作用还是没有搞明白,看有的文档说是最终保留的文件 ,我这里rule all 只写了了最终的html和json,但是最终的结果里是有过滤后的fastq文件的
用户7010445
2022/05/23
9750
流程管理工具snakemake学习笔记杂记
新冠病毒分型和突变分析(SARS-CoV2_ARTIC_Illumina)
备注:docker运行的操作系统,推荐为Linux,windows,macOS系统改下docker可能部分功能(网络)不能正常运行
SliverWorkspace
2022/11/09
1.3K0
新冠病毒分型和突变分析(SARS-CoV2_ARTIC_Illumina)
一个优秀的ATAC-seq数据分析资源实战(一)
之前我们给大家介绍了两篇ATAC-Seq数据分析pipeline的优秀综述:综述:ATAC-Seq 数据分析工具大全 和 Omni-ATAC:更新和优化的ATAC-seq协议(NatProtoc),我们今天就来实战介绍!
生信技能树
2025/02/27
1840
一个优秀的ATAC-seq数据分析资源实战(一)
软件介绍之Samtools
SAMtools是一个用于操作sam和bam文件的工具合集。能够实现二进制查看、格式转换、排序及合并等功能,结合sam格式中的flag、tag等信息,还可以完成比对结果的统计汇总。同时利用linux中的grep、awk等操作命令,还可以大大扩展samtools的使用范围与功能。包含有许多命令,我这里主要介绍几个:
生信技能树
2021/07/06
2.7K0
WGCNA升级:CCNA+WGCNA筛选更可靠的候选基因
今天给大家介绍一个WGCNA的新玩法,即一致性共表达网络分析(Consensus co-expression network analysis,CCNA),该方法于2022年9月份发表在 Journal of Advanced Research 杂志(IF=11.4)上,文献标题为:《Consensus co-expression network analysis identifies AdZAT5 regulating pectin degradation in ripening kiwifruit》。
生信技能树
2025/02/19
2590
WGCNA升级:CCNA+WGCNA筛选更可靠的候选基因
看优秀本科生如何一周内学会Linux进而搞定RNA-seq上游分析
我是武汉大学基础医学专业第一届的学生,2016年9月刚进大学的时候就选了导师进入实验室接受科研训练。虽然我们实验室不是专门做生物信息学的,但第一次和导师正式交流的时候,她就建议我要学点生信。(巧合的是2016年9月也是生信菜鸟团转型生信技能树的时间点,如果所有的导师都如此明智就好了)
生信技能树
2020/04/14
8.9K1
看优秀本科生如何一周内学会Linux进而搞定RNA-seq上游分析
lncRNA实战项目-第四步-得到表达矩阵的流程
这是RNA-Seq 上游分析的大致流程,比对+定量。当然实验目的若只需要定量已知基因,也可以选择free-alignment 的流程工具如kallisto/Salmon/Sailfish,其优点是可用于RNA-seq的基因表达的快速定量,但是对于小RNA和表达量低的基因分析效果并不好(2018年刚发表的一篇文章对free-alignment 的工具进行了质量评估,doi: https://doi.org/10.1101/246967)。基于比对的流程,比对工具也有很多选择,如Hisat,STAR,Topha
生信技能树
2018/03/05
3.5K1
lncRNA实战项目-第四步-得到表达矩阵的流程
sam和bam处理案例
写在最后:有时间我们会努力更新的。大家互动交流可以前去论坛,地址在下面,复制去浏览器即可访问,弥补下公众号没有留言功能的缺憾。原地址暂未启用(bioinfoer.com)。
生信喵实验柴
2022/10/25
7320
sambamba与samtools的细节差异
3月份,我在生信菜鸟团的首次发文,假阳性突变的出现居然是因为duplicates mark的不够?,讲述了supplementary read不会被GATK MarkDuplicates标记为duplicates的问题。
生信菜鸟团
2022/05/24
3.7K1
sambamba与samtools的细节差异
RNA-seq(5):序列比对:Hisat2
1 HISAT2官网下载 人类和小鼠的索引有现成的,HISAT2官网可以直接下载进行序列比对。如下图所示:选择hg19和mm10的index,文章中RNA-Seq测序数据,可以包括人类和小鼠的数据,因此需要小鼠和人类的索引。
Y大宽
2018/09/10
5.5K0
RNA-seq(5):序列比对:Hisat2
workflow03-用snakemake制作比对及变异查找流程
这个snakemake workflow 主要包括:mapping, sort >> index >> call variants
北野茶缸子
2022/07/07
1.4K0
workflow03-用snakemake制作比对及变异查找流程
第二次RNA-seq实战总结(2)-数据下载并进行数据处理
原始数据来源于这篇文章https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE50177 这篇文章的数据适中,不仅可以用来做RNA-seq,后面我们
戈贝尔光和热
2018/12/27
1.3K0
单细胞基因组拷贝数变异流程
这里一步到位下载bowtie2的参考基因组:http://bowtie-bio.sourceforge.net/bowtie2/manual.shtml
生信技能树jimmy
2020/03/27
1.5K0
给学徒的ATAC-seq数据实战
本次给学徒讲解的文章是 :The landscape of accessible chromatin in mammalian preimplantation embryos. Nature 2016
生信技能树
2018/09/21
6.3K0
给学徒的ATAC-seq数据实战
EVidenceModeler(EVM)流程做基因组注释
安装好以后很多perl脚本是在 anaconda3/envs/EVM/opt/evidencemodeler-2.1.0/EvmUtils/这个目录下
用户7010445
2023/08/23
1.4K0
EVidenceModeler(EVM)流程做基因组注释
WGS分析实战-01:从SRA数据下载到构建GenomicsDatabase
用于实战的数据集来自下面这篇于2017年发表在The Plant Journal的文章《Different mutational function of low- and high-linear energy transfer heavy-ion irradiation demonstrated by whole-genome resequencing of Arabidopsis mutants》
生信菜鸟团
2022/04/08
2.2K0
WGS分析实战-01:从SRA数据下载到构建GenomicsDatabase
转录组数据比对subjunc-7
subread 官网:http://subread.sourceforge.net/
生信菜鸟团
2024/07/10
1530
转录组数据比对subjunc-7
GATK Germline_SNP_INDEL_2.0 分析遗传病(耳聋)
备注:docker运行的操作系统,推荐为Linux,windows,macOS系统改下docker可能部分功能(网络)不能正常运行
SliverWorkspace
2022/12/12
8440
GATK Germline_SNP_INDEL_2.0 分析遗传病(耳聋)
推荐阅读
相关推荐
新冠病毒分型和突变分析(SARS-CoV2_ARTIC_Nanopore)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档