SNP位点前后各50kb区间的基因

发布时间 2023-07-07 10:02:18作者: 王哲MGG_AI

#!/usr/bin/perl
use strict;
use warnings;
use Tie::File;

my %genes;
my @lines;

tie @lines, 'Tie::File', 'D:\\Desktop\\3.txt' or die "Cannot open file: $!\n";

foreach my $line (@lines) {
my @cols = split /\t/, $line;
my @annotations = split /,/, $cols[2];
my %unique_genes;
foreach my $anno (@annotations) {
while ($anno =~ /(Zm\w{12})/g) {
my $gene = $1;
$unique_genes{$gene} = 1;
}
}
if (%unique_genes) {
my $new_anno = join(',', keys %unique_genes);
$cols[2] = $new_anno;
} else {
$cols[2] = 'None';
}
$line = join("\t", @cols);
}

untie @lines;