抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

小黑的碎碎念:

最近接到的二代测序基因组数据基本上都是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
#!/usr/bin/perl -w
use strict;
# 经典list.txt指定检索文件夹
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: $!");
# busco和spades_result分别是储存注释结果的文件和基因组大小的文件
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: $!";

评论