Saya telah mencoba mencari tahu kesalahan ini pada python menggunakan PubChemPy tetapi saya macet. Saya mencoba memasukkan daftar bahan kimia dan memberikan informasi Canonical Smiles untuk daftar sekitar 200 bahan kimia. Ini adalah kode yang saya gunakan

for i in List_of_Chemicals['Chemical name']:
    prop = pcp.get_properties(['CanonicalSMILES'])

Bantuan apa pun akan dihargai

-1
Celin Younan 12 Mei 2021, 01:57

2 jawaban

Jawaban Terbaik

Sunting ke-2: Kode ini beralih dari daftar nama untuk mendapatkan cid dan kemudian properti:

import pubchempy as pcp

# list of chemical names
List_of_Chemicals = ['benzene', 'toluene', '2-nonenal']

for chemical_name in List_of_Chemicals:

    cid=pcp.get_cids(chemical_name)
    prop = pcp.get_properties('CanonicalSMILES', cid)
    print (chemical_name + ' ' + str(prop))

Get_properties membutuhkan cid sebagai argumen yang diperlukan. Anda tidak bisa memberikan nama kimia. Jadi, Anda memerlukan langkah perantara untuk mendapatkan daftar pengenal yang sesuai dengan nama dengan pcp.get_cids, yang telah saya lakukan pada kode di atas.

0
H. McClelland 12 Mei 2021, 00:26

Sepertinya Anda meneruskan daftar ke get_properties() tetapi tidak mengambil daftar, tetapi dapat mengambil beberapa parameter yang berbeda. Berikut adalah kutipan dari dokumentasi saat ini:

Fungsi get_properties memungkinkan pengambilan properti tertentu tanpa harus berurusan dengan seluruh record gabungan. Ini sangat berguna untuk mengambil sifat-sifat sejumlah besar senyawa sekaligus:

p = pcp.get_properties('IsomericSMILES', 'CC', 'smiles', searchtype='superstructure')

https://pubchempy.readthedocs.io/en/latest/guide/properties.html

Pertanyaan Anda kurang sedikit dalam hal detail yang berguna, tetapi saya membayangkan Anda benar-benar menginginkan sesuatu seperti:

for i in List_of_Chemicals['Chemical name']:
    prop = pcp.get_properties(i)
0
dylanjm 11 Mei 2021, 23:01