Один из самых быстрых и простых способов получения многих последовательностей из UniProt в Python - это использование пакета pyfaidx .Это простой, но хорошо проверенный инструмент, основанный на хорошо известном алгоритме от SAMtools.Он также пригоден для академических публикаций.
Просто загрузите файл fasta со всеми последовательностями (или только выбранным подмножеством) из https://www.uniprot.org/downloads,, при необходимости распакуйте файл, установите pyfadix (например, с pip install pyfaidx --user
илиbioconda) и загрузите последовательности с помощью конструктора Fasta
:
from pyfaidx import Fasta
sequences = Fasta('uniprot_sprot.fasta')
Первая загрузка может занять некоторое время, но после этого все операции будут очень быстрыми.Теперь sequences
является объектом, похожим на диктовку, поэтому вы можете получить доступ к нужной записи с помощью:
p53 = sequences['sp|P04637|P53_HUMAN']
print(p53)
, которая показывает последовательность:
MEEPQSDPSVEPPLSQETFSDLWKLLPENNVLSPLPSQAMDDLMLSPDDIEQWFTEDPGPDEAPRMPEAAPPVAPAPAAPTPAAPAPAPSWPLSSSVPSQKTYQGSYGFRLGFLHSGTAKSVTCTYSPALNKMFCQLAKTCPVQLWVDSTPPPGTRVRAMAIYKQSQHMTEVVRRCPHHERCSDSDGLAPPQHLIRVEGNLRVEYLDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDSSGNLLGRNSFEVRVCACPGRDRRTEEENLRKKGEPHHELPPGSTKRALPNNTSSSPQPKKKPLDGEYFTLQIRGRERFEMFRELNEALELKDAQAGKEPGGSRAHSSHLKSKKGQSTSRHKKLMFKTEGPDSD
Этот объект последовательности, однако, оченьбольше, чем строка - он предоставляет множество полезных служебных функций и атрибутов (long_name
, unpadded_len
, фрагменты с: start
, end
, complement()
и reverse()
и т. д. - см. документацию для получения дополнительной информации.).
Если вы хотите получить доступ к последовательности по UniprotID вместо полного идентификатора из файла fasta, используйте:
def extract_id(header):
return header.split('|')[1]
sequences = Fasta('uniprot_sprot.fasta', key_function=extract_id)
print(sequences['P04637'])
PS.Только одно предостережение - следите за индексацией на основе 1.