如何用perl找到序列中GC值最高的一条

2025-03-28 10:00:35
推荐回答(1个)
回答1:

只做到输出每条序列的GC含量
#!/usr/bin/perl

use strict;

use warnings;

my $filename="seq.txt";

open IN, $filename or die $!;

$/=">";; # 设置输入记录分隔符为”>”,并去除第一个”>”

while(){

chomp; # 去掉末尾的”>”

my $id= $1 if (/^(\S+)/); # 获取序列ID

s/^.+?\n//; # 删除第一行

s/\s//g; # 删除序列中的空白字符

my $GC=(tr/GC/GC/); #计算G或C碱基个数

my $AT=(tr/AT/AT/); #计算A或T碱基个数

my $len=$GC+$AT;

my $GC_cont=$len?$GC/$len:0;

print "$id\t$GC_cont\n";

}

$/="\n"; # 把输入记录分隔符改为默认值

close IN;