
203
8.5 k-mer のカウント再び
from toolz import curried as c
k = 7
counts = tz.pipe('data/sample.fasta', open,
c.filter(is_sequence),
c.map(str.rstrip),
c.map(c.sliding_window(k)),
tz.concat, c.map(''.join),
tz.frequencies)
これで、
k-mer
の頻度分布を見ることができます。
counts = np.fromiter(counts.values(), dtype=int, count=len(counts))
integer_histogram(counts, xlim=(-1, 250), lw=2)
■
8.5.1
演習:ストリーミングデータの主成分分析(
PCA
)
scikit-learn
ライブラリには
IncrementalPCA
クラスという仕組みが用意されており、メモリ上に
データセットを丸ごと読み込むことなく主成分分析(
PCA
)を実行できます。しかし、データは
自分で切り出す必要があるため、コードが少し使いづらくなります。サンプルデータをストリー
ムとして受け取って
PCA
を実行できる関数を作ってみましょう。続いて、その関数を使い、機械
学習でよく使われる
iris
データセット(
data/iris.csv
)の
PCA
を計算してみます(または、
scikit-learn
の
datasets
モジュールの
datasets.load_iris() ...