L17 · 24 دقيقة
بايثون العلمي
NumPy وPandas وMatplotlib.
أهداف التعلّم
- استخدام NumPy وPandas وMatplotlib كأدوات قراءة بيانات لا كزينة.
- كتابة شيفرة قصيرة قابلة لإعادة التشغيل مع بذور ومسارات واضحة.
- رفض إخفاء التكرار الإحصائي داخل متوسط لامع.
بايثون مختبر لا مسرح
في CADD تُستخدم بايثون لقراءة جداول نشاط، حساب واصفات، ورسم ما يجب أن يُرى: توزيعات، نُسخ مستقلة، وبقايا نماذج. المكتبات القياسية: NumPy للمصفوفات، Pandas للجداول، Matplotlib للرسوم. الشيفرة التي لا يستطيع زميلك تشغيلها ليست نتيجة.
python -c "import numpy as np, pandas as pd, matplotlib; print(np.__version__)"
الغرض: التحقق من أن البيئة ترى المكتبات العلمية.
المُدخل: بيئة Python مفعّلة (conda/venv).
المُخرج: أرقام إصدارات تُنسخ إلى ملف البيئة.
المعنى: بلا إصدارات مثبتة لا يمكن إعادة الإنتاج.
أخطاء شائعة: ModuleNotFoundError يعني أنك لست في البيئة التي تظنها.
مثال قياسي: متوسط وخطأ معياري
من NumPy الواضحة: x = np.array([...]); m = np.mean(x); s = np.std(x, ddof=1); se = s / np.sqrt(x.size). ddof=1 للعينة. إن رسمت m دون s فأنت تخفي النُسخ. Pandas: pd.read_csv('activities.csv') ثم افحص الوحدات والقيم الناقصة قبل أي نموذج.
نظافة بحثية
- مسارات نسبية أو إعداد مُعلن؛ لا /home/me/Desktop.
- np.random.default_rng(seed) عندما يكون العشوائي جزءاً من التحليل.
- لا تعدّل البيانات يدوياً في Excel بعد أن قرأها السكربت دون أثر.
لماذا؟ — لماذا نُصرّ على NumPy بدل حلقات بايثون لقياس RMSD؟
الوضوح والسرعة وتجنب أخطاء الفهرسة. العمليات المتجهية تُقرأ كمعادلة. الحلقة البطيئة تغري بتقليل عدد الإطارات بلا مبرر.
ماذا لو؟ — ماذا لو نسخت خلية تحسب pIC50 مرتين على عمود حُوّل سلفاً؟
نشاط مشوّه ولوغاريتم اللوغاريتم. ارسم histogram قبل النموذج. إن رأيت قيماً حول 6–9 فهذا pIC50؛ إن رأيت 1e-9 فأنت على IC50 المولاري.
تمرين
اكتب ثلاثة أسطر NumPy تحسب الخطأ المعياري لثلاثة RMSD نُسخ (قيم تعليمية: 1.8، 2.1، 2.4 أنغستروم) واشرح لماذا لا تثبت التقارب.