我有一个 Perl 问题。我有一个文件,该文件的每一行都包含不同数量的 As Ts Gs 和 Cs 该文件如下所示
ATCGCTGASTGATGCTG
GCCTAGCCCTTAGC
GTTCCATGCCCATAGCCAAATAAA
我想为每一行添加行号然后每 6 个字符插入一个 \n,然后在创建的每个新行上每 3 个字符放置一个空白空间
输出示例应为
Line NO 1
ATC GCT
GAS TGA
TGC TG
Line NO 2
GCC TAG
CCC TTA
GC
我想出了下面的代码:
my $count = 0;
my $line;
my $row;
my $split;
open(F, "Data.txt") or die "Can't read file: $!";
open (FH, " > UpDatedData.txt") or die "Can't write new file: $!";
while (my $line = <F>) {
$count ++ ;
$row = join ("\n", ( $line =~ /.{1,6}/gs));
$split = join ("\t", ( $row =~ /.{3}/gs ));
print FH "Line NO\t$count\n$split\n";
}
close F;
close FH;
然而
它给出了以下输出
Line NO 1
ATC GCT
GA STG A
T GCT G
Line NO 2
GCC TAG
CC CTT A
G C
这必须有一些东西, \n 在这行代码中被算作一个字符
$split = join ("\t", ( $row =~ /.{3}/gs ));
有人知道如何解决这个问题吗?
任何帮助将不胜感激。
提前致谢
西奈德