作者aattsat (Tala)
看板Perl
標題[問題] 資料擷取
時間Mon Jun 11 10:25:04 2012
各位大大好
最近在撰寫一個程式
是在一筆資料中(為.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
→ iFEELing:每行開頭兩個字是空白的? 06/11 22:15
→ iFEELing:啊 沒看到底下還有 06/11 22:16
→ OneGuilty:一般正規化做得到這麼複雜嗎@@?不考慮用split等之類的處 06/13 17:06
→ OneGuilty:理?? 06/13 17:06
因為連字串該怎麼處裡都有點不清楚...
所以應該要先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)
→ piglon:何不一行一行處理 06/15 22:01
→ s4553711:序列都在最後面,所以讀到SQ之後跳下一行,之後全讀,再 06/16 17:35
→ s4553711:把空白拿掉,應該就可以了吧 06/16 17:36
因為卡在沒有split 前面程式跑出來都不正確
加入split後 程式已順利執行 也把空白都置換掉了~
謝謝各位的建議~
※ 編輯: aattsat 來自: 113.61.134.176 (06/20 17:45)
→ windincloud:NCBI應該沒那摸麻煩吧~直接選fasta就可以下載seq不是? 06/21 11:31
因為個人研究是要使用舊版的資料,只剩dat檔
才會需要此步驟
※ 編輯: aattsat 來自: 113.61.134.176 (06/21 12:54)