生信编程直播第11题:把文件内容按照染色体分开写出
问题描述这个需求很常见,因为一般生物信息学数据比较大,比如sam,vcf,或者gtf,bed都是把所有染色体综合在一起的文件。如果想根据染色体把大文件拆分成小的文件呢?比如:ftp://ftp.ncbi.nlm.nih.gov/pub/CCDS/current_human/CCDS.current.txt这个文件里面的基因就有染色体信息,那根据染色体把这个文件拆分成1~22和其它染色体,这样的23个文件,我练习题如果你觉得下载文件比较麻烦,我给你一个测试数据如下:01020304050607080910chr2 43995310 43995986chr17 49788603 49789067chr17 59565573 59566163chr19 8390308 8390745chr12 49188033 49189033chr7 974903 975570chr7 98878532 98879500chr7 44044672 44045322chr1 153634052 153634772chr11 60905850 60906575给出示例perl代码如下:0102030405060708091011121314151617181920use FileHandle;foreach( 1..22 ){$normal_chr{"chr".$_}=1 ;open $fh{"chr".$_},">chr$_.txt" or die;}open other,">chr_other.txt" or die;open FH,'a.bed';while(<FH>){chomp;@F=split;if(exists $normal_chr{$F[0]}){$fh{$F[0]}->print( "$_\n" );}else{print other $_;}}foreach( 1..22 ){close $fh{$_};}close other;历史题目:生信编程直播第0题-生信编程很简单!生物信息学技能面试题(第1题)-人类基因组的外显子区域到底有多长生物信息学技能面试题(第2题)-探索人类基因组序列生物信息学技能面试题(第3题)-探索人类基因组注释文件生物信息学技能面试题(第4题)-多个同样的行列式文件合并起来生物信息学技能面试题(第5题)-根据GTF画基因的多个转录本结构生物信息学技能面试题(第6题)-下载最新版的KEGG信息,并且解析好生信编程直播第七题:写超几何分布检验!生信编程直播第八题:ID转换大全生信编程直播第9题-根据指定染色体及坐标得到参考碱基生信编程直播第10题:根据指定染色体及坐标得到位置信息