Sunday, 20 March 2016

, ,

Kebacut teles, sisanke klebus...


Hai sahabat, 
masih ingat kah di awal 2014, 
ketika sekelompok mahasiswa bandel berkumpul, 
iseng ingin menginisiasi sebuah komunitas baru? 

Entah bagaimana kita berhasil membuat sebuah seminar, tiba2 bergabung menjadi volunteer di acara internasional yang extra ordinary, bermodalkan email bisa sok2 an ke Singapore, dinner bersama para CEO dan berbicara mewakili Indonesia, akhirnya membuat kuliah berseri, dan bisa ngumpul bareng komunitas se-Indonesia di Malang?

Jujur, dengan kondisi yang ada di tempat kita waktu itu, saya cukup pesimis dan bingung untuk melanjutkan apa yang kita mulai. So, saya move on. Mulai memikirkan untuk mencari modal karir, mencari pengalaman "beneran" di lab.

Akhirnya, di MSc ini, saya memilih untuk riset di bawah bimbingan peneliti yang mumpuni sebagai pilihan pertama dan kedua saya. Dengan segala upaya sudah berusaha untuk wawancara dan menulis sebuah draft proposal untuk bisa diterima di pilihan pertama dan kedua ini.

Nah, untuk pilihan ketiga ini, mungkin di hati kecil saya masih ada "unfinished business" dari mimpi yang kita mulai 2 tahun lalu, dan akhirnya saya tuliskan di pilihan ketiga sebuah opsi thesis yang ga biasa, ikutan sebuah lomba.

"Ah, paling keterima di satu atau dua", pikir saya. Tidak seperti pilihan riset, pilihan ketiga ini mewajibkan kami untuk mengirimkan CV. Karena kriteria untuk jadi tim tidak mudah, dan banyak yang berminat, saya kira pilihan ketiga ini justru memudahkan saya untuk mendapat di pilihan sebelumnya. Semacam kalo daftar UGM, pilihan pertama di Biologi, pilihan ketiga di Kedokteran.

Jan, kebacut teles, sisanke klebus...

Entah bagaimana proses seleksinya, ternyata saya malah dapet di pilihan ketiga. Senang, panik, bingung, sedikit kecewa, haha..

Ok guys, sepertinya memang sudah digariskan oleh yang Maha Kuasa untuk menyelesaikan apa yang kita mulai 2 tahun lalu.

Mohon ijin untuk menjadi tim iGEM overgrad Edinburgh, mohon doa restu supaya langkah ini dimudahkan untuk mewakili mimpi dan harapan kita sampai ke Boston smile emoticon
Continue reading Kebacut teles, sisanke klebus...

Sunday, 6 March 2016

Kitchen Note - Sambal Terasi!


Ga ada cobek bukan alasan untuk tidak membuat sambal! Tanpa sambal hidup terasa hambar #filosofihidup



Setelah berbulan-bulan mencari resep sambal, akhirnya saya berhasil membuat sambal terasi! #lifeachievement

So, berikut adalah kitchen note dari untuk membuat sambal terasi!

  • Garlic (yang banyak, 6-10 siung)
  • Shallot (cari yang bulet, 1-2 butir)
  • Shrimp Paste (Sainsbury, 1 sendok teh)
  • Cabe Ijo (Sainsbury, 3-5 buah, sesuai selera)
  • Olive oil
  • Tomat (2 buah)
  • Oregano (buat tambah2)
  • Salt
  • HOW TO COOK: Chop everything, panasin wajan (set ke tengah2 panasnya), kasih olive oil, masukin dulu shrimp paste, chopped garlic and shallot, tunggu sampe harum, masukin cabe ama tomat, masak sambil dipenyet2 pake spatula, tambah garam dan oregano sesuai selera
Continue reading Kitchen Note - Sambal Terasi!
, ,

Tipe Belajar Paus Terdampar


Tiap orang punya cara belajarnya masing-masing. Entah dari sumber mana, katanya ada orang bertipe visual, audio, by experience, trial and error dll.

Sejak pertama ke UK, entah kenapa saya merasa agak kurang nyaman belajar. Padahal, fasilitas perpustakaan sangat bagus, lab komputer mewah, ada kafe dimana-mana. Tapi, ada sesuatu yang beda dari kebiasaan saya belajar dahulu.

Hari ini, setelah bersih2 kamar (entah sudah berapa minggu ga di bersihin), saya menemukan lagi hal yang "hilang" itu.

Setelah merefleksikan diri, saya sadar bahwa selama lebih dari 10 tahun saya belajar di bangku sekolah, saya lebih sering belajar versi "lesehan" dan "tengkurep". Apalagi ketika kuliah, ketika kerjaan nongkrong di basecamp Kelompok Studi Kelautan, para penghuni Palung "dho pating dlosoran" bagaikan paus terdampar.

Jadi, hari ini saya tumpuk meja belajar saya supaya ruang "dlosor" lebih luas. Ajaibnya, saya merasa lebih produktif!

Ternyata, tipe belajar saya tipe paus terdampar. ‪#‎ajaib‬!

ps: mungkin bisa request ke perpus buat dikasih tempat lesehan, hemat dan murah karena tidak perlu kursi dan meja
Continue reading Tipe Belajar Paus Terdampar

Thursday, 3 March 2016

, , ,

Your Lie in April: A Roller Coaster of Emotions, Amazing Music!

Shigatsu wa kimi no uso (Your Lie in April)

I love classical music

Saya tidak tahu banyak tentang musik klasik, tapi musik klasik sudah mewarnai hidup saya sejak kecil. Maklum, ayah saya seorang dosen dan pemain gitar klasik. Entah di rumah atau di tempat konser (karena diculik nemenin bapak atau dapet tiket gratis), musik klasik bisa memberikan warna yang beraneka ragam di kehidupan kita. Ada sebuah feel yang tidak akan kamu temukan di musik-musik pop di negeri ini.

Itulah alasan pertama saya sangat menikmati seri anime ini.

Saya sudah pernah merasakan duduk di kursi penonton, melihat berbagai macam pertunjukkan klasik yang ada di sekitaran Jogja. Pernah juga saya mengajak beberapa teman kampus untuk melihat konser, dan ada teman yang langsung tidur di beberapa menit pertama (begitu juga di anime ini, haha).

Di anime ini, si mangaka menggambarkan permainan yang sangat menyentuh hati, sampai-sampai ada ilusi yang bisa dilihat si penonton. Agak lebay mungkin. Tapi, kamu akan memahami perasaan itu ketika sudah pernah melihat sebuah pertunjukkan langsung. Pernah di sebuah pertunjukkan musik kontemporer di Pusat Studi Prancis, tiba-tiba suasana menjadi hening, as if the world stopped. Dan ketika kau melihat penonton di kanan kirimu, yang kamu lihat adalah semua orang terdiam, mulut menganga dengan mata berbinar-binar.



That is a moment you'll treasure for your whole life! Really.

Pernah juga waktu itu kami menonton konser dari salah satu pianis kelahiran Indonesia yang sejak kecil tinggal di Belanda (so sorry I can't remember his name!). Di awal pertunjukkan beliau memohon maaf ke penonton karena bahasa Indonesianya yang agak terbatas. Sebuah bakat dan permainan yang luar biasa. Tidak hanya membawakan lagu-lagu klasik dari komposer ternama, beliau juga menampilkan karya original komposisi dia sendiri. I can't stop giving standing applause sampai tangan saya sendiri perih :). Di akhir pertunjukkan, dengan sekeras mungkin berusaha berbicara bahasa Indonesia yang terbata-bata, sang pianis maju ke depan panggung, "Saya mendedikasikan karya terakhir ini untuk kedua orang yang telah menjadikan saya hari ini, yang saat ini duduk di depan saya, ayah dan ibu saya". Sebuah momen yang sangat emosional, yang membuat seluruh penonton memberikan standing applause meskipun si pianis belum memulai permainannya.

Rivalry can always bring you further than you can imagine!

Hmm, setelah saya mengingat-ingat lagi 10 tahun yang lalu, saya meluangkan banyak waktu saya di SMP dan SMA mengikuti kompetisi, yang berawal dari sebuah hom pim pah di depan kampus lama MIPA UGM. Bertemu banyak sahabat baru dan rival baru, telah membawa saya untuk terus memperbaiki diri, sampai bisa melanjutkan studi di UK saat ini. Dan alhamdulillah, silaturahmi itu selalu kami jaga sampai saat ini. Thanks a lot my fiere!

Itulah kenapa saya sangat menikmati tema tersebut di anime ini. I know that feel :)

 "Thank you for giving color to my life" 

Semua orang pasti sudah pernah tau rasanya jatuh, when you can't feel anything, just feeling so negative and down. Mungkin saat itu saya juga merasakan hal yang sama, jenuh dengan segala kesibukan di kompetisi. Just feeling plain, meskipun saat itu sebuah achievement sudah di tangan. Momen ketika hidupmu: monotone.

Then, out of nowhere, a  certain someone come and give a color to my life :)

She is like a roller coaster, a bit selfish and self oriented, yet funny, and beautiful. Dia mungkin menjadi alasanku untuk melanjutkan berkarya, keep me on track. Give me a passion, dan membuatku semakin dewasa. Menang dan kalah tidak lagi menjadi beban, just try your best! Karena ada hal yang lebih berharga untuk diperjuangkan. Kalau dipikir-pikir, kompetisi terakhir yang kami ikuti cuma gara-gara ingin nostalgia di tempat kami dulu bertemu.

Itulah kenapa karakter Kaori di anime ini sangat berkesan bagi saya :)

Dan di sisi lain, I feel so stupid, seperti Kousei yang bener-bener ga sensitif. The one who care about you was always there, so close, yet you don't realise it. But I'm grateful that I'm not too late to realise it :)

But..., Don't watch the series!

Karya ini memang berhak mendapatkan appraisal dari berbagai reviewer. Mungkin banyak komentar juga bahwa karya ini terlalu cliche, tipikal sebuah drama. But..., Don't watch the series if  you're not prepared for the feels!

Awesome music, awesome story.
:)

Continue reading Your Lie in April: A Roller Coaster of Emotions, Amazing Music!

Monday, 29 February 2016

, ,

A Reminder of Love, Passion, and the Harsh Truth


Beranjak usia, semakin sering kita melupakan how it feels to be passionate, how it feels to love, how it feels to have a dream. Entah pekerjaan, studi, atau kesibukan lainnya, tampaknya kita semakin sering tenggelam di dalamnya.

Mungkin hal tersebut yang saya rasakan di beberapa bulan terakhir ini, di suasana kuliah yang cukup padat. Tidak hanya itu, dari beberapa diskusi yang kami lakukan di kelas, beberapa peneliti dan dosen senior mulai memberikan pesan,

"Ideas are cheap, what hard is how to make it to the real world. And whether you accept it or not, it's all about who's going to make money out of it at the end. Trust me, I've been an idealist like all of you before"

A bold message. 

Wajah beliau tidak terlihat seakan mematahkan semangat kami, justru menantang kami untuk mengalahkan paradigma tersebut. Tapi, di tengah atmosfer akademisi yang selalu berusaha mencari cela dan celah di paper-paper yang kami baca, rasanya kami hanya menjadi robot untuk mencoba mengkritik ide dan mimpi orang lain.

A heartless robot with a sole purpose to give scrutiny to the work of others. Or is it?

Deep down in our hearts, we know its not true. We were just human. Makhluk ciptaan-Nya yang memiliki hati yang mudah dibolak-balikkan.

So I decided to do something new, a change of atmosphere. Saya belum pernah ke Japanese Film Festival sebelumnya, dan mereka akan screening sebuah film berjudul "5 Centimeter Per Second". Sebuah anime bergenre drama. I'm not a fan of drama, I can't remember the last time I watch a romance drama actually. Tapi, kenapa tidak? Mari kita coba sesuatu yang baru. Toh rating dan review film ini sangat bagus.

Ternyata saya tidak sendirian, ada 2 orang teman Indonesia yang juga tertarik untuk menonton screening film ini. Dan sebagai bonus, ada sushi dari konsulat jendral Jepang di akhir acara, hehe.

Acara dimulai dengan perkenalan dan sedikit penjelasan dari Japanese Literacy Club. "5 centimeter per second... the speed of a cherry blossom falls". Film ini mengambil filosofi dari bunga sakura, cantik dan indah, tapi hanya bisa dinikmati dalam waktu yang sangat singkat. Bangsa Jepang memaknai sakura sebagai simbol dari singkatnya kehidupan. Short and fragile.

Film ini terdiri dari 3 chapter. The first chapter is heartwarming, bagian kedua cukup slow, tapi semua orang menerima bahwa film ini adalah sebuah masterpiece. Bagian ketiga... hmm, this movie is so cruel. A cruel truth and so real, we can refer it to our real world.



Seperti kata teman saya, film ini tidak direkomendasikan bagi kamu yang sedang menjalani LDR. But, it is indeed a masterpiece. Makoto Shinkai telah berhasil membuat sebuah karya yang sangat indah secara grafis, dan sebuah emosi yang bisa kita rujuk di kehidupan kita. Meninggalkan sebuah rasa jengkel, kecewa, dan tanda tanya bagi penonton yang sudah selesai menonton film ini. Bukan karena ceritanya jelek (it's a good story, one of the best), tapi mungkin karena kita tidak mau menerima ending dari film ini, which is actually what we really experienced in our real life.

Nevertheless, it makes you think, and re-think about yourself.

Oke, no more spoiler. Selamat menonton!

  
Continue reading A Reminder of Love, Passion, and the Harsh Truth

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