У меня есть dataFrame с ароматическими пептидами и их аминокислотной последовательностью, и я пытаюсь подсчитать появление каждой аминокислоты и сохранить его в новом dataFrame . Для начала я просто работаю с очень маленьким фреймом данных всего с 5 строками. Для моего фактического dataFrame последовательности могут быть длиннее 1 символа, и если, например, строка: 'RPFFLR'
, я бы хотел, чтобы она подсчитывала: 2 * F, 1 * L, 1 * P и 2 * R.
Это исходный dataFrame:
ID Name Sequence
0 1 bitter amino acid R
3 4 bitter amino acid P
6 7 bitter amino acid F
36 172 bitter amino acid L
438 105 bitter amino acid V
У меня есть следующий код:
def countAA(Bseq, ref):
countF = [0]
countL = [0]
countP = [0]
countR = [0]
countV = [0]
Bseq = Baadata.Sequence
ref = 'ADEFGHIKLMPQRSTVWY'
for i in Bseq:
for c in ref:
if ref[4] in Bseq:
countF += 1
elif ref[9] in Bseq:
countL += 1
elif ref[11] in Bseq:
countP += 1
elif ref[13] in Bseq:
countR += 1
elif ref[16] in Bseq:
countV += 1
return [countF, countL, countP, countR, countV]
Bseq = Baadata.Sequence
for i in Bseq:
ref = 'ADEFGHIKLMPQRSTVWY'
Baa = countAA(Bseq, ref)
Bdf = pd.DataFrame((Baa),
index=['F', 'L', 'P', 'R', 'V'],
columns=['Bitter']
)
print(Bdf)
Для этого небольшого ввода ожидаемый результат будет:
Bitter
F 1
L 1
P 1
R 1
V 1
Что я делаю неправильно, так как мой код не считает символы?