Python

分析・開発環境構築(Windows編)

かなり時間が空いてしまった。ブログを継続するのはなんと難しいことか。 最近購入したデスクトップPCに環境構築する機会があったので、kimotonの分析・開発環境をここにまとめておきます。 WSL2のインストール 今やWindows使いの開発環境はWSL2一択です。Vi…

Rosalindを解く - フィボナッチ数列

Rosalindの紹介はこちらから。 www.kimoton.com 本日は自然界でも見られる数列、フィボナッチ数列についての実装を見ていきます。 rosalind.info 生物学的知識のおさらい 参考:相補性 (分子生物学) - Wikipedia 中世で最も才能があったと評価されるイタリア…

生存時間データへのDeep Learningの適用 - DeepSurv

生存時間データの分析に関してちょこちょこ取り上げていますが、今回はそんな生存時間データにDeep Learningを適用してみた論文、DeepSurv論文を読んでまとめてみました。 bmcmedresmethodol.biomedcentral.com 1分で理解するDeepSurv Cox比例ハザードモデル…

Matplotlibで日本語を使用する方法

日本語表示できない問題 Matplotlibでは、日本語を扱えるフォントが指定されていない場合に日本語を含んだプロットを出力すると、文字化け(◻︎)が表示されてしまいます。 plt.figure() plt.title("てすと") 日本語フォントをダウンロード 日本語を表示する…

生存時間解析 - Cox比例ハザードモデル

ここまでで紹介してきた生存関数の推定やハザード関数の推定、ログランク検定といったノンパラメトリックな手法は、一標本の生存時間データ解析、二群間の比較に有用な方法になります。 一方で、実際の医学研究では、個々の被験者について、生存・死亡といっ…

pythonでバイオインフォマティクス - VCFファイルを扱う

GATKやSAMtoolsなどの変異解析ツールを実行した際に、含まれていた一塩基変異(SNP)、挿入(Insert)、欠失(Deletion)等の情報はVCFファイルというフォーマットで出力されます。 VCFファイルのフォーマットに関しては、GATKの説明ページを参照してくださ…

Pythonでバイオインフォマティクス - BAM/SAMファイルを扱う

インストール手順は大抵conda かpipで可能なので、これらをいちいち紹介しても仕方ない気がしてきました。今回からインストール部分は省いてご紹介します。 前回の記事ではアライメント情報を格納するためのフォーマット、BAM/SAMファイルをご紹介しました。…

Pythonでバイオインフォマティクス - FASTQファイルを扱う

生存時間分析シリーズが立て続いておりましたが、今回は久しぶりにバイオインフォマティクス関連の記事になります。 以前の記事でも紹介したBiopythonを用いて、簡単なデータの可視化を行ってみます。 www.kimoton.com Biopythonのインストール Biopythonの…

生存時間分析 ハザード関数の推定

下記の定義で与えられるハザード関数(単にハザードともいう)は、各時点における瞬間的な死亡のリスクや危険度を表すために使われます。 $$ h(t)=\lim_{\delta t \to 0}\frac{P(t\leq T

生存時間分析 ログランク検定

2群以上のデータを比較する際に、最も簡単な方法として2つの生存関数を同じ軸の上にプロットすることが挙げられます。 from matplotlib import pyplot as plt from lifelines.datasets import load_dd from lifelines import KaplanMeierFitter data = load_…

生存時間分析 生存関数の標準誤差(Greenwoodの公式)

前回の記事では様々な定義による生存関数を見ていきました。 今回はそんな生存関数について、重要な統計量である標準偏差を算出する方法について学んでいきます。 標準誤差を推定することで信頼区間を形成したり、種々の仮説検定に用いることができます。 前…

生存時間分析 様々な生存関数とlifelinesを使った算出

前回は生存関数とハザード関数の関係性について紹介しました。 www.kimoton.com 生存関数の推定には、確率分布を仮定しない(ノンパラメトリックな)推定法を用います。 これらについて定義を見直し、lifelinesを使ってカプラン・マイヤー推定量を算出・プロ…

最適化手法について学ぶ - Nelder-Mead法

最近は専ら最尤推定と格闘しています。最尤推定において、必要なのが尤度関数の最大化。 なんとなく収束する手法を選択して目をを向けてきたものの、そろそろちゃんと理解する必要性を感じたため第一弾として、Nelder-Mead法を理解していこうと思います。 因…

VCFファイルの表記揺れについて

VCF(Variant Caller Format)は、一塩基変異(SNP)、挿入・欠損(INDEL)、および構造変異(SV)を表すために使用される標準化されたテキストファイルフォーマットです。詳細に知りたい方はGATKの説明ページを参照してください。 このフォーマットを用いる…

ANNOVARとMyVariant.infoを用いた変異マイニング - VAPr

MongoDBを使って変異情報の管理がしたいという一心で仕事に手がつかないkimotonですこんにちは。 コロナもいいけどそんなことより花粉がヤバいですね。皆さんお気をつけて。 変異マイニング系の論文を読み漁っておりますので1つ投下します。 Purpose MongoDB…

Snakemakeを試す - ④ まとめ

はじめに ※本記事はバイオインフォマティクス Advent Calendar 2019の20日目の記事です。 Snakemakeのインストールと概要 → Snakemakeを試す - ① インストールと概要 - ばいばいバイオ チュートリアルの実行 → Snakemakeを試す - ② チュートリアルを実行 - …

Snakemakeを試す - ③ 並列化

前回の続き! 今回は並列化について見ていきます。 前回の例を使って、並列化した場合としてない場合とでどの程度変わるのか実験してみましょう。 ※コマンド実行ログが少々長めです。すっ飛ばしてサクッと読んでください。 Snakemakeにおけるthreadsの意味 …

Snakemakeを試す - ② チュートリアルを実行

明日やろうは馬鹿野郎。 前回の続き。 では準備もできたということで、やっていきしょうshort tutrial このチュートリアルは、ざっくりと決められたワークフローを組んでいくことでSnakemakeと仲良くなろうという趣旨のものです。 内容はバイオインフォマテ…

Snakemakeを試す - ① インストールと概要

2020/6/6 Syntax highlightを追記 お疲れ様です。 ここのところバイオインフォに触れられず何か物足りないkimotonです。 最近はMLOps周りの基盤作りに関わっています。 ナンデダロ。 Snakemakeってなにー?? githubリポジトリは下記。 The Snakemake workfl…

【Python】 tqdmでプログレスバーを表示してみた

ちょこっと便利シリーズ第二弾!! github.com pythonのプログラムを書いていて、プログレスバーを表示したいときってありません?? tqdm はそんなあなたのためのツールです。 tqdm means "progress" in Arabic (taqadum, تقدّم) and is an abbreviation fo…

pythonで実証する、正規分布 ~ 中心極限定理

pythonで実証する、正規分布 ~ 中心極限定理。 正規分布は、ガウス分布、誤差分布とも呼ばれ、平均値の付近に集積するようなデータ分布を表した連続的な変数に関する確率分布です。 そんな正規分布をPythonを使って描画します。

【Python】Scanpyを使った single cell RNA解析

GW始まってしまいましたね。 ブログの更新をだいぶ怠っていたので、ちゃっかり更新させて頂きます。 今日はPythonでscRNA-seq解析。Python実装のscRNA解析ツールといえばScanpyがまず思いつきます。 Seuratに比べてそこまで使われていない印象ですが、機能的…

Juliaでpermutation

本日のお題。 与えられた配列の全permutationを取得する方法について、pythonとjuliaで書いてみる。 1から書いてもいいのですが、実用性を考えてパッケージを使用した方法をご紹介。 Python編 itertoolsパッケージのproduct関数を使用します。 引数にはitera…

(勉強会用メモ) REST APIs with Django : Chapter 2-3

勉強会 ちょっと業務でRESTfulなAPIを作成する必要が出てきました。 3/27 (水) に再度勉強会開くのでぜひ。 connpass.com 3/14の内容復習編。 Djangoプロジェクトの作成 Python環境にはpipenvを使用します。 # 仮想環境の作成(python 3.6) $ pipenv instal…

(勉強会用メモ) REST APIs with Django : Chapter 1

勉強会 ちょっと業務でRESTfulなAPIを作成する必要が出てきました。 3/14 (水) にこの本使って勉強会開くのでぜひ。 そのための予習メモ。 connpass.com WWW (World Wide Web) 1960年代に登場したが、初期は孤立したネットワークとして存在した(軍事、科学…

これで決まり!最強自動コード整形ツール3選!

いやいや何が決まり!だよ、全然決まらねーよっていうタイトルすみません。 キャッチーなタイトルをつける検証をしています。 きっかけ 自動コード整形ツール。弊社では全く導入されていない。 何故か。 知らないからだ。 vimプラグインと手作業での修正とい…

実践投入!pipenv!

概要 新しいも面白いも楽しいも正義なんだよ— いちたる (@_kimoton) December 18, 2018 ということで、やっていきましょうpipenv 前回の以下の記事ではPipenvのインストールとPython3.7.1環境の作成を行いました。 今回はもうちょっと真面目にPipenvを使って…

Scrapyのインストール

今更ですがScrapyのインストールについて詳しめに。 Scrapyの動作環境 Scrapy runs on Python 2.7 and Python 3.4 or above under CPython (default Python implementation) and PyPy (starting with PyPy 5.9). ScrapyはPython2.7、若しくはPython>=3.4のも…

WSL + Hyper + fish shell + pipenv + docker環境を整える

本日Dockerを使用していて、 ユーザーディレクトリをマウントしたまま夢の $ rm -rf / を試しに行いましたところ。 ユーザーディレクトリ以下がすべて消えたkimotonです。 これまでWSL + wsl-terminal + bashを使っていたのですが、そろそろモダンな環境への…

親クラスの位置引数(positional argument)が子クラスで迷子になっちゃう件。

※ 2020/02/21 色々説明不足な点を追記 昔血迷ってただけの文章なので優しい目で読んで下さい。 きっかけは。 まだそんなに開発が進んでいないが、とっても気になるリポジトリを見つけた。 github.com scrapy-selenium。要するに、Scrapy上でSeleniumを使用で…