Sunday, 28 February 2016

, ,

Practical System Biology Part 3: Belajar Membuat Plot dengan Matplotlib


Hai fellas, kali ini kita akan belajar membuat plot di python dengan menggunakan fitur dari matplotlib. Jika perlu, rekan-rekan bisa menilik lagi postingan saya sebelumnya:
Kali ini kita akan mencoba mengolah data sebuah eksperimen FISH (fluorescence in situ hybridization). Apa itu FISH? Mari kita bertanya pada wikipedia (opini saya tentang menggunakan wikipedia sebagai sumber ada di bawah):
Singkatnya, kita bisa menggunakan probe berupa potongan salah satu untai DNA yang nantinya akan menempel jika ada pasangan yang komplemen dengan si probe. Nah, dengan demikian, kita bisa mengetahui ada atau tidak sekuen yang kita cari dengan mengukur intensitas fluorosensi dari sel. Data fluorosensi ini diambil dengan menggunakan sensor dari alat seperti Spektrofluorometer (bayangin aja ada kamera lagi nge-video-in sel, terus kita ukur perubahan warnanya dari waktu ke waktu).

Selain bisa nempel di gen yang ada di inti sel (seperti di gambar dari wikipedia), kita juga bisa nempelin si probe ini ke mRNA yang diekspresikan oleh sel. Contoh aplikasi ini bisa dilihat dari video promosi (sumpah ane ga niat marketing) teknologi FISH dari Stellaris:


Dengan demikian, kita bisa mengambil data perubahan jumlah mRNA yang diproduksi sel dari waktu ke waktu.

Exercise Time!

Temen kamu sedang melakukan eksperimen untuk melihat perubahan ekspresi sebuah gen ketika dia memberikan si sel sebuah perlakuan. Untuk itu, temen kamu menggunakan FISH untuk menghitung jumlah mRNA pada sebuah populasi sel setiap enam menit sekali.
Ternyata, data yang dihasilkan dari si alat disimpan dalam format .pkl (pickle) yang merupakan salah satu format untuk bertukar data menggunakan program berbahasa Python. Kamu juga bisa mencari tahu lebih lanjut tentang pickle dengan memasukkan script pickle? di spyder.
Teman kamu meminta tolong untuk mengolah data tersebut menjadi sebuah plot yang mudah dipahami.

Loading data

Hal pertama yang kamu lakukan adalah membuka spyder dan meng-import library yang kita perlukan. Disini kita akan mengimport tiga library: Pickle, Numpy, dan Matplotlib:

import pickle
import matplotlib.pyplot as plt
import numpy as np

Untuk memudahkan mengetik kode, kita singkat matplotlib sebagai plt dan numpy sebagai np. Jadi, selanjutnya teman-teman tinggal menulis plt atau np untuk memanggil fungsi dari masing-masing library. Sementara, save dulu script mu di sebuah folder. 


Memanggil fungsi dari library yang sudah di import

Selanjutnya, kita akan nge-load data dari hasil eksperimen. Pertama, download data FISH, kemudian save di folder yang sama di tempat kamu nge-save script python-mu. Setelah file sudah siap, selanjutnya kita gunakan pickle (how to pickle disini):

d = pickle.load(open('mRNAdata.pkl', 'r'))

Disini, kita mendefinisikan variabel d sebagai data yang akan kita gunakan. 'r' setelah mRNAdata.pkl berarti kita memberikan perintah "read" dari objek pickle. Selanjutnya, yuk kita coba lihat raw data yang kita peroleh seperti apa dengan menulis:

print d

Dan kita peroleh hasilnya ternyata berupa Array yang berisi banyak angka. Di dalam array ini adalah hasil pengukuran intensitas fluorosensi dari 100 sel pada setiap time point. Nah, yg kita perlu lakukan adalah menghitung mean dari 100 sel tadi untuk setiap time point. Dengan demikian, kita bisa membuat plot dengan sumbu x = time points dan sumbu y = rata-rata intensitas fluorosensi dari 100 sel. 

Sek, bentar bro, kok bisa tahu ada 100 sel? Ngitung pake jari satu-satu? Lagian cuma bikin plot pake excel aja mah bisa!


Mencari tahu ukuran data


Nah, inilah kelebihan kita menggunakan Python, kita bisa lebih mudah untuk mengolah data yang berukuran besar. File .pkl yang kita buka tadi ukurannya cuma beberapa kilobyte saja, dan jika kita menghitung secara manual berapa banyak ulangan yang ada di data ini aja udah males :p. Bayangin kalo temen-temen mengolah data genomik yang ukurannya bisa sampai beberapa gigabyte. By the way, kalo filenya besar, fungsi print d tadi bisa membuat laptop kita kewalahan karena harus menampilkan semua data yang ada di dalamnya.

Tampilan data FISH, lingkaran merah menunjukkan sampel intensitas fluorosensi dari 100 sel untuk time point 1, 2, 3, dst. 
So, untuk menghitung ada berapa time points dan jumlah ulangan, kita bisa menggunakan fungsi yang sudah ada di dalam Python (hayo, buka lagi chapter 5!):

ntps= len(d)

atau bisa juga menggunakan modul dari NumPy: 

ntps= np.size(d, axis=0)

Disini kita mendefinisikan variabel ntps (singkatan dari number of time points, atau diberi nama apa aja terserah sih) dengan fungsi len atau np.size (lebih lanjut tentang NumPy). Coba gunakan fungsi print untuk melihat output dari ntps (output = 9).

Nah, untuk melihat ada berapa sampel di tiap time points (ndps = number of data points), kita bisa menggunakan:

ndps= np.size(d, axis=1)

Disini kita menggunakan np.size, tapi kita mengganti axis untuk melihat dimensi di dalam tiap time points.

Teman-teman juga bisa menggunakan fungsi len:

ndps= len(d[0])

Tapi ini hanya untuk melihat dimensi dari timepoints pertama. Coba gunakan fungsi print untuk melihat output dari ndps (output = 100).


Jumlah time points dan ukuran data points


Menghitung Mean dan Standar Deviasi

Untuk membuat plot, kita akan mengukur rata-rata (dm) dari intensitas fluorosensi di tiap time points:

dm= d.mean(axis=1)

dan untuk menghitung standar deviasi (sdm):

sdm= d.std(axis=1)

Dan kita lihat hasilnya:

Rata-rata fluorosensi (merah) dan standar deviasi (biru)

Membuat plot

Nah, data di sumbu Y udah siap nih, sekarang tinggal nyiapin sumbu X, yaitu time points. Dari data, kita sudah tahu bahwa ada 9 time points... artinya apa yak? Artinya, data diambil 9 kali setiap jeda beberapa waktu. Lah, emang jeda waktunya berapa? 6 Menit! (Scroll ke atas deh, yang di highlight dan di bold). Dengan demikian kita bisa tahu data untuk sumbu X:

t= np.arange(ntps)*6

dengan np.arange, kita membuat sebuah array [0, 1, 2, ..., 8], terus tinggal dikali 6 (jeda waktu). Dan kita peroleh:



Selanjutnya, kita akan menggunakan modul dari matplotlib untuk membuat plot. Kita akan menggunakan plt.errorbar() untuk membuat plot dengan error bar. Nah, value dari error bar disini adalah standar deviasi (sdm) dibagi dengan akar dari jumlah sampel (ndps). Kita akan menggunakan NumPy untuk mengakses fungsi square root (np.sqrt). Perhatikan di fungsi plt.errorbar(), t adalah input untuk sumbu X, dm adalah input untuk sumbu Y, dan yerr adalah error bar. Warna dan atribut lain bisa diubah dengan menambahkan argumen seperti ecolor dst. Lebih lengkap di www.matplotlib.org.

plt.figure()
plt.xlabel('time (minutes)')
plt.ylabel('mean mRNA')
plt.errorbar(t, dm, yerr= sdm/np.sqrt(ndps), ecolor= 'k', fmt= 'bo:')
plt.show()

Dan, inilah hasil dari eksperimen teman kita:


Selamat mencoba!
Ps: Error bar kecil jadi ga kelihatan, coba kalikan nilai sdm jadi beberapa kali lipat kalau penasaran.

Coming soon: Part 4 - Yuk belajar Entropi!





Continue reading Practical System Biology Part 3: Belajar Membuat Plot dengan Matplotlib

Friday, 26 February 2016

, ,

Practical System Biology Part 2: Python Introduction


Nah, bagi teman-teman yang baru pertama kali belajar programming, kita akan menggunakan buku karya Langtangen, “A primer on scientific programming with Python (3rd edition)”. Coba download buku ini dari perpustakaan kampusmu, atau bisa juga didowload dari github sang author (thanks Langtangen!): 
http://hplgit.github.io/primer.html/doc/pub/half/book.pdf.

Untuk belajar, cara paling cepat dan efektif adalah dengan mencoba mengerjakan beberapa exercise yang ada di buku. Kita akan menggunakan chapter 1, 2, 3, dan 5 untuk memahami dasar-dasar Python.

Sebagai panduan belajar, teman-teman bisa mencoba mengikuti saran berikut:

Chapter 1

Bacaan untuk chapter 1:

  • 1.1 Pengenalan Python
  • 1.2: istilah-istilah di computer science
  • 1.3: pembagian dengan integer dan obyek di Python
  • 1.4.1: menggunakan modul Python

Latihan untuk chapter 1:

Exercises 1.6 

  • Let p be a bank’s interest rate in percent per year. An initial amount A has then grown to:
  • after n years. Make a program for computing how much money 1000 euros have grown to after three years with 5 percent interest rate.
  • Solution to 1.6

Exercises 1.10

  • The bell-shaped Gaussian function, 
  • is one of the most widely used functions in science and technology. The parameters m and s > 0 are prescribed real numbers. Make a program for evaluating this function when m = 0, s = 2, and x = 1. Verify the program’s result by comparing with hand calculations on a calculator.
  • Solution to 1.10

Chapter 2

Bacaan untuk chapter 2:

  • 2.1: while loops
  • 2.2: lists dan for loops
  • 2.3.1 - 2.3.5: contoh list dan loops
  • 2.4: nested lists
  • 2.5: tuples
  • 2.6.2: contoh aplikasi
  • 2.6.3: cara mencari informasi dalam Python

Latihan untuk chapter 2:

Exercise 2.10

  • We want to generate x coordinates between 1 and 2 with spacing 0.01. The coordinates are given by the formula xi = 1 + ih, where h = 0.01 and i runs over integers 0, 1, . . . , 100. Compute the xi values and store them in a list (use a for loop, and append each new xi value to a list, which is empty initially).
  • Solution to 2.10

Exercise 2.12 

  • The following code is supposed to compute the sum function:
  • s = 0; k = 1; M = 100
  • while k < M:
    • s += 1/k
  • print s
  • This program does not work correctly. What are the three errors? (If you try to run the program, nothing will happen on the screen. Type Ctrl+c, i.e., hold down the Control (Ctrl) key and then type the c key, to stop the program.) Write a correct program.
  • Hint. There are two basic ways to find errors in a program: (1) read the program carefully and think about the consequences of each statement, (2) print out intermediate results and compare with hand calculations. First, try method 1 and find as many errors as you can. Thereafter, try method 2 for M = 3 and compare the evolution of s with your own hand calculations.
  • Solution to 2.12

Exercise 2.13

  • Rewrite the corrected version of the program in Exercise 2.12 using a for loop over k values instead of a while loop.
  • Solution to 2.13

Chapter 3

Bacaan untuk chapter 3:

  • 3.1.1 - 3.1.6: functions
  • 3.1.10: the main program
  • 3.2: branching and if statements
  • 3.3.1: using functions

Latihan untuk chapter 3:

Exercise 3.1


  • The the formula above is for converting Fahrenheit degrees to Celsius reads.
  • Write a function C(F) that implements this formula. To verify the implementation of C(F), you can convert a Celsius temperature to Fahrenheit and then back to Celsius again using the F(C) function from Chapter 3.1.1 and the C(F) function. That is, you can check that the boolean expression c == C(F(c)) is True for any temperature c (you should, however, be careful with comparing real numbers with ==, see Exercise 2.24).
  • Solution to 3.1

Exercise 3.4 

  • The standard Python function called sum takes a list as argument and computes the sum of the elements in the list:
  • >>> sum([1,3,5,-5])
  • 4
  • Implement your own version of sum. 
  • Solution to 3.4

Exercise 3.14 

  • Make a Python function gauss(x, m=0, s=1) for computing the Gaussian function 
  • Call gauss(x) and print out the result for x ∈ [−5, 5] (say for 11 uniformly spaced x values). 
  • Solution to 3.14

Exercise 3.23

  • Given a list a, the max function in Python’s standard library computes the largest element in a: max(a). Similarly, min(a) returns the smallest element in a. The purpose of this exercise is to write your own max and min function. Use the following technique: Initialize a variable max_elem by the first element in the list, then visit all the remaining elements (a[1:]), compare each element to max_elem, and if greater, make max_elem refer to that element. Use a similar technique to compute the minimum element. Collect the two pieces of code in functions.
  • Solution to 3.23

Exercise 3.34

  • Write a function count_pairs(dna, pair) that returns the number of occurrences of a pair of characters (pair) in a DNA string (dna). For example, calling the function with dna as ’ACTGCTATCCATT’ and pair as ’AT’ will return 2. 
  • Solution to 3.34

Chapter 5

Bacaan untuk chapter 5:

  • 5.3.1 - 5.3.2: plotting data
  • 5.6.1: arrays
  • 5.6.4: accessing elements of arrays
  • 5.6.7: manipulating the shape of arrays
  • 5.7.1 - 5.7.2: arrays with more than one dimension
Nah, setelah mencoba latihan-latihan diatas, teman-teman pasti sudah lebih familiar dengan Python.

Loh, ga ada latihan untuk Chapter 5 nih??

Jangan khawatir, di postingan selanjutnya, kita akan mencoba belajar membuat plot dengan menggunakan contoh Fluorescence In Situ Hybridization (FISH).



Continue reading Practical System Biology Part 2: Python Introduction
, ,

Practical System Biology Part 1: Installing Anaconda, platform untuk Scientific Python

The protein interaction network of Treponema pallidum, courtesy Wikipedia
Hai fellas, kali ini kita akan mencoba belajar Systems Biology dengan memodelkan interaksi gen dan protein di dalam sel.

Tutorial berseri ini mengadaptasi materi dari Prof. Peter Swain dari Center for Synthetic and System Biology (SynthSys) The University of Edinburgh. Penasaran dengan lab beliau? Silahkan cek di http://swainlab.bio.ed.ac.uk/ 

Jika ingin belajar lebih dalam, buku karya Brian P. Ingalls berjudul Mathematical Modeling in Systems Biology - An Introduction sangat bagus untuk dibaca. Jika kamu tidak memiliki akses dari perpustakaan kampus atau sekolah, bisa juga didownload dari website sang author di sini (thanks Prof Ingalls!): 

Ada beberapa platform yang bisa digunakan untuk melakukan modelling, tapi disini kita akan mencoba menggunakan bahasa pemrograman Python. Kenapa Python? Python adalah bahasa pemrograman yang cukup mudah dipelajari dan interaktif. Python memiliki kegunaan yang mirip dengan Matlab (but its free!), dan cukup baik untuk melakukan simulasi molecular pathway di dalam sel. Selain itu, karena sudah banyak digunakan oleh komunitas akademia dan peneliti sehingga sudah memiliki banyak library dan tools untuk melakukan pemodelan.

Oke, sakjane kita mau ngapain sih? Untuk lebih gampangnya, sebagai contoh, kita akan mencoba memodelkan chemotaxis pathway dari E. coli (Rao et al., 2004). Akses paper di:



Ketika si E. coli mendeteksi keberadaan suatu zat kimia (ligand), dia akan merespon dengan melakukan perubahan pergerakan (motilitas), apakah bergerak lurus (run), atau berputar-putar di tempat (tumble), tergantung dari apakah si ligand berupa attractant atau repellant). Ternyata, dua perilaku ini (run/tumble) dipengaruhi dari arah pergerakan flagel dari E. coli, apakah counter clockwise atau clockwise (Figure 1). Nah, arah pergerakan flagel ini dikontrol oleh fosforilasi protein Y, yang juga dipengaruhi oleh ligand. Pada E. coli, attractant akan menghambat protein A (CheA) dan mengakibatkan fosforilasi protein Y berkurang, sehingga jumlah Yp (protein Y yang terfosforilasi) menurun (Figure 2). Nah, kalo Yp berkurang, maka flagella akan berubah dari clockwise (tumble), menjadi counterclockwise (run). Kemudian, setelah beberapa kali gerakan acak, E. coli akan bergerak menuju ke arah dimana konsentrasi atraktan semakin tinggi. 



Figure 2. (A) E. coli dan (B) B. subtilis chemotaxis pathway (Rao et al., 2004)

Nah, dengan melakukan pendekatan Systems Biology, kita bisa memodelkan interaksi dari komponen-komponen yang ada dari chemotaxis pathway di E. coli, dan bagaimana respon mereka ketika kita mengubah parameter konsentrasi ligand menjadi tinggi atau rendah. Jadi, harapan saya setelah selesai tutorial ini, temen-temen sekalian juga bisa membuat model tersebut dengan menggunkan Python (Figure 3). Tapi, alangkah baiknya jika kita mulai step by step belajar Python dari dasar dahulu J.


Figure 3. Menggunakan Python (dengan Spyder Environment) untuk memodelkan konsentrasi protein Y ketika parameter konsentrasi ligand kita ubah.

So, first thing first, kita akan mengginstall Anaconda, yang sudah ada di dalamnya paket Spyder (Scientific Python Development Environment) lengkap dengan NumPy, Matplotlib, dan SciPy.

1.       Installing Anaconda
Download dan install paket Python 2.7 dari https://www.continuum.io/downloads. Kamu juga bisa menggunakan Python 3.5, tapi di tutorial ini bahasa yang kita pakai adalah versi 2.7, yang sudah lebih sering digunakan oleh kebanyakan akademisi (karena lebih tua). Penasaran? Lebih lanjut bisa dibuka di:  https://wiki.python.org/moin/Python2orPython3.

2.       Menggunakan spyder
Kalau sudah selesai menginstall Anaconda, yuk kita coba buka. Akan muncul window seperti di Figure 4. Kita akan menggunakan spyder-app (paling bawah), dan silahkan diupdate dulu jika perlu.

Figure 4. Tampilan Anaconda

Klik Launch untuk memulai spyder-app, dan teman-teman akan melihat window seperti di Figure 5. Yang teman-teman perlu perhatikan, di tampilan Spyder ada 2 layar utama, sebelah kiri (Lingkaran merah A) adalah tempat dimana teman-teman bisa menulis program (script) dan menyimpannya sebagai file dengan ekstensi .py. Program ini bisa dijalankan dengan klik tombol run (segitiga hijau), dan output program bisa dilihat di layar console (lingkaran merah B). Rekan-rekan juga bisa langsung menulis kode di layar console, tapi akan langsung dijalankan ketika kita menekan enter, dan tidak tersimpan.



Figure 5. Tampilan Spyder

Untuk mencoba apakah matplotlib dan numpy berjalan, coba copy script ini di layar A, kemudian klik run:

import matplotlib.pyplot as plt
import numpy as np
plt.plot(np.arange(1,10))
plt.show()

Lalu akan muncul output dari script tadi, berupa plot garis lurus.


Figure 6. Menggunakan matplotlib untuk menampilkan plot di Spyder

Kalau ada message seperti ini, coba klik di layar console (atau arahkan cursor di ln[1]:) dan coba jalankan script lagi.


Selamat mencoba!

Continue reading Practical System Biology Part 1: Installing Anaconda, platform untuk Scientific Python

Saturday, 2 January 2016

December Journey

"Kuwi ijo ndes! | Ngga keliatan apa2 bro | Dijepret pake kamera jelas cuy! | Ga mungkin | Dari ramalan ini lagi storm, serius! | Ah, dukunnya salah paling itu..."
Libur natal dan tahun baru menjadi salah satu momen yang dinantikan oleh mahasiswa Indonesia yang studi di UK. Gimana ga, buat anak-anak master yang kuliahnya padat dan mampat, momen liburan ini menjadi ajang untuk melepas penat dan bertualang. Anak-anak Scotland hijrah ke selatan dan anak-anak England hijrah ke utara. Ada dua kota yang menjadi salah satu tujuan favorit untuk menghabiskan malam tahun baru: London dan Edinburgh.

DUA MINGGU TERAKHIR DI SEMESTER SATU
Bagaimana dengan saya? Well, saking hectic-nya dua minggu terakhir kuliah di semester satu, saya ga sempat membuat rencana yang baik untuk menghabiskan liburan. Waktu itu fokus di kepala Cuma satu: gimana caranya survive kuliah di semester satu. Lima mata kuliah yang saya ambil ga ada komponen written exam, semua dinilai dengan project, esai, dan presentasi. Awalnya sih agak tenang juga karena tidak ada exam, tapi ternyata sama saja. Antara reading material dan tugas yang banyak dan juga bawaan mental deadliners, dua minggu terakhir saya berkutat 24/7 dengan 5 project esai dan modelling. Jam tidur berkurang menjadi 1-3 jam per hari dan ga sempat masak (walhasil banyak keluar duit buat beli fastfood di luar). Satu hal lagi yang membuat tensi ga turun-turun: saya nekat ikutan 4 Day MBA workshop dari SynBiCite di London, tepat di minggu terakhir semua deadline esai!
Karena ikutan workshop, secara teknis saya sudah pernah mengunjungi London. Yang saya lihat bukan Istana Buckingham, hanya sempat melihat hiruk pikuk orang di Tube (kereta bawah tanah). Tiap hari berangkat sebelum matahari terbit, pulang setelah gelap, dan keseluruhan workshop di ruangan yang sama di sebuah hotel. Workshop 4 Day MBA ini dipimpin oleh coach bisnis profesional, dan selama 4 hari peserta mempersiapkan pitch untuk dipresentasikan dalam sebuah Dragon’s Den di depan 3 orang investor (venture capitalist). Ternyata, mayoritas peserta berasal dari start-up yang memang akan mempresentasikan business model mereka. Workshop ini membuka banyak wawasan saya mengenai atmosfer start-up di UK yang sangat menantang dan cukup keras.
Dua minggu yang sangat melelahkan memang. Tapi, bertemu sahabat lama selalu menjadi sebuah momen yang terlalu berharga untuk dilewatkan. Terima kasih untuk Ahmad Ataka yang sudah bersedia menampung saya selama 4 hari di London! Tak terasa sudah lebih dari sepuluh tahun berlalu sejak pertama berkenalan bocah kecil yang sangat inspiratif ini. Obrolan random selama 4 hari berputar di sekitar nostalgia, jodoh, dan mimpi-mimpi masa depan. London trip kali ini ditutup oleh pertemuan tak disengaja dengan rombongan teman-teman UCL di Stansted. Ocehan berlogat Suroboyoan mengisi perjalanan kami kembali ke Edinburgh. Sementara Andre dan kawan-kawan plesiran ke Edinburgh, saya masih punya 12 jam untuk menyelesaikan final esai!
Dan.. jumat terakhir di semester satu berlalu tanpa nyamannya kasur dan hangatnya selimut. Seusai menumpuk tugas, nampak wajah-wajah panda dari teman-teman satu jurusan, antara lega dan cemas karena mengerjakan tugas dengan tidak maksimal. Sambil menahan kantuk, kami berkumpul di Library Cafe untuk melepas lelah. “So, we made it through the first semester guys”, ujarku memecah keheningan (semua orang tatapannya udah kosong). “What’s your plan for holiday?”, tanya temen dari Meksiko. Antara udah ga nyambung diajak ngomong dan memang ga ada plan, saya Cuma membalas dengan geleng kepala. Ternyata, hampir semua orang sudah punya plan untuk liburan. Temen-temen Eropa pasti pada balik ke rumah, dan banyak temen-temen Cina dan Meksiko yang pada Eurotrip. Plan yang udah ada di kepala: “Laundry udah numpuk, Laundry dulu baru tidur”.

FIRST STOP: GLASGOW!
Sore itu saya galau. Saya lupa kalau sudah mendaftarkan diri di acara Winter Conference FOSIS, sebuah konferensi pelajar muslim se-UK yang mengambil tempat di Glasgow. Acara sebenarnya dimulai Jumat sore hari itu, tapi karena stok celana dalam sudah habis di London Trip, jadi saya tunda perjalanan ke Glasgow di sabtu pagi. Konferensi di Glasgow menjadi pembuka liburan natal dan tahun baru saya di 2015. Di event itulah saya merasakan atmosfer pelajar muslim di UK. Acara didominasi oleh teman-teman asal IPB (India, Pakistan, dan Bangladesh) yang sudah menjadi generasi ke-2. Ternyata, solidaritas mereka sangat luar biasa. Di tengah atmosfer Islamophobia di negara barat, saya belajar banyak dari seorang siswa College (baru mau masuk universitas) asal Southhampton yang dengan sangat dewasanya menyikapi Islamophobia di UK.
I’m Scottish and I’m Muslim! FOSIS Winter Conference 2015 di Glasgow

Kami menginap di lantai dua sebuah masjid komunitas di Glasgow, sambil menunggu waktu tidur, saya bercerita mengenai pengalaman saya menjelaskan Islam kepada teman asal Greece yang penasaran. Waktu itu kami sedang mengerjakan sebuah grup project, teman satu tim saya tampak cemas dengan presentasi esok hari. Kami menghabiskan waktu 3 hari di perpustakaan untuk finishing project tersebut, nampaknya dia heran karena saya beberapa kali pamit untuk shalat di Masjid. “Matin, you pray a lot! How many times do you have to pray? Is it compulsary? No wonder you seem so calm”. (Berhubung bobotnya cuma 20%, sakjane aku wes ra urus karo garapan iki, jadi mungkin terlihat kalem). “What do you say in your prayer? Teach me some!”. Dan, mulailah saya mencoba untuk menjelaskan tentang Islam. Karena di HP ada apps Muslim Pro, saya mencoba memuaskan rasa penasaran teman saya mengenai Quran. “The Sun? What is this about?”. Dan surat pertama yang kami baca adalah As-Syams, sebuah surat yang sangat indah, tersusun layaknya sebuah puisi indah dengan bait-bait pendek yang mempesona. “It’s so beautiful! The Elephant?? What is this one about?”. Dan teman saya mulai asyik membaca Quran, sementara saya gantian panik melihat slide presentasi yang tak kunjung selesai.
   “You are so lucky, most of the time, people don’t want to hear what I say about Islam because how I look”, ucap Abdul, sahabat baru dari Southhampton setelah mendengar cerita saya. Abdul memang berwajah keturunan Arab-Bangladesh, dan entah pengalaman seperti apa yang dia alami sejak peristiwa bom Paris beberapa waktu yang lalu. Konferensi di Glasgow membuka mata saya tentang diskriminasi yang dialami kaum minoritas di sebuah negara yang dibilang “developed country”. Memang, banyak sekali warga Scotland yang menentang diskriminasi dan memberikan support yang luar biasa bagi kebebasan umat muslim di UK, tapi masih ada atmosfer tidak nyaman yang ada di negara-negara barat. Dari pengalaman ini, saya bersyukur menjadi Bangsa Indonesia, yang sangat menjunjung tinggi toleransi dan bersemboyan Bhinneka Tunggal Ika.


 FOSIS Winter Conference diakhiri dengan bertambahnya sahabat-sahabat baru di UK, dan sebuah petualangan di Glasgow. Glasgow Cathedral dan Necropolis menjadi tempat singgah pertama. Suasana di Katedral ini mengingatkan saya ke game-game Gothic yang saya mainkan sewaktu kecil: Diablo! Lucky me, saya sempat duduk sebentar di dalam Katedral untuk mendengarkan Sunday prayer dan prosesinya yang cukup menarik. Necropolis mungkin bisa diartikan sebagai: City of the Dead, sebuah kompleks pemakaman besar diatas bukit (jangan dibayangin kaya kuburan Cina yak). Next stop: Kelvingrove Museum! Salah satu museum terbesar di Scotland, dengan koleksi karya seni yang sangat indah. And Lucky me again! Saat itu sedang ada orkestra untuk Natal! A beautiful art and music to spend the weekend! Di seberang sungai dari museum adalah The University of Glasgow, sebuah landmark penting di Glasgow, dan salah satu tempat syuting Hogwarts di Harry Potter. Perjalanan ditutup dengan kopi panas di rumah Pak Tata, ketua pengajian masyarakat Indonesia di Glasgow.
To be continued...    
   


       
Continue reading December Journey