OpenCV を用いた主成分分析(PCA)

ここでは PCA を OpenCV の関数を用いて行うことについてのみ説明します.PCA とは何かなどについては他のサイトや書籍を参考にされて下さい.

OpenCV には PCA を行うために次の3つの関数が用意されています.

cvCalcPCA(const CvArr* data, CvArr* avg, CvArr* eigenvalues, CvArr* eigenvectors, int flags);

1つ目の関数(cvCalcPCA)は,ベクトル集合の主成分分析を行う関数.この関数は,観測されるデータベクトル集合を ,主成分分析によって部分空間へ投影されるベクトルを  としたときの連続写像  を求めます.

cvProjectPCA(const CvArr* data, CvArr* avg, CvArr* eigenvalues, CvArr* project);

2つ目の関数(cvProjectPCA)は,指定された部分空間へベクトルを投影します.あらかじめ求めた連続写像  を用いて  から  を算出します.

cvBackProjectPCA(const CvArr* project, CvArr* avg, CvArr* eigenvectors, CvArr* result);

3つ目の関数(cvBackProjectPCA)は,投影係数から元のベクトルを再構築します.部分空間  から 観測データ空間  への逆写像  を行います.

各関数への引数については次のようになっています.

Read the rest of this entry »

エノン写像

 
Google で「エノン写像」というキーワード検索をした時に10番目にこのブログが表示されていてビックリしました.にも関わらずエノン写像について何も載せていないのはいかがなものかと思い,少しだけエノン写像について書いてみることにしました.
 
エノン写像は,天文学者エノンさんが提案した数理モデルで,

x(t+1) = 1 - a * x(t) * x(t) + y(t)
y(t+1) = b * x(t)

で与えられる二次元写像です.低次(二次)の非線形性を有し,構造が簡単であることから,数値実験などによく用いられるそうです.(※詳細に関しては 他の参考書や Hénon map などを参照されて下さい.)

ちなみに2つのパラメータ, a, b をそれぞれ a = 1.4,b = 0.3 とした場合,エノン写像のアトラクタは ストレンジアトラクタ となります(下図).

エノン写像のストレンジアトラクタ
エノン写像が生成する時系列波形

エノン写像のダイナミクスを生成するプログラムをC言語で書くとこんな感じになります.

Read the rest of this entry »

PCRのプライマーの設計の為に...

 
 プライマーの相補プライマー配列,その逆方向配列,Tm値(melting temperature)の計算を行うプログラムを用意してみました.※[G,C,A,T]以外の文字は無視されます.
 Tm値の計算は”Current Protocols in Molecular Biology”に準拠しています.

 


 

プライマーの配列 (5′-3′)  
↑の相補プライマー (3′-5′)
↑の逆向 (5′-3′)
プライマーの塩基数
“G”または”C”の数
“A”または”T”の数
Tm値(1)
Tm値(2)

※ Tm値(1)
 (Tm値) = 60.8+0.41*(G,Cの割合(%))-(500/総塩基数)

 

標準的なPCRバッファー組成(最終濃度)
50mM  KCL
10mM Tris-HCl(pH 8.4〜9.0 at 25℃)
1.5mM MgCl2
0.01% ゼラチンまたは0.01% Triton X-100

 

塩濃度[S] = 0.05*(KCl濃度)+0.67*0.01*(Tris濃度)=0.0567(M) 

※ Tm値(2):Tm値(1)の近似計算
 (Tm値) = 4*(G,Cの数)+2*(A,Tの数)+35-2*(総塩基数)

【参考文献】
 中山広樹著,バイオ実験イラストレイテッド3 本当に増えるPCR(新版),秀潤社 

 


Page 1 of 11