第三講:如何記錄自己的代碼并轉(zhuǎn)換成網(wǎng)頁格式

3.1 記錄自己的代碼和分析步驟

在生信學(xué)習(xí)中,我們經(jīng)常會寫一些代碼來幫助快速實(shí)現(xiàn)數(shù)據(jù)分析敌土。如何有效且便捷的記錄自己的代碼和數(shù)據(jù)分析步驟镜硕?這是一件值得思考的事情。

不能及時有效的記錄自己的代碼或者分析步驟返干,一段時間后就可能會忘掉谦疾。這樣一來,自己還需花大量時間去重新整理思路犬金。對生信學(xué)習(xí)來講念恍,這是不可取的六剥。良好的實(shí)驗(yàn)分析記錄習(xí)慣是非常重要的,盡管這可能會花掉一部分時間峰伙,但是其中的好處是不可估量的疗疟。

現(xiàn)在很多生信學(xué)習(xí)者喜歡用markdown去記錄自己的日常。markdown對于大部分使用者來說是友好的瞳氓。語法簡單策彤,容易掌握。市面上也出現(xiàn)了一些比較好用的markdown軟件匣摘,例如:CMD Markdown店诗。這里為了提升自己的文件逼格然后與諸如Read the Docs之類的接軌,我給大家介紹一下Jupyter notebookSphinx這兩個神器音榜。

3.1.1 Jupyter notebook的安裝與使用

Jupyter notebook 想必大家都不陌生庞瘸,這里我簡單地給大家介紹一下它。 目前Jupyter notebook主要支持python2/3內(nèi)核赠叼, R內(nèi)核擦囊,Bash內(nèi)核還有Julia 內(nèi)核。對于它的安裝也相對比較簡單嘴办。如果你的電腦里已經(jīng)安裝了Python (2或者3)瞬场,你可以直接用pip對其進(jìn)行安裝。 如果你沒有安裝pip, 可以用以下代碼去安裝(已經(jīng)安裝的小伙伴可以跳過此步驟)

$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py

安裝結(jié)束后涧郊,你可以用pip進(jìn)行對jupyter的安裝贯被。

$ pip install jupyter

對于bash內(nèi)核的支持,大家可以用以下代碼去安裝(僅限于Linux/MacOS系統(tǒng))

$ pip install bash_kernel
$ python -m bash_kernel.install

一切準(zhǔn)備就緒后妆艘,大家就可以打開Jupyter notebook

$ jupyter notebook

然后通過選擇跳出網(wǎng)頁右上角New 選項去建立例如bash文本彤灶。具體的寫作語句可以參考這里。在此我就不贅述了双仍。

3.1.2 Sphinx的安裝與使用

作為高端大氣上檔次的html轉(zhuǎn)化器,sphinx你值得擁有桌吃。 Sphinx提供了很多主題朱沃,可以幫助美化你的jupyter notebook文本并將它轉(zhuǎn)化成html網(wǎng)頁版。Read the Docs就是應(yīng)用sphinx來轉(zhuǎn)化docs的茅诱。 廢話不多講逗物,先看看怎么安裝它。

安裝之前請確保你的系統(tǒng)中已經(jīng)安裝了Pandoc.

完成以上安裝后瑟俭,你可以參考以下代碼去安裝sphinx

$ pip install pandoc
$ pip install pypandoc
$ pip install sphinx
$ pip install nbsphinx
$ pip install sphinx_rtd_theme

nbsphinx的使用手冊可以參考:http://nbsphinx.readthedocs.io

如何使用sphinx

$ mkdir -p docs
$ cd docs
$ sphinx-quickstart

你會看到這樣的信息:

Welcome to the Sphinx 1.6.7 quickstart utility.

Please enter values for the following settings (just press Enter to
accept a default value, if one is given in brackets).

Enter the root path for documentation.
> Root path for the documentation [.]:

打回車鍵翎卓,你會看到

You have two options for placing the build directory for Sphinx output.
Either, you use a directory "_build" within the root path, or you separate
"source" and "build" directories within the root path.
> Separate source and build directories (y/n) [n]: 

選擇y, 然后打回車鍵,你會看到

Inside the root directory, two more directories will be created; "_templates"
for custom HTML templates and "_static" for custom stylesheets and other static
files. You can enter another prefix (such as ".") to replace the underscore.
> Name prefix for templates and static dir [_]: 

打回車鍵摆寄,你會看到

The project name will occur in several places in the built documentation.
> Project name: 

填寫自己的project名字失暴,作者坯门,版本號,然后一直按回車鍵直到:

Please indicate if you want to use one of the following Sphinx extensions:
> autodoc: automatically insert docstrings from modules (y/n) [n]: 

選擇y逗扒。然后接著回車鍵到最后古戴。你就建立一個屬于自己的project。具體的文件結(jié)構(gòu)如下:

.
├── Makefile
├── build
├── make.bat
└── source
    ├── _static
    ├── _templates
    ├── conf.py
    └── index.rst

這里最重要的是你的conf.pyindex.rst文件矩肩。

要想有效的利用sphinx, 你可以先把.ipynb文件轉(zhuǎn)換成.rst文件 (語法豐富多彩现恼,感興趣的可以自己直接寫.rst文件).

$ ipython nbconvert --to rst /path/to/your/test.ipynb

轉(zhuǎn)化完成后將test.rst 文件拷貝到上面的sourcefolder。

下面就是對index.rst的設(shè)置了黍檩。
index.rst要求必須保留toctree 設(shè)置叉袍,其他不用的可以刪掉,具體如下:

====================================
Welcome to my sphinx documentation!   ##給自己文檔起個名字
====================================

.. toctree::
   :maxdepth: <int>  ##可選任意數(shù)刽酱,如10.
   :caption: xxxxxx   ##標(biāo)題注釋喳逛,也可不填

   test ##這里是你轉(zhuǎn)化的rst文件名字

接下來是conf.py的設(shè)置,可參考:

nbsphinx_execute = 'never'
nbsphinx_allow_errors = True
nbsphinx_prompt_width = 0
exclude_patterns = ['_build', '**.ipynb_checkpoints', 'Thumbs.db', '.DS_Store']
html_theme = 'sphinx_rtd_theme' ##主題很多肛跌,可自行選擇
html_theme_options = {'collapse_navigation': True}

sphinx有不少的主題艺配,你可以在sphinx-themes 瀏覽下載。

完成以上設(shè)置后衍慎,回到上一級 docs folder 里转唉,然后

$ make html

你的html文本就會出現(xiàn)在你的./build/html文件中。

下一講我將介紹如何免費(fèi)創(chuàng)建自己Read the docs稳捆,敬請關(guān)注赠法。

希望大家相互學(xué)習(xí),多批評指正乔夯!

版權(quán)所有者 Andy. Twitter: @Yuxuan_Yuan; Wechat: yyx8671砖织;微信公眾號:生信人生

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市末荐,隨后出現(xiàn)的幾起案子侧纯,更是在濱河造成了極大的恐慌,老刑警劉巖甲脏,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件眶熬,死亡現(xiàn)場離奇詭異,居然都是意外死亡块请,警方通過查閱死者的電腦和手機(jī)娜氏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門芳来,熙熙樓的掌柜王于貴愁眉苦臉地迎上來腥例,“玉大人弦撩,你說我怎么就攤上這事再姑∶鄞校” “怎么了汁胆?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵答毫,是天一觀的道長摹量。 經(jīng)常有香客問我,道長最岗,這世上最難降的妖魔是什么帕胆? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮般渡,結(jié)果婚禮上懒豹,老公的妹妹穿的比我還像新娘。我一直安慰自己驯用,他們只是感情好脸秽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蝴乔,像睡著了一般记餐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上薇正,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天片酝,我揣著相機(jī)與錄音,去河邊找鬼挖腰。 笑死雕沿,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的猴仑。 我是一名探鬼主播审轮,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼辽俗!你這毒婦竟也來了疾渣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤崖飘,失蹤者是張志新(化名)和其女友劉穎榴捡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體朱浴,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吊圾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赊琳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片街夭。...
    茶點(diǎn)故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡砰碴,死狀恐怖躏筏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情呈枉,我是刑警寧澤趁尼,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布埃碱,位于F島的核電站,受9級特大地震影響酥泞,放射性物質(zhì)發(fā)生泄漏砚殿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一芝囤、第九天 我趴在偏房一處隱蔽的房頂上張望似炎。 院中可真熱鬧,春花似錦悯姊、人聲如沸羡藐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仆嗦。三九已至,卻和暖如春瘩扼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背垃僚。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工集绰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纫谅。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓侍郭,卻偏偏與公主長得像询吴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子亮元,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容