2017-02-19 5 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-контент, используя s = input() –

+0

, он работает точно так же, как и для '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)) 
Смежные вопросы