2017-02-19 95 views
1

我想從NCBI數據庫中找到的序列中刪除行更改。 例如:https://www.ncbi.nlm.nih.gov/protein/148744825?report=fasta刪除行更改(換行符)

我的目標是直接從網頁上覆制,以便做輸入並獲得一行來正確處理序列。到現在爲止,我不得不使用記事本並手動刪除所有空間(這真的很煩人)。

我已經嘗試了許多事情:

s = s.replace('\n', '') 
s = s.strip() 
s = ''.join(s.split()) 

他們沒有爲我工作。也許問題是我如何做輸入。

預先感謝您。

+1

請打印'repr(s)'並將其添加到您的腳本中,並將其添加到您的問題中,以便我們可以看到下載的數據的樣子。 – martineau

+0

你也可以嘗試s =''.join(s.splitlines())'。 – martineau

回答

1

這工作:

s='''MATLKEKLIAPVAEEETRIPNNKITVVGVGQVGMACAISILGKSLTDELALVDVLEDKLKGEMMDLQHGS 
LFLQTPKIVADKDYSVTANSKIVVVTAGVRQQEGESRLNLVQRNVNVFKFIIPQIVKYSPDCIIIVVSNP 
VDILTYVTWKLSGLPKHRVIGSGCNLDSARFRYLMAEKLGIHPSSCHGWILGEHGDSSVAVWSGVNVAGV 
SLQELNPEMGTDNDSENWKEVHKMVVESAYEVIKLKGYTNWAIGLSVADLIESMLKNLSRIHPVSTMVKG 
MYGIENEVFLSLPCILNARGLTSVINQKLKDEEVAQLKKSADTLWGIQKDLKDL''' 

s 
Out[69]: 'MATLKEKLIAPVAEEETRIPNNKITVVGVGQVGMACAISILGKSLTDELALVDVLEDKLKGEMMDLQHGS\nLFLQTPKIVADKDYSVTANSKIVVVTAGVRQQEGESRLNLVQRNVNVFKFIIPQIVKYSPDCIIIVVSNP\nVDILTYVTWKLSGLPKHRVIGSGCNLDSARFRYLMAEKLGIHPSSCHGWILGEHGDSSVAVWSGVNVAGV\nSLQELNPEMGTDNDSENWKEVHKMVVESAYEVIKLKGYTNWAIGLSVADLIESMLKNLSRIHPVSTMVKG\nMYGIENEVFLSLPCILNARGLTSVINQKLKDEEVAQLKKSADTLWGIQKDLKDL' 

s.split() 
Out[70]: 
['MATLKEKLIAPVAEEETRIPNNKITVVGVGQVGMACAISILGKSLTDELALVDVLEDKLKGEMMDLQHGS', 
'LFLQTPKIVADKDYSVTANSKIVVVTAGVRQQEGESRLNLVQRNVNVFKFIIPQIVKYSPDCIIIVVSNP', 
'VDILTYVTWKLSGLPKHRVIGSGCNLDSARFRYLMAEKLGIHPSSCHGWILGEHGDSSVAVWSGVNVAGV', 
'SLQELNPEMGTDNDSENWKEVHKMVVESAYEVIKLKGYTNWAIGLSVADLIESMLKNLSRIHPVSTMVKG', 
'MYGIENEVFLSLPCILNARGLTSVINQKLKDEEVAQLKKSADTLWGIQKDLKDL'] 

''.join(s.split()) 
Out[71]: 'MATLKEKLIAPVAEEETRIPNNKITVVGVGQVGMACAISILGKSLTDELALVDVLEDKLKGEMMDLQHGSLFLQTPKIVADKDYSVTANSKIVVVTAGVRQQEGESRLNLVQRNVNVFKFIIPQIVKYSPDCIIIVVSNPVDILTYVTWKLSGLPKHRVIGSGCNLDSARFRYLMAEKLGIHPSSCHGWILGEHGDSSVAVWSGVNVAGVSLQELNPEMGTDNDSENWKEVHKMVVESAYEVIKLKGYTNWAIGLSVADLIESMLKNLSRIHPVSTMVKGMYGIENEVFLSLPCILNARGLTSVINQKLKDEEVAQLKKSADTLWGIQKDLKDL' 

不知道你的問題可能是什麼。投票結束。

+0

它適用於我,如果我這樣做,但不是如果我使用s = input() –

+0

定義s內容,它對我來說與'input'完全相同。 –

+0

我試過使用s = input() print(''.join(s.split()))'但它仍然不起作用。我的輸出只是其中的第一行。我直接從網頁複製。 –

0
#!/usr/bin/env python3 
import urllib.request 
response = urllib.request.urlopen('https://www.ncbi.nlm.nih.gov/sviewer/viewer.cgi?tool=portal&save=file&log$=seqview&db=protein&report=fasta&sort=&id=148744825&from=begin&to=end&maxplex=1') 
html = str(response.read(), 'utf-8') 
lines = html.splitlines() 

first_line = lines[0] 
rest = "".join(lines[1:]) 

print("first: %s rest: %s" % (first_line, rest))