#基因组干货# 生物信息学文本处理大杂烩(二)

今天继续将对于bed格式文件的处理:

####### 上次讲了用bedtools的randomBed创建随机bed文件,这次还是先创建一个1000行,每个区域大小为400bp的bed文件:

# 使用 randomBed创建bed文件:
randomBed -seed 2 -n 1000 -l 400 -g ./hg19.chrom_24.sizes >./a.bed
# 查看前10行:
head a.bed
#基因组干货# 生物信息学文本处理大杂烩(二)_第1张图片
这次我们想把正链和负链的提出来放到单独文件:
# 提取正链:
awk '($6=="+")' a.bed > pos.bed
# 提取负链:
awk '($6=="-")' a.bed > neg.bed
现在我们还不满意,还想对每个染色体单独处理,想把每个染色体的数据分割到单独的文件:
# 创建数组存储24条染色体:
chrom_24=(`echo chr{1..22} chrX chrY`)
# 查看数组:
echo ${chrom_24[@]}
for i in ${chrom_24[@]}
do
    awk -v chrom=$i 'BEGIN{FS="\t";OFS="\t"}{if($1==chrom)print $0}' pos.bed > pos_$i.bed
    awk -v chrom=$i 'BEGIN{FS="\t";OFS="\t"}{if($1==chrom)print $0}' neg.bed > neg_$i.bed
done
# 查看生成的文件:
ls 
#基因组干货# 生物信息学文本处理大杂烩(二)_第2张图片
随便查看个文件:
head neg_chr12.bed
#基因组干货# 生物信息学文本处理大杂烩(二)_第3张图片
OK,宣告成功。

今天使用了shell的数组以及for循环,还有awk和shell之间的传参(通过-v参数),批量生成了24个染色体文件,下期是awk的核心:数组的例子。

更多原创精彩内容敬请关注生信杂谈

#基因组干货# 生物信息学文本处理大杂烩(二)_第4张图片

你可能感兴趣的:(#基因组干货# 生物信息学文本处理大杂烩(二))