bed和gff文件按染色体号排序
注释文件通常按照染色体序号升序排列,而有时需要我们对获取的注释文件进行排序。对于chr01这种直接sort就可以,但是对于chr1, chr2… chr11这种,直接sort的结果是chr11排在chr2前面。解决这种情况的方法很简单,提取染色体中的数字,然后使用sort的-n参数就可以。而写成脚本复用起来也比较方便。
有些物种染色体命名可能特殊,所以line 24的正则匹配要针对不同情况修改。现在的脚本匹配染色体命名为Chr chr CHR。
#!/usr/bin/perl
# 2020-11-12
# sort bed or gff filemy $usage="Usage: $0 <file.bed or file.gff3>\n";
my $input;
my $tmp="./sortBedGFF_tmp01";if(@ARGV==1){$input=shift @ARGV;
}
else{die "$usage\n";
}open INPUT,$input or die "fileOpenError: unable to open $input\n";
open TMP,">".$tmp;
while(<INPUT>){chomp;my $line=$_;my @line=split "\t",$line;my $chr=$line[0];my $mod_chr;if($chr=~/[cC][hH][rR](\d+)/){$mod_chr=$1;}else{$mod_chr=$chr;print STDERR "error in line $.: chromosome name ($chr) not match regular expression, you may change $0 in line 24\n"}print TMP "$mod_chr\t$line\n";
}
close INPUT;
close TMP;my $outfile=$input;
if($input=~/bed/){$outfile=~s/bed/sorted.bed/g;system("sort -k 1n,1 -k 3n,4n $tmp | sed 's/^[0-9]*\t//g' > $outfile");
}
elsif($input=~/gff/){$outfile=~s/gff.*/sorted.gff/g;system("sort -k 1n,1 -k 5n,6n $tmp | sed 's/^[0-9]*\t//g' > $outfile");
}unlink $tmp; #remove temporary file
print STDERR "Finished\n";
bed和gff文件按染色体号排序相关推荐
- 利用python快速转换GenBank和RefSeq的染色体号
1.解决问题:在NCBI中参考基因组的GenBank和RefSeq sequence拥有不同的染色体号(如下图),某些情况下需要进行染色体号的相互转化.故自己写一个python脚本,进行简易的转化. ...
- gff文件_GFF文件格式简介
鉴于代码的排版问题,建议在电脑上阅读本文. 组装得到基因组的序列只是开展基因组研究的第一步,基因的结构是基因组后续功能研究的基石.在NCBI中,除了提供基因组序列外,还提供了基因结构的信息,采用的就是 ...
- gff文件_GFF格式说明
.原始定义见 SONG website gff 是存文本文件,由 tab 键隔开的 9 列组成,以下是各列的说明: Column 1: "seqid" 序列的编号,编号的有效字符 ...
- AGAT|GTF/GFF文件处理工具
AGAT AGAT是Another Gff Analysis Toolkit的缩写, 是一个用于处理GTF/GFF文件的工具.AGAT 有检查.修复.填充任何类型的 GTF 和 GFF 的缺失信息(特 ...
- linux命令怎么查看文件时间排序,linux中ls命令按照文件大小排...-ls命令按大小与时间排序文件...-ls按时间排序输出文件列表的实例分析_169IT.COM...
ls命令可以按照文件大小进行输出排序. 代码示例: man ls -S sort by file size 用法: ls -Sl 这是按照由大到小排序,如果想要反过来,从小到大,那么用: ls -S ...
- gff文件_gff/gtf格式
1)gff3及gtf2简介 一个物种的基因组测序完成后,需要对这些数据进行解读,首先要先找到这些序列中转录起始位点.基因.外显子.内含子等组成元件在染色体中的位置信息(即注释)后才能再进行深入的分析. ...
- gff文件_GTF与GFF文件所有操作尽在这里
一.格式介绍 (一)gtf文件.GTF 为General Transfer Format缩写,跟 GFF2格式类似.相信大家做转录组分析时候经常会看到Cufflinks或者Stringtie软件对转录 ...
- gatk BQSR中gtak BaseRecalibrator 出现基因组染色体号与SNP数据染色体号对应不上错误
出现以下报错: A USER ERROR has occurred: Input files reference and features have incompatible contigs: No ...
- 已知基因染色体号,坐标如何快速获取基因序列
今天一直在尝试用python获取基因序列,原理嘛,就跟爬虫一样,但是巨慢,获取大量的基因序列的时候慎用!!,而且中途很容易出错. 然后在网上查找到,用bedtools真香 以下主要参考博客 bedto ...
最新文章
- Unknown host 'android.oa.com'. You may need to adjust the proxy settings in Gradle.
- 从Pixel 3a到Android Q,一份谷歌AI能力的“成绩单” | Google I/O全程回顾
- python远程监控jvm_python和jstat命令采集jvm数据导入zabbix监控-阿里云开发者社区
- Java 回调 (Callback) 接口学习使用
- 基于大数据搭建社交好友推荐系统
- Linux服务器启动流程详解
- 向左还是往右?Chris Dixon谈何时放弃你的idea
- android 极光IM集成及使用
- ElasticSearch6.0.1 拼音搜索,并且高亮显示结果 —6.X版本
- 图扑数字孪生数据中心机房,助力产业绿色低碳转型
- 极飞亮相世界无人机大会,创始人彭斌讲述农业无人机的未来
- mysql能够跨平台使用吗_Mysql跨平台(Windows,Linux,Mac)使用与安装
- 手机内存卡大小的计算
- 爬虫 (6)- Scrapy 实战案例 - 爬取不锈钢的相关钢卷信息
- Android 给WebView设置UA
- Java面试题目分析
- 关于移动端的touch事件(touchstart, touchmove, touchend,touchcancel)
- 宠物粮竞争后半场:国牌与洋牌的「信任保卫战」
- IR2184死区时间介绍
- Java面试之——Tomcat