У меня есть два файла:
Тот, с которым выглядит вот так (я показываю только одну часть):
>UniRef90_A0A0K2VG56 - Cluster: titin
MTTQAPTFTQPLQSVVALEGSAATFEAHVSGFPVPEVSWFRDGQVISTSTLPGVQISFSD
GRARLMIPAVTKANSGQYSLRATNGSGQATSTAELLVTAETAPPNFTQRLQSMTVRQGSQ
VRLQVRVTGIPTPVVKFYRDGAEIQSSLDFQISQEGELYSLLIAEAYPEDSGTYSVNATN
SVGRATSTAELLVQGEEVVPAKKTKTIVSTAQISETRQTRIEKKIEQKIEAHFDAKSIAT
VEMVIDGATGQQLPHKTPPRIPPKPKSRSPTPPSVAAKAQLGRQQSPSPIRHSPSPVRHV
>UniRef90_UPI00045E3C3E - Cluster: titin isoform X25
MTTQAPTFTQPLQSVVVLEGSTATFEAHISGFPVPEVSWIRDGQVISTSTLPGVQISFSD
GRAKLTIPAVTKANSGRYSLRATNGSGQATSTAELLVKAETAPPNFVQRLQSMTVRQGSQ
VRLQVRVTGIPTPVVKFYRDGAEIQSSLDFQISQEGELYSLLIAEAYPEDSGTYSVNATN
SVGRATSTAELLVQGEEEVPAKKTKTIVSTAQISESRQTRIEKKIEAHFDARSIATVEMV
IDGAAGQQLPHKTPPRIPPKPKSRSPTPPSIAAKAQLARQQSPSPIRHSPSPVRHVRAPT
Второй, с несколькими строками, состоит только из символов Uniref90_XXXXXXX:
UniRef90_A0A0K2VG56 UniRef90_A0A0P5UY87 UniRef90_A0A0V0H4B3 UniRef90_A0A132GS96
UniRef90_A0A095VQ09 UniRef90_A0A0C1UI80 UniRef90_A0A1M4ZSK2 UniRef90_A0A1W1CJV7 UniRef90_A0A1Z9J2X0
Я хочу получить список с соответствующими последовательностями (буквы ... RKMQAATAATG ...) различных Uniref90_XXXXXXX.
Я имею в виду, что для первой строки моего второго файла я должен получить список последовательностей для 4 Uniref90_XXXXXXX. Я не хочу сохранять символы «Uniref90_XXXXXXX» второго файла, только последовательности.
Краткий пример того, что мне нужно:
UniRef90_A0A0K2VG56 UniRef90_A0A0P5UY87
должен дать мне:
MTTQAPTFTQPLQSVVVLEGSTATFEAHISGFPVPEVSWIRDGQVISTSTLPGVQISFSD
GRAKLTIPAVTKANSGRYSLRATNGSGQATSTAELLVKAETAPPNFVQRLQSMTVRQGSQ
VRLQVRVTGIPTPVVKFYRDGAEIQSSLDFQISQEGELYSLLIAEAYPEDSGTYSVNATN
SVGRATSTAELLVQGEEEVPAKKTKTIVSTAQISESRQTRIE ###UniRef90_A0A0K2VG56
VEMVIDGATGQQLPHKTPPRIPPKPKSRSPTPPSVAAKAQLGRQQSPSPIRHSPSPVRHV
RAPTPSPVRSVSPAGRISTSPIRSVKSPLLTRKMQAATAATGSEVPPPWKQESYMASSAE
AEMRETTMTSSTQIRREERWEGRYGVQE ###Uniref90_A0A0P5UY87
Возможно ли в Python это сделать?
Редактировать:
На данный момент я попытался создать словарь с идентификатором Uniref90_XXXXX в качестве ключей и соответствующими последовательностями в качестве значений.
f2=open("~/PROJET_M2/data/uniref90.fasta", "r")
fasta={}
for i in f2:
i=i.rstrip("\n")
if i.startswith(">"):
l=next(f2,'').strip() ### the problem is there I guess
i=i[1:]
i=i.split(" ")
fasta[i[0]]=l
print(fasta)
Это не работает, я имею в виду, ключи хорошо созданы, но, как вы можете видеть в первом файле, есть несколько строк. Этот код добавляет только первую строку после идентификатора Uniref90_XXXXXXX, а не все строки.