在Python中使用2 FOR创建列表/表

问题描述 投票:0回答:1

我编写了一个程序,就像在出口一样

A       Alanina
B       Ácido aspártico ou Asparagina
C       Cisteína
D       Ácido aspártico
E       Ácido glutâmico
F       Fenilalanina
G       Glicina
H       Histidina
I       Isoleucina
J       Leucina (L) ou Isoleucina
K       Lisina
L       Leucina
M       Metionina
N       Asparagina
O       Pirrolisina
P       Prolina
Q       Glutamina
R       Arginina
S       Serina
T       Treonina
U       Selenocisteína
V       Valina
W       Triptofano
X       qualquer
Y       Tirosina
33
0
4
26
32
14
38
14
26
0
25
36
15
16
0
19
15
16
14
20
0
32
0
11

但是我希望这些数字位于字母和单词列的旁边,列表的类型应像这样

-A ------ Alanina -------- A出现的次数

-B ------天冬氨酸或天冬酰胺--------出现B的次数

它正在从e.coli.fasta.txt文件中获取信息:

>sp|A1AA21|PEPT_ECOK1 Peptidase T OS=Escherichia coli O1:K1 / APEC OX=405955 GN=pepT PE=3 SV=1
MDKLLERFLNYVSLDTQSKAGVRQVPSTEGQWKLLHLLKEQLEEMGLINVTLSEKGTLMA
TLPANVPGDIPAIGFISHVDTSPDCSGKNVNPQIVENYRGGDIALGIGDEVLSPVMFPVL
HQLLGQTLITTDGKTLLGADDKAGIAEIMTALAVLQQKNIPHGDIRVAFTPDEEVGKGAK
HFDVDAFDARWAYTVDGGGVGELEFENFNAASVNIKIVGNNVHPGTAKGVMVNALSLAAR
IHAEVPADESPEMTEGYEGFYHLASMKGTVERADMHYIIRDFDRKQFEARKRKMMEIAKK
VGKGLHPDCYIELVIEDSYYNMREKVVEHPHILDIAQQAMRDCDIEPELKPIRGGTDGAQ
LSFMGLPCPNLFTGGYNYHGKHEFVTLEGMEKAVQVIVRIAELTAQRK

这是程序代码:

f = open('e.coli.fasta.txt','r')
sequencia = f.readlines()
amino = [] #para colocar o arquivo numa lista só com o texto de interresse 

for linha in sequencia:
  if linha.find('>') != 0:
    amino.append(linha)

tfasta= "".join(amino)

aminoacidos = {}
aminoacidos = {'A':'Alanina','B':'Ácido aspártico ou Asparagina','C':'Cisteína', 'D':'Ácido aspártico','E':'Ácido glutâmico','F':'Fenilalanina','G':'Glicina','H':'Histidina','I':'Isoleucina','J':'Leucina (L) ou Isoleucina','K':'Lisina','L':'Leucina','M':'Metionina','N':'Asparagina','O':'Pirrolisina','P':'Prolina','Q':'Glutamina','R':'Arginina','S':'Serina','T':'Treonina','U':'Selenocisteína','V':'Valina','W':'Triptofano','X':'qualquer','Y':'Tirosina'}

def ocorrencias(string):
  result = {}
  chaves = 'ABCDEFGHIJKLMNOPQRSTUVXY'
  for i in chaves:
    result[i] = tfasta.count(i)
  return result  

ocor = (ocorrencias(tfasta))

with open ('PeptidadeT-aminoacidos','w') as p:
  for i in range(65,90):
    a = ('%s' % (chr(i)))
    p.write('{:4s}\t{:5s}\n'.format(a,(aminoacidos[a])))
  for e in ocor.values():
    p.write('{}\n'.format(e))
python
1个回答
0
投票
ocor变量是一个称为dictionary [1]的python数据类型。在您的代码中,它由{key:value} = {“ aminoacido”:ocorrencias}组成。您可以使用氨基酸名称来获取出现的次数,如下所示:ocor['A']它将返回33。

f = open('e.coli.fasta.txt','r') sequencia = f.readlines() amino = [] #para colocar o arquivo numa lista só com o texto de interresse for linha in sequencia: if linha.find('>') != 0: amino.append(linha) tfasta= "".join(amino) aminoacidos = {} aminoacidos = {'A':'Alanina','B':'Ácido aspártico ou Asparagina','C':'Cisteína', 'D':'Ácido aspártico','E':'Ácido glutâmico','F':'Fenilalanina','G':'Glicina','H':'Histidina','I':'Isoleucina','J':'Leucina (L) ou Isoleucina','K':'Lisina','L':'Leucina','M':'Metionina','N':'Asparagina','O':'Pirrolisina','P':'Prolina','Q':'Glutamina','R':'Arginina','S':'Serina','T':'Treonina','U':'Selenocisteína','V':'Valina','W':'Triptofano','X':'qualquer','Y':'Tirosina'} def ocorrencias(string): result = {} chaves = 'ABCDEFGHIJKLMNOPQRSTUVWXY' for i in chaves: result[i] = tfasta.count(i) return result ocor = ocorrencias(tfasta) with open ('PeptidadeT-aminoacidos','w') as p: for i in range(65,90): a = ('%s' % (chr(i))) p.write('-{:4s}------{:5s}------{}\n'.format(a, aminoacidos[a], ocor[a]))

© www.soinside.com 2019 - 2024. All rights reserved.