रासायनिक डेटासेट [पायथन, आरडीकिट] का विज़ुअलाइज़ेशन और खोजपूर्ण डेटा विश्लेषण

2020 2 年 月 日 17

मशीन लर्निंग/QSAR मॉडल बनाने के प्रारंभिक चरण के रूप में, मॉडल चयन और समझ के लिए यौगिक डेटा की सामग्री का व्यापक विश्लेषण करना महत्वपूर्ण है, जिसमें रासायनिक संरचनाओं और गतिविधियों की सूची शामिल है, उदाहरण के लिए।

इस बार, हम लक्ष्य चर से जुड़ी सुविधाओं को खोजने के लिए डेटा विज्ञान पद्धति के रूप में यौगिक डेटासेट का खोजपूर्ण डेटा विश्लेषण करेंगे।

खोजपूर्ण डेटा विश्लेषण क्या है?

खोजपूर्ण डेटा विश्लेषण डेटा विश्लेषण के लिए एक महत्वपूर्ण प्रारंभिक चरण का दृष्टिकोण है जो डेटा विज़ुअलाइज़ेशन और सहसंबंध विश्लेषण के माध्यम से प्रमुख विशेषताओं का सारांश देता है।यह सत्यापित करने के लिए किया जाता है कि क्या मूल रूप से ग्रहण किए गए पैटर्न को डेटा से पहचाना जा सकता है और किसी पैटर्न की खोज की जा सकती है।

1970 के दशक के सांख्यिकीविद् तुकी की पुस्तक "अन्वेषणात्मक डेटा विश्लेषण"अब लगभग 2 बार उद्धृत किया गया है, और डेटा विश्लेषण में एक महत्वपूर्ण प्रक्रिया के रूप में स्थापित हो गया है (तुकी, जॉन डब्ल्यू। अन्वेषणात्मक डेटा विश्लेषणखंड 2. 1977.).

डेटा तैयारी

नमूना डेटा के लिए मॉलिक्यूलनेट के बीबीबीपी का उपयोग किया जाता है। रक्त-मस्तिष्क बाधा पैठ (यौगिक की रक्त-मस्तिष्क बाधा पैठ) के संबंध में, यह वह डेटा है जो "प्रवेश" को XNUMX और "गैर-प्रवेश" को XNUMX के साथ सारांशित करता है।

संदर्भ:https://pubs.acs.org/doi/10.1021/ci300124c

डेटा तैयारी

import numpy as np
import pandas as pd
from rdkit import rdBase, Chem
from rdkit.Chem import AllChem, PandasTools, Descriptors
pd.set_option('display.max_columns',250)
print('rdkit version: ',rdBase.rdkitVersion) #rdkit version:  2019.03.4
 
bbbp = pd.read_csv('./BBBP.csv',index_col=0)
 
# smilesからmolオブジェクトを作成し、DataFrameに格納
PandasTools.AddMoleculeColumnToFrame(bbbp,'smiles')
 
# molオブジェクトを作れなかった行の削除
bbbp = bbbp.dropna() 
bbbp.info()
Int64Index: 2039 प्रविष्टियाँ, 1 से 2053 डेटा कॉलम (कुल 4 कॉलम): नाम 2039 गैर-शून्य वस्तु p_np 2039 गैर-शून्य int64 मुस्कान 2039 गैर-शून्य वस्तु ROMol 2039 गैर-शून्य वस्तु dtypes: int64(1), वस्तु (3) ) ) स्मृति उपयोग: 79.6+ केबी

डेटासेट का विहंगम दृश्य

सबसे पहले, यह देखने के लिए सूची की जाँच करें कि कौन सी रासायनिक संरचनाएँ शामिल हैं।

# 化学構造を一覧で表示
PandasTools.FrameToGridImage(bbbp[:18], column='ROMol', legendsCol='name', molsPerRow=6, subImgSize=(150,150))

  

# ターゲットp-npの分布を確認
bbbp.p_np.value_counts()
1 1560 0 479 नाम: p_np, dtype: int64

कंपाउंड डिस्क्रिप्टर से लक्ष्य चर के साथ सहसंबंधों का अन्वेषण करें

चूँकि केवल दृश्य अवलोकन द्वारा रूपरेखा को समझना संभव नहीं है, इसलिए डेटासेट का विहंगम दृश्य प्राप्त करने के लिए वर्णनकर्ता बनाएं और एकत्रित करें।
यौगिक विवरणकों का सारांश नीचे दिया गया है।

# 記述子を生成する
for i,j in Descriptors.descList:
    bbbp[i] = bbbp.ROMol.map(j)

# 要約統計量の表示
bbbp.describe()

# データセット全体における構造記述子の分布
import matplotlib.pyplot as plt
import math

list = ["p_np", "RingCount", "NumAromaticRings", "NumAromaticCarbocycles", "NumAromaticHeterocycles", "NumSaturatedCarbocycles", "NumSaturatedHeterocycles", "NumSaturatedRings"]

fig = plt.figure(figsize=(15,7))
for i, c in enumerate(list):
   ax = fig.add_subplot(
       math.ceil(len(list) / 4), 4, i + 1)
   # plot the continent on these axes
   sns.countplot(x=c, data=bbbp,  ax=ax)
   ax.set_title(c)
fig.tight_layout()
plt.show()

 

# targetによる構造記述子の分布の違いを可視化
list = ["RingCount", "NumAromaticRings", "NumAromaticCarbocycles", "NumAromaticHeterocycles", "NumSaturatedCarbocycles", "NumSaturatedHeterocycles", "NumSaturatedRings"]
 
fig = plt.figure(figsize=(15,7))
for i, c in enumerate(list):
   ax = fig.add_subplot(
       math.ceil(len(list) / 4), 4, i + 1)
   # plot the continent on these axes
   sns.countplot(x=c, data=bbbp, ax=ax, hue="p_np")
   ax.set_title(c)
fig.tight_layout()
plt.show()

 

# logPと分子量でplotしてみる
import seaborn as sns
sns.scatterplot(x="MolWt", y="MolLogP", data=bbbp,
                hue="p_np",
                alpha=0.5)

चूंकि यह रक्त-मस्तिष्क बाधा पारगम्यता है, महत्वपूर्ण कारक लगभग ज्ञात हैं, लेकिन हम इस संबंध को देख सकते हैं कि झिल्ली पारगम्यता के लिए हाइड्रोफोबिसिटी (logP) और आणविक भार (MolWt) महत्वपूर्ण हैं।

खोजपूर्ण डेटा विश्लेषण के लिए मैंने निम्नलिखित को एक सामान्य विधि के रूप में उपयोगी पाया ( खोजपूर्ण डेटा विश्लेषण में सही विज़ुअलाइज़ेशन पद्धति का चयन और आरेखण कैसे करें ).इसे समग्र वर्णनकर्ताओं पर लागू करना भी अच्छा होगा।