注释文件通常按照染色体序号升序排列,而有时需要我们对获取的注释文件进行排序。对于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文件按染色体号排序相关推荐

  1. 利用python快速转换GenBank和RefSeq的染色体号

    1.解决问题:在NCBI中参考基因组的GenBank和RefSeq sequence拥有不同的染色体号(如下图),某些情况下需要进行染色体号的相互转化.故自己写一个python脚本,进行简易的转化. ...

  2. gff文件_GFF文件格式简介

    鉴于代码的排版问题,建议在电脑上阅读本文. 组装得到基因组的序列只是开展基因组研究的第一步,基因的结构是基因组后续功能研究的基石.在NCBI中,除了提供基因组序列外,还提供了基因结构的信息,采用的就是 ...

  3. gff文件_GFF格式说明

    .原始定义见 SONG website gff 是存文本文件,由 tab 键隔开的 9 列组成,以下是各列的说明: Column 1: "seqid" 序列的编号,编号的有效字符 ...

  4. AGAT|GTF/GFF文件处理工具

    AGAT AGAT是Another Gff Analysis Toolkit的缩写, 是一个用于处理GTF/GFF文件的工具.AGAT 有检查.修复.填充任何类型的 GTF 和 GFF 的缺失信息(特 ...

  5. linux命令怎么查看文件时间排序,linux中ls命令按照文件大小排...-ls命令按大小与时间排序文件...-ls按时间排序输出文件列表的实例分析_169IT.COM...

    ls命令可以按照文件大小进行输出排序. 代码示例: man ls -S sort  by file size 用法: ls -Sl 这是按照由大到小排序,如果想要反过来,从小到大,那么用: ls -S ...

  6. gff文件_gff/gtf格式

    1)gff3及gtf2简介 一个物种的基因组测序完成后,需要对这些数据进行解读,首先要先找到这些序列中转录起始位点.基因.外显子.内含子等组成元件在染色体中的位置信息(即注释)后才能再进行深入的分析. ...

  7. gff文件_GTF与GFF文件所有操作尽在这里

    一.格式介绍 (一)gtf文件.GTF 为General Transfer Format缩写,跟 GFF2格式类似.相信大家做转录组分析时候经常会看到Cufflinks或者Stringtie软件对转录 ...

  8. gatk BQSR中gtak BaseRecalibrator 出现基因组染色体号与SNP数据染色体号对应不上错误

    出现以下报错: A USER ERROR has occurred: Input files reference and features have incompatible contigs: No ...

  9. 已知基因染色体号,坐标如何快速获取基因序列

    今天一直在尝试用python获取基因序列,原理嘛,就跟爬虫一样,但是巨慢,获取大量的基因序列的时候慎用!!,而且中途很容易出错. 然后在网上查找到,用bedtools真香 以下主要参考博客 bedto ...

最新文章

  1. Unknown host 'android.oa.com'. You may need to adjust the proxy settings in Gradle.
  2. 从Pixel 3a到Android Q,一份谷歌AI能力的“成绩单” | Google I/O全程回顾
  3. python远程监控jvm_python和jstat命令采集jvm数据导入zabbix监控-阿里云开发者社区
  4. Java 回调 (Callback) 接口学习使用
  5. 基于大数据搭建社交好友推荐系统
  6. Linux服务器启动流程详解
  7. 向左还是往右?Chris Dixon谈何时放弃你的idea
  8. android 极光IM集成及使用
  9. ElasticSearch6.0.1 拼音搜索,并且高亮显示结果 —6.X版本
  10. 图扑数字孪生数据中心机房,助力产业绿色低碳转型
  11. 极飞亮相世界无人机大会,创始人彭斌讲述农业无人机的未来
  12. mysql能够跨平台使用吗_Mysql跨平台(Windows,Linux,Mac)使用与安装
  13. 手机内存卡大小的计算
  14. 爬虫 (6)- Scrapy 实战案例 - 爬取不锈钢的相关钢卷信息
  15. Android 给WebView设置UA
  16. Java面试题目分析
  17. 关于移动端的touch事件(touchstart, touchmove, touchend,touchcancel)
  18. 宠物粮竞争后半场:国牌与洋牌的「信任保卫战」
  19. IR2184死区时间介绍
  20. Java面试之——Tomcat

热门文章

  1. 超级详细了解进程和病毒知识
  2. Kali linux tor浏览器重新启动无法启动
  3. Lua 批量修改文件夹下文件名
  4. 成都榆熙:什么是自然搜索权重?
  5. html 随机画圈 不重叠,html实现随机图片
  6. Error CS0116 A namespace cannot directly contain members such as fields or methods
  7. SpringCloud开发个人博客项目(框架搭建)
  8. Unity3D -- ParticleSystem 烛光制作
  9. Mac重装cisco问题
  10. Whoosh如何搜索--进阶版