2017-02-19 48 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))