小黑的碎碎念:
最近接到的二代测序基因组数据基本上都是100个一起的,工作量比较大,也很难找到对应的处理包或者源代码,所以自己写的比较多,做一期codes合辑总结一下。
目前呢,自己掌握比较熟练的是R和Python,但是这俩常年不用,而且对文本的处理非常之麻烦,所以在做基因组分析的时候还是尝试了不太熟悉的Perl和Shell,算是感受了一把掌握多种编程语言的快乐吧~
这几行的目的是从busco文件夹的short_summary.specific.agaricales_odb10.busco.txt文件中提取基因组注释情况,以及提取scaffolds.fasta文件的大小(即基因组大小),提取后的内容我一般都是复制到excel中进行作图和统计,毕竟文章里肯定会用到这些数据。尝试了一下perl语言!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| use strict;
open(IN, "list.txt") or die ("Can not open in.txt for reading: $!"); open(OUT, ">datastat.txt") or die ("Can not write to out.txt: $!");
my $busco="busco"; my $spades="spades_result"; while (my $line=<IN>) { chomp($line); print $line, "\t"; if (-d $line) { my $filesize=(lstat "$line/scaffolds.fasta")[7]; print $filesize, "\n"; print OUT "$line\t$filesize\t"; } if (-d "$line/busco") { open(BUSCO, "$line/busco/short_summary.specific.agaricales_odb10.busco.txt") or die ("Can not open in.txt for reading: $!"); while(my $line=<BUSCO>){ if ($line =~ /:(\d+.\d+)%/g) { my @num = $line =~ /:(\d+.\d+)%/g; print $num[0], "\t", $num[1], "\t", $num[2], "\t", $num[3], "\n"; print OUT $num[0], "\t", $num[1], "\t", $num[2], "\t", $num[3], "\n"; } } }else{ print "$line Not busco! \n"; }
} close IN or die "Can not close file: $!"; close OUT or die "outfile: $!";
|