2017-04-23 130 views
-3

文件A包含一行类似下面,为什么我不能删除空行?

SNP1 AA TT GGSNP2 GG CC AASNP3 GG CC AA... 

我想改变格式,使之像这样,

SNP1 TT  AA  TT  GG  CC  AA 
SNP2 AA  GG  CC  TT  GG  CC 
SNP3 GG  AA  TT  TT  CC  TT 

... (每行开始SNP_) 我已经写了一个perl脚本来用\ nSNP替换SNP,但输出文件的第一行总是空的,尽管我已经做了一些尝试删除第一行的操作。 那么,有什么建议吗?或另一种方式来获得最终的输出文件。 非常感谢。

+2

请出示你已经尝试的代码,那么这将是我们更容易帮助你 –

+2

你为什么要'AA TT GG'成为'TT AA TT GG CC AA'?有没有你使用的公式?请解释 –

+0

您需要做的就是省略第一次出现。 – simbabque

回答

0
open $file_in... 
open $file_out... 
local $/ = 'SNP'; 
<$file_in>; # discard empty row 
while (my $record = <$file_in>) { 
    chomp $record; 
    # make changes to $record, which will start as e.g. "1 AA TT GG" 
    .... 
    print $file_out "SNP$record\n"; 
} 
2

只要确保有你改变每SNP前一个字符:

s/.\K(?=SNP)/\n/g 
相关问题