[問題] 資料擷取

看板Perl作者 (Tala)時間13年前 (2012/06/11 10:25), 編輯推噓0(008)
留言8則, 5人參與, 最新討論串1/1
各位大大好 最近在撰寫一個程式 是在一筆資料中(為.dat檔)要擷取部分資料成為fasta檔 範例為其中一筆序列資料 如下 ID 104K_THEPA STANDARD; PRT; 924 AA. AC P15711; DT 01-APR-1990 (Rel. 14, Created) DE 104 kDa microneme-rhoptry antigen. OS Theileria parva. OC Eukaryota; Alveolata; Apicomplexa; Piroplasmida; Theileriidae; OC Theileria. OX NCBI_TaxID=5875; RN [1] RP SEQUENCE FROM N.A. RC STRAIN=Muguga; RX MEDLINE=90158697; PubMed=1689460; DOI=10.1016/0166-6851(90)90007-9; RA Iams K.P., Young J.R., Nene V., Desai J., Webster P., Ole-Moiyoi O.K., RA Musoke A.J.; RT "Characterisation of the gene encoding a 104-kilodalton microneme- RT rhoptry protein of Theileria parva."; RL Mol. Biochem. Parasitol. 39:47-60(1990). CC -!- SUBCELLULAR LOCATION: In microneme/rhoptry complexes. CC -------------------------------------------------------------------------- CC This SWISS-PROT entry is copyright. CC -------------------------------------------------------------------------- DR EMBL; M29954; AAA18217.1; -. DR PIR; A44945; A44945. DR TIGRFAMs; TIGR01870; cas_TM1810; 1. KW Antigen; Repeat; Sporozoite. FT DOMAIN 1 19 Hydrophobic. FT DOMAIN 905 924 Hydrophobic. SQ SEQUENCE 924 AA; 103625 MW; 289B4B554A61870E CRC64; MKFLILLFNI LCLFPVLAAD NHGVGPQGAS GVDPITFDIN SNQTGPAFLT AVEMAGVKYL TTVELAPEPK ASRIVVDDEG TEADDEETHP PEERQKTEVR RRRPPKKPSK SPRPSKPKKP KKPDSAYIPS ILAILVVSLI VGIL // 每筆序列都是從ID開始 //結束 而我要擷取的資料模式為 P15711|104K_THEPA|Antigen; Repeat; Sporozoite MKFLILLFNI LCLFPVLAAD NHGVGPQGAS GVDPITFDIN SNQTGPAFLT AVEMAGVKYL TTVELAPEPK ASRIVVDDEG TEADDEETHP PEERQKTEVR RRRPPKKPSK SPRPSKPKKP KKPDSAYIPS ILAILVVSLI VGIL (擷取名稱) AC|ID|KW| SQ 請問我要如何下正規化的指令呢? 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 113.61.134.176

06/11 22:15, , 1F
每行開頭兩個字是空白的?
06/11 22:15, 1F

06/11 22:16, , 2F
啊 沒看到底下還有
06/11 22:16, 2F

06/13 17:06, , 3F
一般正規化做得到這麼複雜嗎@@?不考慮用split等之類的處
06/13 17:06, 3F

06/13 17:06, , 4F
理??
06/13 17:06, 4F
因為連字串該怎麼處裡都有點不清楚... 所以應該要先split 再來擷取嗎? 請問split部分該如何撰寫 目前試著寫出AC、ID、KW擷取的字串處理 $AC=~ /AC\s+(\S+);.*/ $ID=~ /ID\s+(\S+)\s.*/ $KW=~ /KW\s+(\S+);.*/ 請問我的正規化指令有寫對嗎? 謝謝! ※ 編輯: aattsat 來自: 113.61.134.176 (06/13 22:59)

06/15 22:01, , 5F
何不一行一行處理
06/15 22:01, 5F

06/16 17:35, , 6F
序列都在最後面,所以讀到SQ之後跳下一行,之後全讀,再
06/16 17:35, 6F

06/16 17:36, , 7F
把空白拿掉,應該就可以了吧
06/16 17:36, 7F
因為卡在沒有split 前面程式跑出來都不正確 加入split後 程式已順利執行 也把空白都置換掉了~ 謝謝各位的建議~ ※ 編輯: aattsat 來自: 113.61.134.176 (06/20 17:45)

06/21 11:31, , 8F
NCBI應該沒那摸麻煩吧~直接選fasta就可以下載seq不是?
06/21 11:31, 8F
因為個人研究是要使用舊版的資料,只剩dat檔 才會需要此步驟 ※ 編輯: aattsat 來自: 113.61.134.176 (06/21 12:54)
文章代碼(AID): #1FrLS3bx (Perl)
文章代碼(AID): #1FrLS3bx (Perl)