iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 1
5
自我挑戰組

Julia語言—從入門到專案系列 第 1

[Day 01] 我與Julia的相遇

  • 分享至 

  • xImage
  •  

我與Julia這個程式語言相遇的故事要從我碩班說起...

屠資料巨龍

某天我正在森林當中練等的時候,一手拿著Java牌的通用機槍,另一手拿著剛拿到不久的Python牌散彈槍。
聽說要屠殺稱為Data的巨龍,很多人都用Python牌散彈槍或是某R牌神祕武器。
聽說巨龍的動作變化莫測,用Java牌的通用機槍要一直調整,很難用打帶跑的方式快速換位,當你調整好的時候巨龍的尾巴就掃過來了,用Python牌散彈槍就可以不停的換位,擬定新的策略,並且慢慢觀察並找到巨龍的弱點。

漸漸地,我熟練Python牌散彈槍的使用方式,並且一人幹掉一票哥布林的時候,我接到了委託,委託是希望我可以去殺掉湖泊裡的湖怪,從照片上看來隱身於雲霧中,有如蛇頸龍般的長脖子,身體若有似無的被雲霧覆蓋。
我獨自擬定作戰策略,我已經習慣在叢林當中戰鬥,但是湖邊只有水沒有隱身之處,而且有時候Python牌散彈槍的連發效率不是那麼的好,我是不是該找尋其他輔助工具或是武器?
我到武器店翻了翻找了找,似乎Python牌散彈槍是可以換槍機的,有的人會選擇加裝cython槍管,有的人會換成pypy槍機,各自有不同的優缺點跟連發效能,而我也在武器店研究了好一陣子,後來選則換成pypy槍機。

我發覺這槍機還不錯,順利協助我幹掉了湖怪,但是好景不常,當我要試著裝上其他裝備的時候發生了不相容的問題,這時又讓我重新思考起我先前的決定?

我獨自思考著,走著走著就來到了廣場,有人在發傳單,我也被塞了一張,"Julia牌衝鋒鎗:輕便如Python牌散彈槍,連發如C牌手槍",我趕緊去找發傳的的那個人,那個人為我指引了賣Julia牌衝鋒鎗的店。

我馬上衝進店裡對著老闆大喊"我要買Julia牌衝鋒鎗!!",當時店裡的人還不多,但卻十分熱烈的討論著這槍,有人稱讚他很漂亮,有人說他的連發效率好,有人希望他以後能夠出更多的配備。
我拿到了我的槍,馬上到旁邊的野地測試測試。
跟傳聞中的一樣呢!!!不一會兒打倒了附近所有的獅鷲獸,手感上也不錯!

故事就從這把槍開始...

基因體、轉錄體資料

我碩士是念生物資訊的,基本上在做的事情就是資料分析,跟目前當紅 (?)的Big data或是Data science不謀而合。
故事就是從DNA的定序技術開始,DNA因為次世代的定序技術讓速率增加不少,通常資料的產生不會是問題。接著就試著去把定序完成的這些DNA片段用演算法將他組回人類完整的基因體資料,這時候就可以看看這些基因體資料是不是有什麼突變的地方或是缺陷,他可能隱含著遺傳性疾病。
當然也可以去看基因表現這回事,基因表現指的是,我們的基因可以像開關一樣被打開或是關閉,當打開的時候基因就會開始表現,基因表現的話就會製造出RNA來,我們就可以蒐集這些表現出來的RNA進行定序,定序完之後我們把這些RNA對回去,到底是哪些基因表現了這些RNA,並且可以得知表現量
基本上我的做的事情就是從基因表現量開始,並且對資料進行挖掘,試著從這些表現量資料當中挖掘出一些生物醫學上有用的知識。
如此一來,當我的資料量一大,就需要比較快的工具來幫我處理,這時候我就遇到了Julia。

Hello world

當你安裝完Julia後,跟Python一樣,他也有一個可以跟使用者互動的終端 (REPL)。
你可以輸入以下程式碼

println("Hello world!")

他就會輸出Hello world!
跟很多語言不同,他不太需要事先定義一大堆的block,也不用先載入什麼套件或是library,他跟很多動態型別語言或是scripting language一樣,可以很自由、隨性。

程式碼通常會存成.jl的檔案,你可以直接在終端機輸入以下指令執行他

julia hello.jl

今天就到這邊告一個段落吧!


下一篇
[Day 02] 進入Julia叢林—變數與數字
系列文
Julia語言—從入門到專案31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
海綿寶寶
iT邦大神 1 級 ‧ 2016-12-08 17:22:26

三點意見:
1.刪文是不被鼓勵的行為
2.如果講 R/Python 都歸在 BigData 組,那麼您這 Julia 的主題,似乎也該移到 BigData 組
3.兩年前的鐵人賽有人談過 Julia 語言,您可以參考看看再寫您自己的版本(您認識那位邦友嗎?)
/images/emoticon/emoticon08.gif

看更多先前的回應...收起先前的回應...
杜岳華 iT邦新手 5 級 ‧ 2016-12-09 00:20:32 檢舉
  1. 不好意思,我第一次使用這個平台,然後前些日子有中斷比賽,然後有人留訊息給我說可以在報名時間內重新參賽,所以我就把之前的文章清掉了,不過這邊的文章跟前面的是一模一樣的
  2. 其實我講的主軸會在程式語言本身跟我做的一些小專案,我認為與big data或是data science不符,只有專案中的simulated annealing有沾上一點邊而已
  3. 我不認識他,我有看過他的文章,不過他的文章著重於他紀錄自己的專案過程,而我會在前面的一個部份做教學,目的性也不一樣

我是因為「BigData組人比較少,自我挑戰組人比較多」才建議您轉組
一來比較符合主題
二來比較有機會得冠軍
當然了
您自己的比賽,您自己做主

小財神 站方管理人員 ‧ 2016-12-09 15:42:09 檢舉

斷賽最好的策略就是重新參賽,為避免內容重複才清掉了之前的內容,這是可以理解的 ^^

Big Data組可以參與評選,爭取冠軍、優選或佳作
自我挑戰賽則是純粹的自我挑戰
海綿大用心良苦,a504082002的參賽內容精實,參加主題競賽是不錯的主意唷!
不過,兩大競賽之間不能互轉,且開賽後也不能轉組了。
這是為了維持比賽的公平性。

不如再規畫一個題目,報Big Data組吧! (推坑)

杜岳華 iT邦新手 5 級 ‧ 2016-12-10 00:07:37 檢舉

這個坑阿..........我思考看看XD

凍仁翔 iT邦新手 3 級 ‧ 2016-12-12 00:15:02 檢舉

小財神這招真是絕啊!一起加油吧!

(啊,剛過 12 點,我得趕緊寫 Day11 去了!)

0
arguskao
iT邦新手 3 級 ‧ 2022-11-19 11:06:58

從python過來,會需要花很多力氣嗎?

我要留言

立即登入留言