مدخل إلى تحليل البيانات بلغة الـ R

برمجة nadhir 9142℃ 0تعليق

(مصدر الصورة)

السلام عليكم,

في المقال السابق تحدثنا هن أهمية تحليل البيانات والمراحل التي يتم من خلالها هذا التحليل لكن لم نتكلم كثيرا عن الادوات أو لغات البرمجة التي يمكننا استعمالها. من لغات البرمجة الأكثر استعمالا في مجال المعلوماتية الحيوية هي لغة الـ R حتى أنك لو اطلعت على عروض العمل أو شروط التوضيف في الشركات أو المخابر العلمية, تجد أن التمكن من لغة الـ R يعتبر من الشروط الأساسية في المترشح. كما أنها تعتبر من الشروط الأساسية في كل عمل يتطلب تحليل البيانات والاحصاء.

في هذا المقال سوف نحاول توضيح لماذا هذا الاهتمام بلغة الـ R وسأحاول ان شاء الله كتابة مواضيع متعلقة باستعمال الـ R في مجال المعلوماتية الحيوية, ربما ستكون مفيدة للمبتدئين في هذه اللغة.

ماهي لغة اللـ R؟

الـ R كما يعرفها موقعها الرسمي : "عبارة عن مجموعة متكاملة من البرمجيات التي تسمح بمعالجة البيانات, القيام بعمليات حسابية و اظهار البيانات الرسومية".

ينظر للـ R على أنها امتداد للغة الـ S و الـ S-PLUS المطورة في بداية التسعينيات من القرن الماضي. تتميز لغة الـ R بكثرة استعمالها من طرف الاحصائيين حتى أن الكثير من الناس يظن أنها حكر لهم مثل برنامج SPSS. لكن يتميزالـ R بكونه يتمتع بصفات لغات البرمجة الاخرى حيث يمكن القيام بالبرمجة الكائنية وحتى انشاء صفحات ويب.  لكن مايميزه هو انه يحتوي على العديد من الحزم الاحصائية مما جذب إليه العديد من الاحصائيين.

تلقى لغة الـ R اهتماما كبيرا في مجال المعلوماتية الحيوية لعدة أسباب, من بينها سهولة الاستعمال اذا يمكن لباحث ذو خلفية زهيدة في البرمجة أن يتعلم استعمالها على الاقل في مستوى يلبي حاجياته الاساسية في تحليل البيانات ورسم المخططات. وسبب مهم في رأيي هو توفر عدد كبير من حزم تحليل البيانات البيولوجية حيث أن أغلبية الباحثين يقومون بنشر خوازمياتهم بلغة الـ R إلى درجة أنه تم  انشاء مستودع  حزم  bioconductor (موقع يحتوي على الحزم البرمجية) خاص فقط بالحزم ذات العلاقة بمجال البرمجية الحيوية, بالاضافة إلى أن امكانية اظهار رسومات ذات شكل جذاب بسهولة.

تحميل وتنصيب الـ R

يمكن تحميل لغة الـ R من الموقع الرسمي (وذلك باختيار أقرب مستوع لمنطقتك للحصول على سرعة أكبر في التحميل). لتنصيب لغة الـ R لا تحتاج إلى القيام بأية تعديلات, خاصةً إذا كنت في نظام ويندوز أو ماكنتوش أما إن كنت في نظام لينوكس فيمكنك تثبيت الـ R بالطريقة التالية (مثال توزيعة Ubuntu).

أولا يجب أظافة موقع تحميل الـ R الخاص بتوزيعتك للنظام

ثم ادخال الأمر التالي للتصيب:

بعد التحميل يمكنك تشغيل بيئة برمجة الـ R كما هو موضح في الصورة (بيئة البرمجة هو برنامج يعطيك واجهة تسمح لك بالستعمال اللغة بطريقة ملائمة, أحسن من الكتابة في محرر نصوص ثم التشغيل اليدوي)

بيئة تطوير لغة الـ R

أذا كانت لديك خلفية في البرمجة ربما ستبدوا لك واجهة هذه البيئة ملائمة بعض الشيء لكن ربما تبدوا مخيفة للبعض, لهذا سوف نقوم بتثبيت برنامج RStudio الذي يقدم واجهة أحسن (للتنبيه هذا البرنامج فقط يقدم واجهة أحسن, لايقوم بثبيت الـ R). يمكن تحميل البرنامج من الموقع الرسمي هنا.

مثال عن واجهة RStudio

إظافة حزم جديدة:

تحتوي النسخة المحملة للـ R على مجموعة من الحزم التي تمكننا من قرائة البيانات وتحليلها والقيام بمجموعة من الاختبارات الاحصائية, لكن في بعض الأحيان نحتاج إلى القيام ببعض العمليات التي لاتوجد بصفة تلقائية في الـ R وليست سهلة البرمجمة أو ربما ليست هي لب الموضوع, لهذا تم انشاء مواقع (أو مخازن, Repository) تحتوي على مجموعة حزم مفتوحة المصدر مطورة من طرف اناس ومجموعات أبحاث.

1. مخزن الـ CRAN:

 المخزن الرسمي للـ R في موقع  الـ CRAN , ويحتوي على العديد من الحزم الخاصة بعدة مجالات بينها المعلوماتية الحيوية. إذا أردت تنصيب حزمة من الموقع الرسمي يمكنك كتابة الأمر التالي :

 

مثلا قمنا بتجربة RNA-Seq وبعدها استعملنا برنامج Bowtie لمطابقة السلاسل التي تحصلنا عليها مع الجينوم المرجعي وتحصلنا على ملفات BAM. لنفرض مثلا أننا نريد القيام بقراءة الملف والقيام ببعض العمليات. لكن للأسف لايمكن القيام بذللك باستعمال الـ R. يمكنك مثلا تحميل حزمة rbamtools من موقع الـ CRAN كالتالي:

2. مخزن الـ Bioconductor:

تهدف منصة اللـ Bioconductor إلى انشاء موقع يحتوي على حزم متعلقة بمجال معالجة البيانات الحيوية وتسهيل الوصول إليها واستعمالها. بالاضافة إلى الحزم يحتوي الموقع على مجموعة من البيانات المتعملة بكثرة, مثلا أسماء الجينات مع أرقام تسلسلها في عدة قواعد بيانات. على الرغم من أن منصة الـ Bioconductor مفتوحة المصدر إلا أنها لا تقبل الحزم إلى إذا خضعت لشروط الموقع, وهي إظافة ملفات لشرح كيفية استعمال الحزمة مع أمثلة وشرح لمختلف الدوال المتاحة ويكون الملف مرتبة بطريقة تتناسب مع شروط الموقع. لهذا في بعض الأحيان يقوم بعض الباحثين بارسال حزمهم لموقع الـ CRAN لسرعة النشر.

لتحميل الحزم من Bioconductor يجب أولا تحميل السكريبت الذي يقوم بذلك عن طريق الأمر:

ثم تحميل الحزمة باستعمال دالة biocLite. مثلا للتعامل مع السلاسل واحداثيات الجينات يمكننا تحميل حزمة GenomicRanges كالتالي

للحصول على شرح لأي دالة من الدوال يمكنك استعمال أمر help و اسم الدالة مثلا:

لغة الـ R:

تتميز لغة الـ R ببساطتها اذ أنها لغة سكريبت فلا تحتاج لكتابة دالة دخول كما هو في لغات البرمجة الكلاسيكية. مثل كل لغات السكريبت الأخرى أول سطر هو أول أمر.

1. المتغيرات البسيطة:

تتقبل لغة الـ R أنواع المتغيرات البسيطة مثل الاعداد الطبيعية, الأعداد الحقيقية  و الجمل النصية. يتم انشاء متغير باستعمال علامة -> او = مثلا :

2. الأشعة و المصفوفات :

بالاضافة إلى هذه الأنواع يمكن انشاء متغيرات ذات بنية أكثر تعقيدا كالأشعة (جدول بصف واحد) أو المصفوفات. يتم انشاء شعاع باستعمال الدالة c. يمكن انشاء أشعة تحتوي على أي نوع من البيانات مثلا:

يمكن انشاء المصفوفات باستعمال أمر matrix , في العادة تحتوي على قيم عددية, يمكن تحديد عدد الأعمدة عن طريق المعامل mrow و عدد الأسطر عن طريق المعامل mcol. مثلا في هذا المثال قمنا بانشاء مصفوفة بثلاثة أعمدة وسطريين تحتوي على قيمة 0

يمكن أيضا اعطاء قيم للمصفوفة على شكل شعاع أو مجموعة أشعة. مثلا في هذا المثال لدينا قيم تعبير ثلاث جينات في ثلاث تجارب ونريد وضعها في مصفوفة . ولجعل المصفوفة سهلة القراءة يمكننا استعمال الدالة rownames لتسمية السطور والدالة colnames لتسمية الاعمدة

3. العوامل (Factors):

في بعض الأحيان يكون لدينا شعاع يحتوي على بيانات متككرة أو بيانات مصنفة  (مثلا ذكر, انثى) في هذه الحالة يمكن استعمال نوع آخر من البيانات وهي العوامل والتي تسمح لك يتصنيف البيانات .

في هذا المثال نلاحظ أنه لدينا مستويين (نوعين) من القيم f و m

4. أطر البيانات (Data Frames):

يمكن أيضا تسميها بالجداول, هي شبيهة بالمصفوفات لكن كل عمود عبارة عن عامل (Factor) أو شعاع. مثلا يمكننا انشاء جدول يحتوي على أسماء الجينات ونسبة التعبير

مثلا اذا اردنا الحصول على اسماء الجينات فقط يمكننا كتابة اسم المتغير+ $ + اسم العمود, مثلا:

5. قراءة البيانات من الملفات:

يحتوي الـ R على أوامر تسمح للك بقراءة البيانات من الملفات وتحميلها على شكل جداول. في عادة النوعان الأكثر استعمالا من البيانات هي الملفات النصية حيث تكون فواصل بين الحقول (مثلا فراغ, نقطة فاصلة,...إلخ) أو ملفات برامج الجدولة (Excel مثلا) محفوضة على شكل ملف csv.

يوفر الـ R دالتين لقراءة هذا النوع من البيانات, دالة read.table التي تسمح بقراءة الملفات النصية وتعطيك تحكما تاما في كيفية القراءة. مثلا يمكنك أن تخبرها أن السطر الأول يمثل اسم الأعمدة وأن الحقول مفصولة بينها بفراغات يمفتاح Tab وليس Space.

مثلا ليكن لدينا ملف يحتوي على البيانات التالية:

لنفرض مثلا أن اسم الملف هو data.txt يمكننا قرائه كالتالي:

إذا كان حجم البيانات كبيرا من الأحسن استعمال أمر head لاظهار الأسطر الأولى من الملف, في العادة للتأكد من أن القراءة تمت بالشكل الصحيح. يمكن أيضا معرفة عدد الأسطر وعدد الأعمدة باستعمال أمر dim

نكتفي بهذا القدر في هذا المقال الذي ربما سيكون مفيدا للمتديين في لغة الـ R قدمنا فيه تعريفا باللغة وبعض الامثلة البسيطة لعدم تعقيد الأمور على القراء ذو معلومات محدودة في البرمجة.

في المقالات القادمة سوف نحاول التعامل مع مثال لبيانات حقيقية ونحاول استعمال الـ R للحصول على بعض المعلومات. أتمى أن يكون المقال مفيدا لبعض الزوار.

رابط المقالة : المعلوماتية الحيوية بالعربي » مدخل إلى تحليل البيانات بلغة الـ R

معجب (24)