[問題]有關資料擷取部分的一個小問題

看板Perl作者 (努力一點比在實在!)時間16年前 (2008/05/02 16:36), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/5 (看更多)
小弟最近在寫資料讀取與輸出的資料擷取部分,有一些問題想問各位高手該如何解決 原始檔案內容(Homo.fa) >ENSP00000332127 pep:novel chromosome:NCBI36:1:245196755:245237946:-1 gene:ENSG00000197472 transcript:ENST00000328519 MGLLAFRDVALEFSPEEWECLDPAQRSLYRDVMLENYRNLISLGEDSFNMQFLFHSLAMS KPELIICLEARKEPWNVNTEKTARHSVLSSYLTEDILPEQGLQVSFQKVMLRRYERCCLE KLRLRNDWEIPCEDVLASPLPSAMILSFLRPPQKQKHVKPTEPIQSKTLQWL >ENSP00000355458 pep:novel chromosome:NCBI36:1:245328029:245332038:-1 gene:ENSG00000188295 transcript:ENST00000366502 DSVAFEDVAVNFTQEEWALLDSSQKNLYREVMQETCRNLASEANGKTRILKITSKNLGKI .... 我要的資料是下面這個形式 >ENSP00000332127 MGLLAFRDVALEFSPEEWECLDPAQRSLYRDVMLENYRNLISLGEDSFNMQFLFHSLAMS KPELIICLEARKEPWNVNTEKTARHSVLSSYLTEDILPEQGLQVSFQKVMLRRYERCCLE KLRLRNDWEIPCEDVLASPLPSAMILSFLRPPQKQKHVKPTEPIQSKTLQWL 將上面的結果寫進到$openESPN.fas檔案中 目前我的程式只能判別到第一行>ENSP00000332127的部分,至於第二行或下一個>的部分 ,我就不知道該怎麼去寫,因為我要將一個>後面的資料個別輸出,請問要如何去判別讀 到下一行,或是讀到下一個>?? 謝謝!! source code如下: #!/usr/bin/perl open(IN, "/home/philippe/Homo_peptides/release-49/Homo.fa"); while(<IN>) { chomp; if($_ =~ /^(>.*?)\s.*?/) { $ENSP = $1; #print"$ENSP", "\n"; } if ($_ =~ /^>(.*?)\s.*?/) { $openESPN = $1; open(FILE, ">>/home/philippe/CutPeptide/$openESPN.fas"); print FILE $ENSP; close FILE; } } close IN; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.55.234
文章代碼(AID): #186jAZVa (Perl)
討論串 (同標題文章)
文章代碼(AID): #186jAZVa (Perl)