我有一個問題之前,我從中學到了一個問題。我發現實現導致了一個字符串列表,而不是一個記錄列表。我正在解析的文件具有如下的記錄;如何解析記錄?
SP | P30375 | 1A01_GORGO I類組織相容性抗原的Gogo-A * 0101的α鏈OS =大猩猩大猩猩PE = 2 SV = 1 MAVMAPRTLVLLLSGALALTQTWAGSHSMRYFSTSVSRPGRGEPRFIAVGYVDDTQFVRF DSDAASQRMEPRAPWIEQEGPEYWDRNTRNVKAHSQTDRVDLGTLRGYYNQSEDGSHTIQ RMYGCDVGSDGRFLRGYQQDAYDGKDYIALNEDLRSWTAADMAAEITKRKWEAAHFAEQL RAYLEGTCVEWLRRHLENGKETLQRTDAPKTHMTHHAVSDHEAILRCWALSFYPAEITLT WQRDGEDQTQDTELVETRPAGDGTFQKWAAVVVPSGQEQRYTCHVQHEGLPEPLTLRWEP SSQPTIPIVGIIAGLVLFGAVIAGAVVAAVRWRRKSSDRKGGSYSQAASSDSAQGSDVSL TACKV SP | P30443 | 1A01_HUMAN HLA I類組織相容性抗原A-1α鏈OS =智人GN = HLA-A PE = 1 SV = 1 MAVMAPRTLLLLLSGALALTQTWAGSHSMRYFFTSVSRPGRGEPRFIAVGYVDDTQFVRF DSDAASQKMEPRAPWIEQEGPEYWDQETRNMKAHSQTDRANLGTLRGYYNQSEDGSHTIQ IMYGCDVGPDGRFLRGYRQDAYDGKDYIALNEDLRSWTAADMAAQITKRKWEAVHAAEQR RVYLEGRCVDGLRRYLENGKETLQRTDPPKTHMTHHPISDHEATLRCWALGFYPAEITLT WQRDGEDQTQDTELVETRPAGDGTFQKWAAVVVPSGEEQRYTCHVQHEGLPKPLTLRWEL SSQPTIPIVGIIAGLVLLGAVITGAVVAAVMWRRKSSDRKGGSYTQAASSDSAQGSDVSL TACKV
只是有sp的一個 「>」,我打算前用作記錄分界點。那麼,我該如何結束:
[[>sp|P30375|1A01_GORGO Class I histocompatibility antigen Gogo-A*0101 alpha chain OS=Gorilla gorilla gorilla PE=2 SV=1
MAVMAPRTLVLLLSGALALTQTWAGSHSMRYFSTSVSRPGRGEPRFIAVGYVDDTQFVRF
DSDAASQRMEPRAPWIEQEGPEYWDRNTRNVKAHSQTDRVDLGTLRGYYNQSEDGSHTIQ
RMYGCDVGSDGRFLRGYQQDAYDGKDYIALNEDLRSWTAADMAAEITKRKWEAAHFAEQL
RAYLEGTCVEWLRRHLENGKETLQRTDAPKTHMTHHAVSDHEAILRCWALSFYPAEITLT
WQRDGEDQTQDTELVETRPAGDGTFQKWAAVVVPSGQEQRYTCHVQHEGLPEPLTLRWEP
SSQPTIPIVGIIAGLVLFGAVIAGAVVAAVRWRRKSSDRKGGSYSQAASSDSAQGSDVSL
TACKV]
[>sp|P30443|1A01_HUMAN HLA class I histocompatibility antigen A-1 alpha chain OS=Homo sapiens GN=HLA-A PE=1 SV=1
MAVMAPRTLLLLLSGALALTQTWAGSHSMRYFFTSVSRPGRGEPRFIAVGYVDDTQFVRF
DSDAASQKMEPRAPWIEQEGPEYWDQETRNMKAHSQTDRANLGTLRGYYNQSEDGSHTIQ
IMYGCDVGPDGRFLRGYRQDAYDGKDYIALNEDLRSWTAADMAAQITKRKWEAVHAAEQR
RVYLEGRCVDGLRRYLENGKETLQRTDPPKTHMTHHPISDHEATLRCWALGFYPAEITLT
WQRDGEDQTQDTELVETRPAGDGTFQKWAAVVVPSGEEQRYTCHVQHEGLPKPLTLRWEL
SSQPTIPIVGIIAGLVLLGAVITGAVVAAVMWRRKSSDRKGGSYTQAASSDSAQGSDVSL
TACKV]]
using parsec?這是我開始使用的代碼; how to parse a uniprot-file with parsec?
以及如何打印我的記錄?我認爲:let records = parserFile「uniprot_sprot.fasta」,讓fstrecord = head記錄,會給我一個記錄列表([Record]),並且fstrecord現在將成爲該列表的第一條記錄。 – stian 2015-04-01 10:08:59
ParserFile是一個monadic計算(IO [Records]),因此如果你想用你的記錄內容進行操作,你應該在monadic上下文中進行操作,例如在case語句中,比如:「Right xs - > print $ head xs「。但現在類型是IO(),並且您還必須將Left語句更改爲:Left msg - > print msg – felipez 2015-04-01 14:45:38
再次感謝您。 – stian 2015-04-01 19:02:27