伙计们。我正在写一段代码,生成氨基酸序列。它有两个相同的循环-第一个循环工作正常,而另一个循环给出“ValueError:无法将字符串转换为浮点:“”。现在,我试着调试它,将所有内容都设置为字符串,但仍然不起作用。代码如下:
from rdkit import Chem
import pandas as pd
import numpy as np
from rdkit.Chem import AllChem
import itertools
G='NCC(=O)O'
A='NC(C)C(=O)O'
V='NC(C(C)C)C(=O)O'
I='NC(C(C)CC)C(=O)O'
S='NC(CO)C(=O)O'
T='NC(C(O)C)C(=O)O'
C='NC(CS)C(=O)O'
U='NC(C[SeH])C(=O)O'
M='NC(CCSC)C(=O)O'
P='N1C(CCC1)C(=O)O'
K='NC(CCCCN)C(=O)O'
D='NC(CC(=O)O)C(=O)O'
E='NC(CCC(=O)O)C(=O)O'
N='NC(CC(=O)N)C(=O)O'
Q='NC(CCC(=O)O)C(=O)O'
H='NC(Cc1nc[nH]c1)C(=O)O'
F='NC(Cc1ccccc1)C(=O)O'
Y='NC(Cc1ccc(O)cc1)C(=O)O'
R='NC(CCCNC(=N)N)C(=O)O'
W='NC(Cc1c[nH]c2ccccc12)C(=O)O'
peptides=pd.DataFrame({'FASTA': [],'SMILES': []})
peptides['SMILES'].astype(str)
aminoAcidsFASTA=['G','A','V','I','S','T','C','U','M','P','K','D','E','N','Q','H','F','Y','R','W']
aminoAcidsSMILES=[G,A,V,I,S,T,C,U,M,P,K,D,E,N,Q,H,F,Y,R,W]
j=0
g=0
for i in range(0, 3):
for fasta in itertools.permutations(aminoAcidsFASTA, i):
fasta=''.join(fasta)
peptides.at[j, 'FASTA']=fasta
j=j+1
for smiles in itertools.permutations(aminoAcidsSMILES, i):
smiles=''.join(smiles)
peptides.at[g, 'SMILES']=smiles
g=g+1
peptides
第一次向
"FASTA"
列添加值时,pandas将"SMILES"
列填充为nan
,这是一个浮点值。从那以后,pandas认为列应该只包含浮点数,这会导致错误因为您处理的是字符串,所以在创建数据帧时只需添加以下关键字参数。现在,您的代码应该运行良好:
如果您有任何其他问题,请告知我们
相关问题 更多 >
编程相关推荐