বায়োইনফরমেটিক্স শিখতে আমি যে পাঁচটি বই পড়েছি

অনেকেই জানতে চায় বায়োইনফরমেটিক্স শেখার জন্য সবচেয়ে ভালো বই কি? আসলে প্রয়োজন অনুযায়ী একেক সময় একেকটা বই কাজের লাগে। এই লাইনের বইকে দুই ভাগে ভাগ করা যায়: টেকনিক্যাল ও ফান্ডামেন্টাল।

মনে করেন আপনার মাইক্রোবিয়াল কমিউনিটি এনালাইসিস শিখতে হবে। এটার জন্য খুঁজলে আপনি টেকনিক্যাল বই পেয়ে যাবেন। টেকনিক্যাল বইয়ে লেখক-পাঠক ম্যাচ সহজে হয় — লেখক জানেন তিনি কার জন্য লিখছেন আর পাঠক জানেন তিনি কি খুঁজছেন।

কিন্তু ভালো ফান্ডামেন্টাল বই খুঁজে পাওয়া কঠিন। বিশেষ করে বায়োইনফরমেটিক্সের মতো মাল্টিডিসিপ্লিনারি বিষয়ে যেখানে একেকজন শিক্ষার্থী একেক ব্যাকগ্রাউন্ড থেকে আসছেন। আমি গত দশ-পনের বছরের অভিজ্ঞতা থেকে যে কয়েকটা বই ফান্ডামেন্টাল হিসেবে ভালো মনে হয়েছে, তাদের একটা তালিকা করলাম। আমার বায়োইনফরমেটিক্স শেখার জার্নি থেকে কেন এই বইগুলো পিক করেছি সেটাও ব্যাখ্যা করলাম এই লেখায়।

আমার বায়োইনফরমেটিক্স শেখা শুরু হয় Bio-Bio-1 সংগঠনে।  বাংলাদেশে তথ্যপ্রযুক্তির একজন গুরু ও উদ্যোক্তা ফখরুজ জামান ভাই সংগঠনটি ২০০৯ সালে শুরু করেন। আমি বায়ো-বায়ো-১ সংগঠনের পাঠচক্রে অংশ নেয়া শুরু করি ২০১২ সালের ডিসেম্বর থেকে। বায়োইনফরমেটিক্স শেখার শুরুতে সবাই যে সমস্যায় পড়েন তা হলো এর multi-disciplinary প্রকৃতি নিয়ে। বায়োইনফরমেটিক্স বুঝে কাজ করতে গেলে জীববিজ্ঞান, কম্পিউটারবিদ্যা ও পরিসংখ্যানের জ্ঞান আবশ্যক। পাঠচক্রে যারা আসতেন, তারা একেকজন একেক বিষয়ের পড়াশুনায় দক্ষ। কিন্তু অন্যান্য বিষয়ে তারা একেবারেই আনাড়ী। নিজের বিষয় ছাড়া অন্যান্য বিষয়ের অপরিচিত পরিভাষার মুখোমুখি হয়ে সবারই সমস্যা হতো। তখন জামান ভাই আমাদের এ সমস্যা সামাল দিতে একটি কৌশল শেখান – তা হলো Theory of partial ignorance!

অর্ধ-অজ্ঞতা দিয়ে কাজ চালাও

সংক্ষেপে, Theory of partial ignorance-এর মূল বক্তব্য হলো আমরা যখন শেখা শুরু করি, তখন অনেক কিছুই অবোধ্য ও অপরিচিত লাগবে। আমি জীববিজ্ঞানের ছাত্র, বায়োইনফরমেটিক্সের কোন পদ্ধতি বুঝতে গেলে হয়তো কম্পিউটারবিদ্যা বা পরিসংখ্যানের এমন সব তত্ত্ব চলে আসবে যা আমার বর্তমানে আয়ত্বের বাইরে। সে জন্য কি বসে থাকলে হবে? আমরা কি আবার কম্পিউটারবিদ্যা বা পরিসংখ্যান পড়ে আসবো? বলা বাহুল্য, নতুন করে গোড়া থেকে কম্পিউটারবিদ্যা বা পরিসংখ্যান পড়তে গেলে কমপক্ষে একবছর তো লাগবেই। এভাবে আর হয়তো বায়োইনফরমেটিক্স শেখা শুরুই করা হবে না। জামান ভাই আমাদের শেখালেন, নতুন কিছু শিখতে গেলে যদি অপরিচিত অবোধ্য কোন বিষয়ে আটকে যাই, সেটা আপাতত বাদ দিয়ে এগিয়ে যাও। না হয় শেখার মধ্যে কিছু গোঁজামিল থাকবে আপাতত। কিন্তু ঐ বিষয়ের মূল ধারণাটা অন্তত পাওয়া যাবে। সব চাইতে বড় বিষয়, খুঁটিনাটি অনেক কিছু না বুঝলেও ঐ ধারণা নিয়ে কাজ শুরু করা যাবে। একবার যদি কেউ কাজ শুরু করে ফেলেন, তাহলে কাজ করতে করতে জানার গোঁজামিলগুলো ভালোভাবে শিখে ফেলা যাবে।

অর্ধঅজ্ঞতার সাহসকে পুঁজি করে আমরা আনকোরা কয়েকজন ঠিক করলাম বায়োইনফরমেটিক্সের গোঁড়ার বিষয়গুলো শেখা শুরু করা যাক। প্রাণরসায়ন ও অনুপ্রাণবিজ্ঞান থেকে ছিলো আরিফ আশরাফ ও কম্পিউটারবিদ্যা থেকে ছিলো রবিউল ইসলাম ভাই। বায়োইনফরমেটিক্সের গুরু সাদ্দাম হোসেন ভাই আমাদের দুইটা বই দিয়েছিলেন, একটা কালো-লাল মলাটের, অন্যটা নীল! কালো-লাল বইটা ছিলো  Biological Sequence Analysis। এটা বায়োইনফরমেটিক্সের নিও-ক্লাসিক বই ধরা হয়। ডারবিন ও সহলেখকবৃন্দ পরিসংখ্যানের সাম্ভাব্যতার তত্ত্ব দিয়ে বায়োইনফরমেটিক্সের গোড়ার বিষয়গুলো ব্যাখ্যা করেছেন।  নীল-মলাটের অন্যটি ছিলো পাভেল পেভজনারের Bioinformatics Algorithm। দুটোই বায়োইনফরমেটিক্সের খুব বিখ্যাত বই।

আমরা ডারবিনের বইটা দিয়ে শুরু করি। আমি আর অপু জীববিজ্ঞানের, রবিউল ভাই কম্পিউটারবিজ্ঞানে। কিন্তু পরিসংখ্যানের কেউই ছিলো না। আর পরিসংখ্যান আমরা খুব একটা ভালো বুঝতামও না। তাও জামান ভাইয়ের অর্ধ-অজ্ঞতার সাহসকে পুঁজি করে আমরা বইটা পড়া শুরু করি আর প্রতিটা লাইনে ধাক্কা খাই। ডারবিনের এ বইটার প্রতিটা লাইন ছিলো অবোধ্য তত্ত্বে ঠাঁসা। যতটা পারি নিজেরা বোঝার চেষ্টা করি। যেটা বুঝি না সেটা বাদ দিয়ে এগিয়ে যাই। এভাবে আমাদের গোঁজামিল দিয়ে বায়োইনফরমেটিক্স বোঝা শুরু হলো। এ শেখার শুরু হয়েছিলো সিকোয়েন্স এলাইনমেন্ট দিয়ে। কিভাবে ডায়নামিক এলগরিদম দিয়ে দুইটা ডিএনএ সিকোয়েন্সের মধ্যকার এলাইনমেন্ট খুঁজে বের করতে হয়, সেটা কম্পিউটেশনের গাণিতিক স্ট্যাটিস্টিকসের ভাষায় বুঝতে গিয়ে যদিও আমাদের দাঁত প্রথমে বেশ নড়বড়ে হয়ে গিয়েছিলো, কিন্তু পরবর্তীতে সেটা আমাদের দাঁতকে বেশ শক্তই করে। আমরা আরো কঠিন জিনিসপত্র নাড়াচাড়া শুরু করতে থাকি।

বায়োইনফরমেটিক্স এলগরিদম, রোজালিন্ড, ও MOOC যুগের শুরু

অনার্স র্ড ইয়ারে থাকা অবস্থাতেই আমি পাইথন শেখা শুরু করি। তবে নিজে নিজে, একা একা বেশিদূর যাওয়া হয় না। ২০১২ সালে আমি যখন ফোর্থ ইয়ারে পড়ি, তখন Bio-Bio-1 এর খোঁজ পাই। Bio-Bio-1 এ তখন তাইমুন ভাইয়ের উদ্যোগে পাইথন প্রোগ্রামিং এর উপরে একটা সাপ্তাহিক সেশন চলছিলো। সে সেশনগুলো আমার পাইথন প্রোগ্রামিং এর বেসিকগুলো শক্ত করে।

কিন্তু প্রোগ্রামিং বেসিক জানা মানেই প্রোগ্রামিং পারা নয়। প্রোগ্রামিং তো মূলত প্রবলেম সলভিং। সাদ্দাম ভাই ও জামান ভাই rosalind.info ওয়েবসাইটের সন্ধান দেন। এই সাইটে বায়োইনফরমেটিক্সের বিভিন্ন সমস্যা সমাধান করতে হয়। এ জন্য বিভিন্ন ধরনের এলগরিদম জানা প্রয়োজন হয়। জামান ভাই ও সাদ্দাম ভাই আমাদের মধ্যে চ্যালেঞ্জ ছুড়ে দেন যে একশটা রোজালিন্ড প্রবলেম সলভ করতে হবে। আমরাও লেগে পড়ি। সে সময় একই সাথে রুহশান আবীরও পাল্লা দিয়ে প্রবলেম সলভিং করতে থাকে। পাশাপাশি বায়ো-বায়ো-১ বাংলাদেশে রোজালিন্ড সাইটটি জনপ্রিয়করণ করতে থাকে। এর ফলে খুব দ্রুতই বাংলাদেশ রোজালিন্ডের স্কোরবোর্ডে দেশ হিসেবে তৃতীয় অবস্থানে চলে যায়। একসময় আমিও একশটি সমস্যা সমাধান করে ফেলি। বিভিন্ন সার্চ, গ্রাফ এলগরিদম ইম্প্লিমেন্টেশন করা হয় এসব করতে গিয়ে।

একই সময়ে Coursera ম্যাসিভ ওপেন অনলাইন কোর্স (সংক্ষেপে MOOC) নিয়ে আসে। সেখানে পাভেল পেভজনার ও ফিলিপ ক্যাম্পিউ বায়োইনফরমেটিক্স এলগরিদম শেখানো শুরু করেন বাস্তব উদাহরণ থেকে। আমি প্রথম কোর্সটা করি। আসলে এই কোর্সের সাথে রোজালিন্ড.ইনফো ওয়েবসাইটের অনেক মিল, মূলত একই কন্টেন্ট। এই কোর্স থেকে তারা একটা বইও বের করে। পিএইচডির সময় লাইব্রেরি থেকে বইটা যোগাড় করে পড়ি কিছুদূর। রোজালিন্ড.ইনফো, বায়োইনফরমেটিক্স এলগিদমস এক্টিভ লার্নিং এপ্রোচ বই, এবং কোর্সেরার মুক সিরিজটি ঘুরেফিরে একই জিনিস।

এগুলো সলভ করতে গিয়ে অনেক দিন ঘন্টার পর ঘন্টা বসে ছিলাম, আটকে ছিলাম! এই প্রবলেমগুলো সলভ করতে গিয়ে আমার প্রোগ্রামিং স্কিল শক্তপোক্ত হয়, প্রোগ্রামিং মূলত প্রবলেম সলভিং, সেটার চর্চা হয়।

স্ট্যাটিস্টিক্স ইন প্লেইন ইংলিশ

এটা ঠিক বায়োইনফরমেটিক্সের বই নয়। বায়োইনফরমেটিক্সের একটা গুরুত্বপূর্ণ অংশ হলো পরিসংখ্যান। বিশ্ববিদ্যালয়ের প্রথম ও দ্বিতীয় বর্ষে পরিসংখ্যান পাঠ্যহিসেবে থাকলেও তা মাথার ভেতর খুব একটা ঢুকতে পারে নি। একাডেমিকভাবে পরিসংখ্যানের ক্লাসগুলো ছিলো গণিত-ভিত্তিক, সূত্র আছে অংক করো এই ধরনের। গণিত দরকারী জিনিস, কোন ধারণাকে বিমূর্তভাবে উপস্থাপনের জন্য অপরিহার্য।

তবে পরিসংখ্যানের আলোচ্য বিষয়গুলো আসলে কোন প্রেক্ষিতে কি দরকারে এসেছে, প্রতিটি বিষয়ের গণিতের পেছনে ভাবনাটা আসলে কি এই অন্তর্দৃষ্টি তৈরি না হলে আলোচনাগুলো অর্থহীন হয়ে পড়ে। তখন শুধু সূত্র শিখে অংক কষাই হয়, পরিসংখ্যানের কোন বোধ তৈরি হয় না। পরিসংখ্যান না বোঝার কারণে পরবর্তীতে থিসিস করতে গিয়ে কিংবা কোন বৈজ্ঞানিক নিবন্ধ পড়তে গিয়ে ঠেকে যেতে হয়েছে।

এরকম অবস্থায় স্ট্যাটিস্টিকস ইন প্লেইন ইংলিশ বইটা হাতে আসে। এখানে লেখক পরিসংখ্যানকে গাণিতিকভাবে উপস্থাপনের চেয়ে কোন বিশ্লেষণ পদ্ধতি কোন প্রয়োজনে এসেছে, পদ্ধতিটার মানে কি দাঁড়ায়, বিশ্লেষণের পেছনে অন্তর্দৃষ্টিটা কি এই বিষয়গুলোতে বিস্তারিত আলোচনা করেছেন — সোজা বাংলায় (মানে ভাষাটা ইংরেজী হলেও আলোচনাটা সরল ভাষায়)। এই বইটা পড়ার পর পরিসংখ্যানের অনেকগুলো গুরুত্বপূর্ণ আর প্রাথমিক বিশ্লেষণ পদ্ধতির ধারণা পরিস্কার হয়েছে আমার। পরিসংখ্যানের আরেকটু সিরিয়াস বুঝ্ তৈরি করতে এই বোধ্-টা কাজে দেবে। মজার বিষয় হলো, বইয়ের উদাহরণ ঠিক প্রাকৃতিক বিজ্ঞানের নয়, বরং হিউম্যানিটিস এর।

ইন্ট্রোডাকশন টু কম্পিউটেশনাল জিনোমিক্স: অ্যা কেস স্টাডি এপ্রোচ

এইটা আমার অনেক পছন্দের একটা বই। সম্ভবত মাস্টার্স করার সময এই বইয়ের খোঁজ পাই। সচরাচর বায়োইনফরমেটিক্সের বইগুলোতে হয় বিষয় ধরে ধরে বর্ণনা রসকসবিহীন থাকে, অথবা অনেক বেশি কম্পিউটেশনাল বা বেশি জীববিজ্ঞানের বায়াস থাকে।

কিন্তু আসলে তো জিনোমিক্স বা বায়োইনফরমেটিক্সের জগতটা তো ঠিক এরকম বিচ্ছিন্ন না। এখানে একটা জীববৈজ্ঞানিক সমস্যা আছে, সেটা সমাধানের জন্য আপনার একটা কম্পিউটেশনাল এলগরিদম ব্যবহার করতে হবে। সুতরাং আপনাকে দুইটা পরিপ্রেক্ষিতই জানতে হবে। মাঝে মাঝে পরিসংখ্যান ব্যবহার করতে হবে। তখন কেন কোন পরিসংখ্যান ব্যবহার করছি, সেটা বুঝতে হবে।

রবীন্দ্রনাথ বলেছিলেন, সহজ কথা যায় না বলা সহজে। এইসব ভিন্ন ভিন্ন জ্ঞানের মধ্যকার আন্তঃসম্পর্ককে সহজভাবে ব্যাখ্যা করাটা সহজ নয়।

এই বইটার প্রতিটা চ্যাপ্টার একেকটা কেস স্টাডি নিয়ে সাজানো। একেক চ্যাপ্টারে একেক জীববৈজ্ঞানিক প্রশ্ন, এবং সেটা সমাধানের জন্য একেকটা এলগরিদম। সাথে খানিকটা ইতিহাসও। পাশাপাশি প্রয়োজন অনুসারে বিষয়গুলোর গভীরে যাওয়া। সবচেয়ে ভালো লেগেছে প্রতিটা চ্যাপ্টারেই সমস্যাগুলো কিভাবে সমাধান করতে হয়, কিভাবে ফলাফল বিশ্লেষণ করতে হয়, সে ব্যাখ্যাগুলো রয়েছে। পাশাপাশি রয়েছে নিজে করো ধরনের সমস্যা, যাতে পাঠকরা প্রবলেম সলভিং এ হাত দিতে পারেন।

বায়োইনফরমেটিক্স ডেটা স্কিলস

এটা অত্যন্ত প্রয়োজনীয় একটা বই।

আজকাল ড্রাইল্যাব বনাম ওয়েটল্যাব এই পার্থক্য কমে আসছে। দেখা যায় যিনি সিকোয়েন্সিং করেন, তাকেই নিজের ডেটা প্রসেস ও এনালাইসিস করতে হয়।

আপনি যখন বাস্তবে বায়োইনফরমেটিক্সের কাজ করতে যাবেন, বিশেষ করে NGS থেকে উৎপন্ন Big Data নিয়ে, তখন আপনাকে বহুবিধ skill এ দক্ষ হতে হবে।

আপনাকে UNIX ভিত্তিক কমান্ড লাইনে কাজ করতে হবে অধিকাংশ সময়। কমান্ড লাইনে বিভিন্ন বায়োইনফরমেটিক্সের প্রোগ্রাম চালাতে হবে।

এসব বায়োইনফরমেটিক্স প্রোগ্রাম ইন্সটল করা সবসময় সহজ নয়। একেকটা প্রোগ্রাম একেকভাবে ইন্সটল করা লাগতে পারে। অনেক সময়ই প্রোগ্রামগুলো ঠিকমতো কাজ করে না। তখন আপনাকে সমস্যাগুলো ডিবাগ করতে হবে।

কাজগুলো আপনি করবেন কোন একটা HPC বা হাই পারফরমেন্স কম্পিউটিং ফ্যাসিলিটিতে ssh এর মাধ্যমে লগইন করে। HPC তে অজস্র job সাবমিট ও ম্যানেজ করতে হবে।

প্রায়ই আপনাকে অজস্র ফাইল নিয়ে কাজ করার জন্য Bash Shell স্ক্রিপ্টিং করতে হবে।

ডেটা এনালাইসিস এর জন্য R ব্যবহার করতে হবে।

কিছু কিছু ক্ষেত্রে নিজেকেই ডেটাবেজ বানাতে হবে।

আপনার এনালাইসিস যাতে রিপ্রডিউসিবল হয়, সেজন্য কিছু স্ট্যান্ডার্ড মেনে চলতে হবে। আপনার কোড গিটহাবে শেয়ার করতে হবে অন্যান্য গবেষকদের সাথে।

বলাই বাহুল্য, যিনি কম্পিউটার সায়েন্স ব্যাকগ্রাউন্ড থেকে আসেন নি, তার জন্য এগুলো একসাথে শিখতে যাওয়া মানে রীতিমতো হাবুডুবু খাওয়ার মতো অবস্থা হওয়া।

এই বইটার খোঁজ আমি পেয়েছি পিএইচডি শুরু করার সময়ে। এখানে বায়োইনফরমেটিক্স প্রজেক্টের কাজ করার ক্ষেত্রে যেসব ডেটাসায়েন্স স্কিল দরকার হয়, সেগুলোর একটি চমৎকার বিবরণ রয়েছে।

আজকের মতো এটুকু্ই!


“বায়োইনফরমেটিক্স প্রজেক্টে কিভাবে ভাবতে হয়” এটা নিয়ে আমি একটা ছোট ই-বুক তৈরি করেছি। ই-বুকটি পেতে চাইলে নিচের ফর্মে আপনার নাম ও ইমেইল ঠিকানা দিন। আমি ই-বুকটি আপনাকে পাঠিয়ে দেবো।

ধন্যবাদ!


Comments

Leave a Reply

Join as a subscriber

Only the posts on data visualization, bioinformatics how to tutorials, web-development, and general comments on research and science will be sent.

Join 73 other subscribers