Biopython-cluster-analysis
Biopython-クラスター分析
一般に、クラスター分析は、同じグループ内のオブジェクトのセットをグループ化します。 この概念は、主にデータマイニング、統計データ分析、機械学習、パターン認識、画像分析、バイオインフォマティクスなどで使用されます。 クラスターがさまざまな分析でどのように広く使用されているかを理解するために、さまざまなアルゴリズムによって実現できます。
バイオインフォマティクスによると、クラスター分析は主に遺伝子発現データ分析で使用され、類似した遺伝子発現を持つ遺伝子のグループを見つけます。
この章では、実際のデータセットでのクラスタリングの基礎を理解するために、Biopythonの重要なアルゴリズムを確認します。
Biopythonは、すべてのアルゴリズムを実装するためにBio.Clusterモジュールを使用します。 次のアルゴリズムをサポートしています-
- 階層的クラスタリング
- K-クラスタリング
- 自己組織化マップ
- 主成分分析
上記のアルゴリズムについて簡単に紹介します。
階層的クラスタリング
階層的クラスタリングを使用して、距離測定によって各ノードをその最近傍にリンクし、クラスターを作成します。 Bio.Clusterノードには、左、右、距離の3つの属性があります。 以下に示すように簡単なクラスターを作成しましょう-
あなたがツリーベースのクラスタリングを構築したい場合は、以下のコマンドを使用します-
Bio.Clusterモジュールを使用して階層クラスタリングを実行しましょう。
距離が配列で定義されていることを考慮してください。
>>> Bio.Clusterからtreeclusterをインポート>>> cluster = treecluster(distance)>>> print(cluster)(2、1):0.666667(-1、0):9.66667
>>> Bio.Clusterからkclusterをインポート>>> numpyから配列をインポート>>> data = array([[clusterid、error、found = kcluster(data)>>> print(clusterid)[0 0 1] >>>印刷(見つかった)1
>>> distance = array([[以下のコマンドを使用してk-medoidクラスタリングを計算できます-
例を考えてみましょう。
kcluster関数は、Seqインスタンスではなくデータ行列を入力として受け取ります。 シーケンスを行列に変換し、それをkcluster関数に提供する必要があります。
データを数値要素のみを含む行列に変換する1つの方法は、 numpy.fromstring 関数を使用することです。 基本的に、シーケンス内の各文字を対応するASCII文字に変換します。
これにより、kcluster関数が認識し、シーケンスのクラスター化に使用するエンコードされたシーケンスの2D配列が作成されます。
自己組織化マップ
このアプローチは、人工ニューラルネットワークの一種です。 これはコホネンによって開発され、しばしばコホネンマップと呼ばれます。 長方形のトポロジーに基づいてアイテムをクラスターに編成します。
以下に示すように、同じ配列距離を使用して簡単なクラスターを作成しましょう-
>>> numpy import arrayから>>> numpy import meanから>>> numpy import covから>>> numpy.linalg import eigから
#行列を定義>>> A = array([[print(A)[[各列の平均を計算>>> M = mean(A.T、axis = 1)>>> print(M) [ 3. 4.]
#列の平均を引くことで列を中央に配置>>> C = A-M
>>> print(C)[[中心行列の共分散行列を計算>>> V = cov(C.T)
>>> print(V)[[共分散行列の固有分解>>>値、ベクトル= eig(V)
>>> print(vectors)[[print(values) [ 8. 0.]
>>> Bio.Clusterからpcaをインポート>>> numpyから配列をインポート>>> data = array([[columnmean、axes、components、eigenvalues = pca(data)>>> print(columnmean) [ 3. 4.] >>> print(coordinates)[[print(components)[[print(eigenvalues) [ 4. 0.]