2017-04-23 101 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 
相關問題