#!/usr/local/bin/perl -w use strict; ## Prepare BLAST database my $dir = ".\db"; opendir(DIR0, $dir) or die "Can't open $dir: $!\n"; while (defined(my $file = readdir(DIR0))) { #用后缀找文件,next unless这样就可以在同一个目录下的不同后缀了。 next unless $file =~ /\.faa$/; #-pT处理蛋白 print `formatdb -i $file -p T -o T`; } ## Prepare .fna file my $dir1 = ".\nt"; opendir(DIR1, $dir) or die "Can't open $dir: $!\n"; while (defined(my $file = readdir(DIR1))) { next unless $file =~ /\.fna$/; #processed什么意思?连接文件名? my $processed_fna_file = join '.', $file, "processed"; open (FNA, $file) or die "Can't open $file: $!\n"; open (NEW, ">$processed_fna_file") or die "Can't open $processed_fna_file: $!\n"; #打开的文件不是零就处理。 while () { chomp; next if /\>gi/; print NEW; #添加新来的文件,但是为什么要去掉回车,会不会形成新的虚拟片段? } print "\n"; } ## Prepare .gbk file my $dir2 = ".\all"; opendir(DIR2, $dir) or die "Can't open $dir: $!\n"; my $sep = '*'x80; while (defined(my $file = readdir(DIR2))) { next unless $file =~ /\.gbk$/; my $processed_gbk_file = join '.', $file, "processed"; open (GBK, $file) or die "Can't open $file: $!\n"; open (NEW, ">$processed_gbk_file") or die "Can't open $processed_gbk_file: $!\n"; #模式匹配,提取基因信息。 while () { /\s+gene\s+\w*\(?(\d+)\.\.(\d+)/ && do { print NEW "\n$sep\n"; }; print NEW ; } }