版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 《數(shù)學(xué)軟件實(shí)踐》</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 題 目:MATLAB實(shí)現(xiàn)DNA序列的分類(lèi)識(shí)別</p><p><b> 學(xué) 號(hào):</b></p><p><b> 姓 名:<
2、/b></p><p><b> 教 師</b></p><p><b> 日 期:</b></p><p> 不要?jiǎng)h除分節(jié)符,此行不會(huì)被打印。</p><p> 不要?jiǎng)h除分節(jié)符,此行不會(huì)被打印</p><p><b> 論文題目</b&g
3、t;</p><p><b> 論文題目1</b></p><p><b> 摘 要2</b></p><p><b> 1 問(wèn)題重述3</b></p><p><b> 2 問(wèn)題分析3</b></p><p>&
4、lt;b> 3 模型假設(shè)3</b></p><p><b> 4 符號(hào)說(shuō)明4</b></p><p> 5 模型的建立與求解4</p><p> 5.1 問(wèn)題一的模型5</p><p> 5.1.1 模型建立6</p><p><b> 模型I6
5、</b></p><p> 5.1.2 模型求解6</p><p> 5.2 問(wèn)題二的模型6</p><p> 5.2.1 模型建立7</p><p><b> 模型II7</b></p><p> 5.2.2 模型求解7</p><p>
6、 5.3 問(wèn)題三的模型7</p><p> 5.3.1 模型建立7</p><p><b> 模型III7</b></p><p> 5.3.2 模型求解 ……7</p><p> 6 模型的評(píng)價(jià)與改進(jìn)7</p><p><b> 附 錄9</b>&
7、lt;/p><p> A.1 附錄描述19</p><p> A.2 附錄描述29</p><p> A.3 附錄描述39</p><p><b> 摘 要</b></p><p><b> 序列矩陣</b></p><p> 首先調(diào)用
8、函數(shù),將文檔中的字符讀入到中,將其中不是的字符用來(lái)替換,存到矩陣中。</p><p> 給定序列, ,分別表示序列的前()個(gè)元素中出現(xiàn)的次數(shù).編寫(xiě)函數(shù)計(jì)算出序列每一行的。</p><p> 根據(jù)定義的歐幾里得距離矩陣,為了求解方便,寫(xiě)編寫(xiě)一個(gè)函數(shù),求出四個(gè)矩陣,然后編寫(xiě)函數(shù),便可以求出對(duì)應(yīng)的。</p><p> 根據(jù)定義的路徑距離矩陣,編寫(xiě)函數(shù),根據(jù)不同的,求
9、出不同的。</p><p> 根據(jù)定義的商矩陣,編寫(xiě)函數(shù),由(b)和(c)求出的和計(jì)算出對(duì)應(yīng)的。</p><p> 根據(jù)定義的商矩陣,編寫(xiě)函數(shù),由(b)求出的計(jì)算出對(duì)應(yīng)的。</p><p><b> 最大特征矩陣</b></p><p> 對(duì)于給定的序列, 令,其中分別表示矩陣的標(biāo)準(zhǔn)化()的最大特征根。將求得的結(jié)
10、果放于矩陣中。</p><p> 調(diào)用給定程序作出序列的聚類(lèi)樹(shù)圖</p><p> 可以根據(jù)給定的程序,對(duì)于分別作圖。</p><p> MATLAB的一些基礎(chǔ)知識(shí)</p><p> 關(guān)鍵字:序列、最大特征根、聚類(lèi)樹(shù)圖、MATLAB基礎(chǔ)知識(shí)</p><p><b> 1 問(wèn)題重述</b>
11、</p><p> 題目給的是關(guān)于序列的問(wèn)題,首先給出一個(gè)文檔,是構(gòu)成序列的字符,但其中有不是的字符,要求將文檔中的所有字符序列讀入到矩陣中,并將其中不是的字符用中的任意一個(gè)換掉,得到正確的矩陣。然后分別計(jì)算矩陣 (例如表示前個(gè)字符中含有的的個(gè)數(shù))。再根據(jù)四個(gè)矩陣不同的輸入順序求出6個(gè)不同的矩陣,對(duì)每個(gè)矩陣,可以求出對(duì)應(yīng)的,再由求出對(duì)應(yīng)的。對(duì)每個(gè)矩陣,也可以求出對(duì)應(yīng)的矩陣。</p><p&g
12、t; 假設(shè)輸入序列的第一行,求出6個(gè)不同的后,每個(gè)矩陣可以求得一個(gè)最大特征根,這樣6個(gè)有6個(gè)最大特征根,放于矩陣 (為24*6的矩陣)的第一行中,6個(gè)有6個(gè)最大特征根,放于矩陣 (為24*6的矩陣)的第一行中,6個(gè)有6個(gè)最大特征根,放于矩陣 (為24*6的矩陣)的第一行中。當(dāng)把序列的24行遍歷完,三個(gè)矩陣便賦值完成。</p><p> 提示中給了畫(huà)序列的聚類(lèi)樹(shù)圖的程序,調(diào)用此程序,便可完成3個(gè)圖的繪制。<
13、;/p><p><b> 2 問(wèn)題分析</b></p><p> 首先調(diào)用函數(shù),將文檔中的字符讀入到矩陣中,將其中不是的字符用來(lái)替換。編寫(xiě)函數(shù)計(jì)算出序列每一行的。根據(jù)定義的歐幾里得距離矩陣,為了求解方便,先由函數(shù),求出四個(gè)矩陣,然后由函數(shù),便可以求出對(duì)應(yīng)的。根據(jù)定義的路徑距離矩陣,由函數(shù),根據(jù)不同的,求出不同的。根據(jù)定義的商矩陣,由函數(shù)和求出的和計(jì)算出對(duì)應(yīng)的。根據(jù)定義
14、的商矩陣,由函數(shù)求出的計(jì)算出對(duì)應(yīng)的。</p><p> 編寫(xiě)函數(shù),假設(shè)輸入DNA序列的第一行,求出6個(gè)不同的后,每個(gè)矩陣對(duì)應(yīng)一個(gè)最大特征根,6個(gè)的6個(gè)最大特征根放于矩陣的第一行中,6個(gè)的6個(gè)最大特征根放于矩陣的第一行中,6個(gè)的6個(gè)最大特征根放于矩陣的第一行中。遍歷完序列的24行,得到三個(gè)最大特征根矩陣。</p><p> 由提示中給定的畫(huà)序列聚類(lèi)樹(shù)圖的程序畫(huà)出對(duì)應(yīng)的聚類(lèi)樹(shù)圖。</
15、p><p><b> 3 模型假設(shè)</b></p><p> 假設(shè)實(shí)驗(yàn)數(shù)據(jù)足夠準(zhǔn)確。</p><p> 假設(shè)實(shí)驗(yàn)過(guò)程中不存在儀器誤差。</p><p> 假設(shè)提示中給的程序完整且正確。</p><p><b> 4 符號(hào)說(shuō)明</b></p><p&g
16、t;<b> 表 1</b></p><p> 5 模型的建立與求解</p><p> 5.1 問(wèn)題一的模型</p><p> 讀取數(shù)據(jù)到矩陣中,并將其中不是的字符用替換掉,得到處理過(guò)的矩陣。并根據(jù)輸入的序列的每一行,計(jì)算出4個(gè)矩陣。</p><p> 5.1.1 模型建立</p><p&g
17、t; 首先,文檔中的數(shù)據(jù)未經(jīng)過(guò)處理,必須編寫(xiě)一個(gè)函數(shù),將中的所有字符讀入到工作空間中,其中共有24個(gè)序列,每一個(gè)序列都以開(kāi)始,此時(shí)函數(shù)中要有判斷語(yǔ)句,如果遇到就將它的下一行序列讀入到矩陣中,讀入完成以后,要運(yùn)用一段程序,判斷其中的字符若不是,就用替換。</p><p> 這樣就很清楚的得到了序列矩陣。</p><p> 提示中給定的,分別表示序列的前()個(gè)元素中出現(xiàn)的次數(shù)。編寫(xiě)函數(shù),
18、根據(jù)中某一行的輸入,得出需要的矩陣。</p><p><b> 模型I </b></p><p><b> 讀取部分:</b></p><p> P=importdata('TF24.txt'); %讀取TF中的數(shù)據(jù)到a中,P是cell類(lèi)型的列向量 </p><p><b
19、> 判斷部分:</b></p><p><b> for i=1:m</b></p><p> if double(Q{i}(1))==62</p><p> A(j)=i; %A數(shù)組存放的的是首字符為'>'的行數(shù)</p><p><b> j=j+1;<
20、/b></p><p><b> end</b></p><p><b> end</b></p><p><b> 取數(shù)據(jù)部分:</b></p><p><b> for i=1:n</b></p><p> DN
21、A{i}=cell2mat((Q(A(i)+1:A(i+1)-1))');%將介于兩個(gè)'>'之間的段取出,然后轉(zhuǎn)置,然后分開(kāi)成單個(gè)字符,放于cell的第一個(gè)中</p><p><b> end</b></p><p> 替換非正常數(shù)據(jù)部分:</p><p> if DNA{i}(j)~='A'
22、&&DNA{i}(j)~='T'&&DNA{i}(j)~='G'&&DNA{i}(j)~='C'</p><p> disp('此處有一個(gè)字符不是ATGC');</p><p> DNA{i}(j)='A';</p><p> dis
23、p('轉(zhuǎn)換完成!');</p><p><b> end</b></p><p> 5.1.2 模型求解</p><p><b> 部分結(jié)果展示</b></p><p><b> 圖表 1 矩陣</b></p><p> 圖
24、表 2 輸入的第一行后得出的矩陣的部分結(jié)果</p><p> 5.2 問(wèn)題二的模型</p><p> 要求解的最大特征根矩陣,首先要把求解出來(lái),而在求解時(shí),涉及到這6個(gè),而在求解它們是還有這4個(gè)矩陣,的不同只是因?yàn)檩斎腠樞虻牟煌a(chǎn)生的。所以先設(shè)計(jì)函數(shù)把求解出來(lái)。再由函數(shù)求解不同的,根據(jù)求解出來(lái)的,解相應(yīng)的就變得簡(jiǎn)單多了。取出其中的及其對(duì)應(yīng)的,分別求它們的最大特征根矩陣,放到三
25、個(gè)數(shù)組中,再根據(jù)給定的作圖程序,做出序列的聚類(lèi)樹(shù)圖。</p><p> 5.2.1 模型建立</p><p> 為了求解方便,寫(xiě)編寫(xiě)一個(gè)函數(shù),兩層for循環(huán)遍歷求出。</p><p> 由函數(shù),其中輸入4個(gè)形參,便可以求出對(duì)應(yīng)的。由函數(shù),根據(jù)不同的,求出不同的,我們注意到,是對(duì)稱(chēng)矩陣,為了減少運(yùn)算量,只求取的上三角矩陣便可。</p><p&
26、gt; 由函數(shù),由于已經(jīng)求出和,便可計(jì)算出對(duì)應(yīng)的。此時(shí)求解中注意到有除法運(yùn)算,而且最后對(duì)角線上全是0。為了避免除數(shù)為0的情況,將對(duì)角陣的值全部變?yōu)?,運(yùn)算完成以后再將對(duì)角線賦值為0即可。</p><p> 由函數(shù),根據(jù)求出的計(jì)算出對(duì)應(yīng)的,只需要一個(gè)判斷即可。</p><p> 由函數(shù),求解的最大特征根矩陣,將求得的結(jié)果放于矩陣中。MATLAB有自帶的求最大特征根的函數(shù),</p&
27、gt;<p> 只是它會(huì)求解出一列數(shù)據(jù),用函數(shù)取出最大的即可。的最大特征根求解中,只需要把需要的6個(gè)參數(shù)換成相應(yīng)的,即可。</p><p> 調(diào)用給定程序作出序列的聚類(lèi)樹(shù)圖,調(diào)用過(guò)程中,變化的只是特征根矩陣。</p><p><b> 模型II</b></p><p><b> for i=1:n</b&g
28、t;</p><p><b> for j=1:n</b></p><p> Aij(i,j)=A(j)-A(i);</p><p> Tij(i,j)=T(j)-T(i);</p><p> Gij(i,j)=G(j)-G(i);</p><p> Cij(i,j)=C(j)-C(i)
29、;</p><p><b> end</b></p><p><b> end</b></p><p> function ED=I_ED(x,y,z,w) %x y z w是Aij,Tij.Gij,Cij中的一個(gè)</p><p> ED=sqrt((x-2*y).^2+(z-2*w).^2
30、);</p><p> function EP=I_EP(ED,PD)</p><p> n=length(PD);</p><p><b> for i=1:n</b></p><p> PD(i,i)=1;</p><p><b> end</b></p&
31、gt;<p> EP=ED./PD;</p><p><b> for i=1:n</b></p><p> EP(i,i)=0;</p><p><b> end</b></p><p> function EG=I_EG(ED) </p><p>
32、 n=length(ED);</p><p> EG=zeros(n);</p><p><b> for i=1:n</b></p><p><b> for j=1:n</b></p><p><b> if i~=j</b></p><p&g
33、t; EG(i,j)=ED(i,j)/abs(i-j);</p><p><b> else</b></p><p> EG(i,j)=0;</p><p><b> end</b></p><p><b> end</b></p><p>&
34、lt;b> end</b></p><p> function y=I_EGa1(ED1,ED2,ED3,ED4,ED5,ED6)</p><p> N=length(ED1);</p><p> y(1)=max(eigs(ED1)/N);</p><p> y(2)=max(eigs(ED2)/N);</
35、p><p> y(3)=max(eigs(ED3)/N);</p><p> y(4)=max(eigs(ED4)/N);</p><p> y(5)=max(eigs(ED5)/N);</p><p> y(6)=max(eigs(ED6)/N);</p><p> EGe=zeros(24);</p&g
36、t;<p> for i=1:24</p><p> for j=i+1:24</p><p> EGe(i,j)=norm(EGa1(i,:)-EGa1(j,:));</p><p> EGe(j,i)=EGe(i,j); </p><p><b> end</b></p><
37、;p><b> end</b></p><p> EGe0=pdist(EGe,'euclidean'); % Pairwise distance</p><p> EGtree=linkage(EGe0); % Create hierarchical cluster tree</p>
38、<p> EPtreeShow=dendrogram(EGtree,'orientation','left'); % Dendrogram plot</p><p> 5.2.2 模型求解</p><p><b> 部分結(jié)果顯示:</b></p><p> 圖表 3
39、 圖表 4 </p><p> 圖表 5 圖表 6 </p><p> 圖表 7 圖表 8 </p><p> 5.3 問(wèn)題三的模型</p><p> 由于
40、序列的第20行數(shù)據(jù)比其他行多近一半的數(shù)據(jù),一般的電腦運(yùn)行時(shí)會(huì)出現(xiàn)溢出現(xiàn)象,為了解決這個(gè)問(wèn)題,第二十行的程序需要加以改進(jìn),使其能夠適應(yīng)一般的電腦運(yùn)行內(nèi)存。</p><p> 5.3.1 模型建立</p><p> 運(yùn)行時(shí)的問(wèn)題從求解出以后就出現(xiàn)了。所以的函數(shù)不能用,現(xiàn)在我考慮,可能是先求解出導(dǎo)致占用了過(guò)多內(nèi)存,我現(xiàn)在把, , , 的原始公式直接帶入編寫(xiě)的函數(shù)中,發(fā)現(xiàn)運(yùn)行速度變快。但是這樣
41、6個(gè)需要依次求出,然后依次運(yùn)行,,,,,一遍運(yùn)行完成后,得到3個(gè)最大特征根矩陣第20行中的一個(gè),運(yùn)行6次,3個(gè)矩陣的第20行變求出來(lái)了。</p><p><b> 模型III</b></p><p> 求解第20行第一個(gè)值</p><p> n=length(DNA{20});</p><p> ED1=zero
42、s(n,n);</p><p><b> for i=1:n</b></p><p><b> for j=1:n</b></p><p> ED1(i,j)=sqrt(((A(j)-A(i))-2*(G(j)-G(i)))^2+((T(j)-T(i))-2*(C(j)-C(i)))^2);</p>&
43、lt;p><b> end</b></p><p><b> end</b></p><p> u1=max(eigs(ED1)/n);</p><p> 求解第20行第一個(gè)值</p><p> PD1=I_PD(ED1);</p><p> EP1=I_E
44、P(ED1,PD1);</p><p> u2=max(eigs(EP1)/n);</p><p> 求解第20行第一個(gè)值</p><p> EG1=I_EG(ED1) ;</p><p> u3=max(eigs(EG1)/n);</p><p> clear('ED1','PD1&
45、#39;,'EP1','EG1','u1','u2','u3');</p><p> 5.3.2 模型求解 </p><p><b> 第20行結(jié)果展示:</b></p><p> 圖表 9 的20行 圖表 10 的20行 圖表
46、11 的20行</p><p><b> 序列聚類(lèi)樹(shù)圖:</b></p><p> 圖表 12 的聚類(lèi)樹(shù)圖 圖表 13 的聚類(lèi)樹(shù)圖 圖表 14 的聚類(lèi)樹(shù)圖</p><p> 6 模型的評(píng)價(jià)與改進(jìn)</p><p> 此文章能較好的將序列進(jìn)行分類(lèi)和鑒別,運(yùn)行最終的主程序,便可清楚地給出其聚類(lèi)樹(shù)
47、圖和相應(yīng)的最大特征根矩陣。但是其在處理大量序列的過(guò)程中,容易出現(xiàn)溢出現(xiàn)象,表明程序仍然是不夠完善的,畢竟編程過(guò)程中用到的兩層循環(huán)對(duì)于程序的影響是很大的,可以考慮將其中的循環(huán)盡量的簡(jiǎn)化,但是我還是沒(méi)有更好的方法。根據(jù)我對(duì)第20行的重新編碼,可以處理的數(shù)據(jù)也可以很大,但是需要手動(dòng)的運(yùn)算量增加,整體運(yùn)行時(shí)間較長(zhǎng),消耗的計(jì)算機(jī)內(nèi)存較大,這些都是需要改進(jìn)的地方。</p><p><b> 參考文獻(xiàn)</b&
48、gt;</p><p> 張養(yǎng)安、劉林章,MATLAB軟件在數(shù)據(jù)處理中的應(yīng)用,水土保持研究,2005年8月</p><p> 姜長(zhǎng)元,MATLAB和Word的鏈接及應(yīng)用,洛陽(yáng)師范學(xué)院,2005年第二期</p><p> 王沫然,MATLAB與科學(xué)計(jì)算(第二版),電子出版社,2008年9月。</p><p><b> 附 錄
49、</b></p><p><b> A.1 附錄描述1</b></p><p><b> 問(wèn)題一中的程序:</b></p><p> P=importdata('TF24.txt'); %讀取TF中的數(shù)據(jù)到a中,P是cell類(lèi)型的列向量 </p><p> Q=P
50、;%將取出來(lái)的數(shù)據(jù)放到Q中</p><p> DNA=cell(24,1);</p><p> m=length(Q);</p><p> A=zeros(1,25);</p><p><b> j=1;k=1;</b></p><p> A(25)=m+1;</p>&l
51、t;p><b> for i=1:m</b></p><p> if double(Q{i}(1))==62</p><p> A(j)=i; %A數(shù)組存放的的是首字符為'>'的行數(shù)</p><p><b> j=j+1;</b></p><p><b>
52、; end</b></p><p><b> end</b></p><p> n=length(A)-1;</p><p><b> for i=1:n</b></p><p> DNA{i}=cell2mat((Q(A(i)+1:A(i+1)-1))');%將介于兩
53、個(gè)'>'之間的段取出,然后轉(zhuǎn)置,然后分開(kāi)成單個(gè)字符,放于cell的第一個(gè)中</p><p><b> end</b></p><p> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p><p> % 找到不是ATGC的字符替換</p><p> %%
54、%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p><p> for i=1:24</p><p> for j=1:length(DNA{i})</p><p> if DNA{i}(j)~='A'&&DNA{i}(j)~='T'&&DNA{i}(j)~=
55、9;G'&&DNA{i}(j)~='C'</p><p> disp('此處有一個(gè)字符不是ATGC');</p><p><b> i,j</b></p><p> DNA{i}(j)='A';</p><p> disp('轉(zhuǎn)換完成
56、!');</p><p><b> end</b></p><p><b> end</b></p><p><b> end</b></p><p> function [A T G C]=I_calculate(X)</p><p>
57、 % X是輸入的數(shù)組,即DNA{i} i=1,2,3...24</p><p> % A T G C是輸出數(shù)據(jù),是行向量,A(i)表示前i個(gè)字符中含有的A的個(gè)數(shù)</p><p> % 劉海鵬 2012.08.25</p><p> A=zeros(1,length(X));</p><p> T=zeros(1,length(X))
58、;</p><p> G=zeros(1,length(X));</p><p> C=zeros(1,length(X));</p><p><b> A(1)=0;</b></p><p><b> T(1)=0;</b></p><p><b> G
59、(1)=0;</b></p><p><b> C(1)=0;</b></p><p> if X(1)=='A'</p><p> A(1)=A(1)+1;</p><p> elseif X(1)=='T'</p><p> T(1)=T(
60、1)+1;</p><p> elseif X(1)=='G'</p><p> G(1)=G(1)+1;</p><p><b> else</b></p><p> C(1)=C(1)+1;</p><p><b> end </b><
61、/p><p> for i=2:length(X)</p><p> if X(i)=='A'</p><p> A(i)=A(i-1)+1;</p><p> T(i)=T(i-1);</p><p> G(i)=G(i-1);</p><p> C(i)=C(i-1)
62、;</p><p> elseif X(i)=='T'</p><p> A(i)=A(i-1);</p><p> T(i)=T(i-1)+1;</p><p> G(i)=G(i-1);</p><p> C(i)=C(i-1);</p><p> elseif
63、X(i)=='G'</p><p> A(i)=A(i-1);</p><p> T(i)=T(i-1);</p><p> G(i)=G(i-1)+1;</p><p> C(i)=C(i-1);</p><p><b> else </b></p>&l
64、t;p> A(i)=A(i-1);</p><p> T(i)=T(i-1);</p><p> G(i)=G(i-1);</p><p> C(i)=C(i-1)+1;</p><p><b> end</b></p><p><b> end</b>&l
65、t;/p><p> % z1=0;z2=0;z3=0;z4=0;</p><p> % for i=1:length(X)</p><p> % if X(i)=='A'</p><p> % z1=z1+1;</p><p> % elseif X(i)==
66、9;T'</p><p> % z2=z2+1;</p><p> % elseif X(i)=='G'</p><p> % z3=z3+1;</p><p> % else z4=z4+1;</p><p><b> %
67、 end</b></p><p> % A(i)=z1;</p><p> % T(i)=z2;</p><p> % G(i)=z3;</p><p> % C(i)=z4;</p><p><b> % end</b></p>
68、;<p><b> 問(wèn)題二中的程序</b></p><p> function [Aij,Tij,Cij,Gij]=I_ED1(A,T,G,C)</p><p> n=length(A);</p><p> Aij=zeros(n);</p><p> Tij=zeros(n);</p>
69、;<p> Cij=zeros(n);</p><p> Gij=zeros(n);</p><p><b> for i=1:n</b></p><p><b> for j=1:n</b></p><p> Aij(i,j)=A(j)-A(i);</p>&
70、lt;p> Tij(i,j)=T(j)-T(i);</p><p> Gij(i,j)=G(j)-G(i);</p><p> Cij(i,j)=C(j)-C(i);</p><p><b> end</b></p><p><b> end</b></p><p
71、> function ED=I_ED(x,y,z,w) %x y z w是Aij,Tij.Gij,Cij中的一個(gè)</p><p> ED=sqrt((x-2*y).^2+(z-2*w).^2);</p><p> % ED1=I_ED(Aij,Gij,Tij,Cij);</p><p> % ED2=I_ED(Cij,Tij,Aij,Gij);<
72、/p><p> % ED3=I_ED(Aij,Cij,Tij,Gij);</p><p> % ED4=I_ED(Gij,Tij,Aij,Cij);</p><p> % ED5=I_ED(Aij,Tij,Cij,Gij);</p><p> % ED6=I_ED(Gij,Cij,Aij,Tij);</p><p>
73、; function PD=I_PD(ED)</p><p> n=length(ED);</p><p><b> for i=1:n</b></p><p> for j=i+2:n</p><p> ED(i,j)=ED(i,j-1)+ED(j-1,j);</p><p><
74、b> end</b></p><p> ED(i,i)=0;</p><p><b> end</b></p><p> ED=triu(ED);</p><p> PD=ED+ED';</p><p> % PD1=I_PD(ED1);</p>
75、<p> % PD2=I_PD(ED2);</p><p> % PD3=I_PD(ED3);</p><p> % PD4=I_PD(ED4);</p><p> % PD5=I_PD(ED5);</p><p> % PD6=I_PD(ED6);</p><p> function EP=I
76、_EP(ED,PD)</p><p> n=length(PD);</p><p><b> for i=1:n</b></p><p> PD(i,i)=1;</p><p><b> end</b></p><p> EP=ED./PD;</p>
77、<p><b> for i=1:n</b></p><p> EP(i,i)=0;</p><p><b> end</b></p><p> % EP1=I_EP(ED1,PD1);</p><p> % EP2=I_EP(ED2,PD2);</p><p
78、> % EP3=I_EP(ED3,PD3);</p><p> % EP4=I_EP(ED4,PD4);</p><p> % EP5=I_EP(ED5,PD5);</p><p> % EP6=I_EP(ED6,PD6);</p><p> function EG=I_EG(ED) </p><p>
79、 n=length(ED);</p><p> EG=zeros(n);</p><p><b> for i=1:n</b></p><p><b> for j=1:n</b></p><p><b> if i~=j</b></p><p&g
80、t; EG(i,j)=ED(i,j)/abs(i-j);</p><p><b> else</b></p><p> EG(i,j)=0;</p><p><b> end</b></p><p><b> end</b></p><p>&
81、lt;b> end</b></p><p> % EG1=I_EG(ED1);</p><p> % EG2=I_EG(ED2);</p><p> % EG3=I_EG(ED3);</p><p> % EG4=I_EG(ED4);</p><p> % EG5=I_EG(ED5);&l
82、t;/p><p> % EG6=I_EG(ED6);</p><p> function y=I_EGa1(ED1,ED2,ED3,ED4,ED5,ED6)</p><p> N=length(ED1);</p><p> y(1)=max(eigs(ED1)/N);</p><p> y(2)=max(eigs
83、(ED2)/N);</p><p> y(3)=max(eigs(ED3)/N);</p><p> y(4)=max(eigs(ED4)/N);</p><p> y(5)=max(eigs(ED5)/N);</p><p> y(6)=max(eigs(ED6)/N);</p><p> % EGa1(,
84、1:6)=I_EGa1(ED1,ED2,ED3,ED4,ED5,ED6);</p><p> % EGa2(,1:6)=I_EGa1(EP1,EP2,EP3,EP4,EP5,EP6);</p><p> % EGa3(,1:6)=I_EGa1(EG1,EG2,EG3,EG4,EG5,EG6);</p><p> EGe=zeros(24);</p>
85、<p> for i=1:24</p><p> for j=i+1:24</p><p> EGe(i,j)=norm(EGa1(i,:)-EGa1(j,:));</p><p> EGe(j,i)=EGe(i,j); </p><p><b> end</b></p><p
86、><b> end</b></p><p> EGe0=pdist(EGe,'euclidean'); % Pairwise distance</p><p> EGtree=linkage(EGe0); % Create hierarchical cluster tree</p>&
87、lt;p> EPtreeShow=dendrogram(EGtree,'orientation','left'); % Dendrogram plot</p><p> 問(wèn)題3中的程序(第20行)</p><p> n=length(DNA{20});</p><p> ED1=zeros(n,n);</p
88、><p><b> for i=1:n</b></p><p><b> for j=1:n</b></p><p> ED1(i,j)=sqrt(((A(j)-A(i))-2*(G(j)-G(i)))^2+((T(j)-T(i))-2*(C(j)-C(i)))^2);</p><p><b
89、> end</b></p><p><b> end</b></p><p> u1=max(eigs(ED1)/n);</p><p> PD1=I_PD(ED1);</p><p> EP1=I_EP(ED1,PD1);</p><p> u2=max(eigs(
90、EP1)/n);</p><p> EG1=I_EG(ED1) ;</p><p> u3=max(eigs(EG1)/n);</p><p> EGa1(20,1)=u1;EGa2(20,1)=u2;EGa3(20,1)=u3;</p><p> clear('ED1','PD1','EP1&
91、#39;,'EG1','u1','u2','u3');</p><p> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p><p><b> % ED2=CT</b></p><p> %%%%%%%%%%%%%%%%%%%%%%%%%
92、%%%%%%%%%%%%%%%</p><p> ED2=zeros(n);</p><p><b> for i=1:n</b></p><p><b> for j=1:n</b></p><p> ED2(i,j)=sqrt(((C(j)-C(i))-2*(T(j)-T(i)))^2+
93、((A(j)-A(i))-2*(G(j)-G(i)))^2);</p><p><b> end</b></p><p><b> end</b></p><p> u1=max(eigs(ED2)/n);</p><p> PD2=I_PD(ED2);</p><p&g
94、t; EP2=I_EP(ED2,PD2);</p><p> u2=max(eigs(EP2)/n);</p><p> EG2=I_EG(ED2) ;</p><p> u3=max(eigs(EG2)/n);</p><p> EGa1(20,2)=u1;EGa2(20,2)=u2;EGa3(20,2)=u3;</p>
95、;<p> clear('ED2','PD2','EP2','EG2','u1','u2','u3');</p><p> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p><p><b> % ED3=AC&
96、lt;/b></p><p> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ED1=AG</p><p> ED3=zeros(n);</p><p><b> for i=1:n</b></p><p><b> for j=1:n</b>&l
97、t;/p><p> ED3(i,j)=sqrt(((A(j)-A(i))-2*(C(j)-C(i)))^2+((T(j)-T(i))-2*(G(j)-G(i)))^2);</p><p><b> end</b></p><p><b> end</b></p><p> u1=max(eigs
98、(ED3)/n);</p><p> PD3=I_PD(ED3);</p><p> EP3=I_EP(ED3,PD3);</p><p> u2=max(eigs(EP3)/n);</p><p> EG3=I_EG(ED3) ;</p><p> u3=max(eigs(EG3)/n);</p>
99、;<p> EGa1(20,3)=u1;EGa2(20,3)=u2;EGa3(20,3)=u3;</p><p> clear('ED3','PD3','EP3','EG3','u1','u2','u3');</p><p> %%%%%%%%%%%%%%%%
100、%%%%%%%%%%%%%%%%%%%%%%%%</p><p><b> % ED4=GT</b></p><p> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ED1=AG</p><p> ED4=zeros(n);</p><p><b> for i=
101、1:n</b></p><p><b> for j=1:n</b></p><p> ED4(i,j)=sqrt(((G(j)-G(i))-2*(T(j)-T(i)))^2+((A(j)-A(i))-2*(C(j)-C(i)))^2);</p><p><b> end</b></p>&
102、lt;p><b> end</b></p><p> u1=max(eigs(ED4)/n);</p><p> PD4=I_PD(ED4);</p><p> EP4=I_EP(ED4,PD4);</p><p> u2=max(eigs(EP4)/n);</p><p> E
103、G4=I_EG(ED4) ;</p><p> u3=max(eigs(EG4)/n);</p><p> EGa1(20,4)=u1;EGa2(20,4)=u2;EGa3(20,4)=u3;</p><p> clear('ED4','PD4','EP4','EG4','u1',
104、'u2','u3');</p><p> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p><p><b> % ED5=AT</b></p><p> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ED1=AG</p>
105、;<p> ED5=zeros(n);</p><p><b> for i=1:n</b></p><p><b> for j=1:n</b></p><p> ED5(i,j)=sqrt(((A(j)-A(i))-2*(T(j)-T(i)))^2+((C(j)-C(i))-2*(G(j)-G(i
106、)))^2);</p><p><b> end</b></p><p><b> end</b></p><p> u1=max(eigs(ED5)/n);</p><p> PD5=I_PD(ED5);</p><p> EP5=I_EP(ED5,PD5);&l
107、t;/p><p> u2=max(eigs(EP5)/n);</p><p> EG5=I_EG(ED5) ;</p><p> u3=max(eigs(EG5)/n);</p><p> EGa1(20,5)=u1;EGa2(20,5)=u2;EGa3(20,5)=u3;</p><p> clear('
108、;ED5','PD5','EP5','EG5','u1','u2','u3');</p><p> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p><p><b> % ED6=GC</b></p><
109、;p> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p><p> ED6=zeros(n);</p><p><b> for i=1:n</b></p><p><b> for j=1:n</b></p><p> ED6(i,j)=sq
110、rt(((G(j)-G(i))-2*(C(j)-C(i)))^2+((A(j)-A(i))-2*(T(j)-T(i)))^2);</p><p><b> end</b></p><p><b> end</b></p><p> u1=max(eigs(ED6)/n);</p><p>
111、PD6=I_PD(ED6);</p><p> EP6=I_EP(ED6,PD6);</p><p> u2=max(eigs(EP6)/n);</p><p> EG6=I_EG(ED6) ;</p><p> u3=max(eigs(EG6)/n);</p><p> EGa1(20,6)=u1;EGa2
112、(20,6)=u2;EGa3(20,6)=u3;</p><p> clear('ED6','PD6','EP6','EG6','u1','u2','u3','C','G','T','A');</p><p>&l
113、t;b> A.2 附錄描述2</b></p><p><b> 主程序</b></p><p><b> clear;</b></p><p><b> clc;</b></p><p> profile on;</p><p&g
114、t; profile clear;</p><p> DNA=cell(24,1);</p><p> I_importdata;</p><p> clear('P','Q','m');</p><p> EGa1=zeros(24,6);</p><p>
115、 EGa2=zeros(24,6);</p><p> EGa3=zeros(24,6);</p><p> for i=1:19</p><p> [A T G C]=I_calculate(DNA{i});</p><p> [Aij,Tij,Cij,Gij]=I_ED1(A,T,G,C);</p><p>
116、; clear('A','T','G','C');</p><p> ED1=I_ED(Aij,Gij,Tij,Cij);</p><p> ED2=I_ED(Cij,Tij,Aij,Gij);</p><p> ED3=I_ED(Aij,Cij,Tij,Gij);</p><
117、;p> ED4=I_ED(Gij,Tij,Aij,Cij);</p><p> ED5=I_ED(Aij,Tij,Cij,Gij);</p><p> ED6=I_ED(Gij,Cij,Aij,Tij);</p><p> clear('Aij','Cij','Gij','Tij');&l
118、t;/p><p> EGa1(i,:)=I_EGa1(ED1,ED2,ED3,ED4,ED5,ED6);</p><p> PD1=I_PD(ED1);</p><p> PD2=I_PD(ED2);</p><p> PD3=I_PD(ED3);</p><p> PD4=I_PD(ED4);</p>
119、;<p> PD5=I_PD(ED5);</p><p> PD6=I_PD(ED6);</p><p> EP1=I_EP(ED1,PD1);</p><p> EP2=I_EP(ED2,PD2);</p><p> EP3=I_EP(ED3,PD3);</p><p> EP4=I_EP(
120、ED4,PD4);</p><p> EP5=I_EP(ED5,PD5);</p><p> EP6=I_EP(ED6,PD6);</p><p> EGa2(i,:)=I_EGa1(EP1,EP2,EP3,EP4,EP5,EP6);</p><p> clear('PD1','PD2','PD
121、3','PD4','PD5','PD6','EP1','EP2','EP3','EP4','EP5','EP6');</p><p> EG1=I_EG(ED1);</p><p> EG2=I_EG(ED2);</p>
122、<p> EG3=I_EG(ED3);</p><p> EG4=I_EG(ED4);</p><p> EG5=I_EG(ED5);</p><p> EG6=I_EG(ED6);</p><p> EGa3(i,:)=I_EGa1(EG1,EG2,EG3,EG4,EG5,EG6);</p><p&g
123、t; clear('ED1','ED2','ED3','ED4','ED5','ED6','EG1','EG2','EG3','EG4','EG5','EG6');</p><p><b> end</b
124、></p><p> [A T G C]=I_calculate(DNA{20});</p><p><b> I_20ED1;</b></p><p> for i=21:24</p><p> [A T G C]=I_calculate(DNA{i});</p><p> [A
125、ij,Tij,Cij,Gij]=I_ED1(A,T,G,C);</p><p> clear('A','T','G','C');</p><p> ED1=I_ED(Aij,Gij,Tij,Cij);</p><p> ED2=I_ED(Cij,Tij,Aij,Gij);</p>&
126、lt;p> ED3=I_ED(Aij,Cij,Tij,Gij);</p><p> ED4=I_ED(Gij,Tij,Aij,Cij);</p><p> ED5=I_ED(Aij,Tij,Cij,Gij);</p><p> ED6=I_ED(Gij,Cij,Aij,Tij);</p><p> clear('Aij
127、','Cij','Gij','Tij');</p><p> EGa1(i,:)=I_EGa1(ED1,ED2,ED3,ED4,ED5,ED6);</p><p> PD1=I_PD(ED1);</p><p> PD2=I_PD(ED2);</p><p> PD3=I_PD(
128、ED3);</p><p> PD4=I_PD(ED4);</p><p> PD5=I_PD(ED5);</p><p> PD6=I_PD(ED6);</p><p> EP1=I_EP(ED1,PD1);</p><p> EP2=I_EP(ED2,PD2);</p><p>
129、 EP3=I_EP(ED3,PD3);</p><p> EP4=I_EP(ED4,PD4);</p><p> EP5=I_EP(ED5,PD5);</p><p> EP6=I_EP(ED6,PD6);</p><p> EGa2(i,:)=I_EGa1(EP1,EP2,EP3,EP4,EP5,EP6);</p>&
130、lt;p> clear('PD1','PD2','PD3','PD4','PD5','PD6','EP1','EP2','EP3','EP4','EP5','EP6');</p><p> EG1=I_EG(ED1
131、);</p><p> EG2=I_EG(ED2);</p><p> EG3=I_EG(ED3);</p><p> EG4=I_EG(ED4);</p><p> EG5=I_EG(ED5);</p><p> EG6=I_EG(ED6);</p><p> EGa3(i,:)=
132、I_EGa1(EG1,EG2,EG3,EG4,EG5,EG6);</p><p> clear('ED1','ED2','ED3','ED4','ED5','ED6','EG1','EG2','EG3','EG4','EG5','
133、EG6');</p><p><b> end</b></p><p> I_dendrogram(EGa1);</p><p><b> hold on;</b></p><p> I_dendrogram(EGa2);</p><p><b>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- matlab課程設(shè)計(jì)---利用matlab仿真軟件進(jìn)行繪圖
- matlab課程設(shè)計(jì)--matlab的繪圖
- matlab課程設(shè)計(jì)--matlab矩陣操作設(shè)計(jì)
- matlab車(chē)牌識(shí)別課程設(shè)計(jì)報(bào)告
- 基于matlab產(chǎn)生gold序列課程設(shè)計(jì)報(bào)告
- matlab課程設(shè)計(jì)報(bào)告--信號(hào)的頻域分析及matlab實(shí)現(xiàn)
- matlab課程設(shè)計(jì)
- matlab課程設(shè)計(jì)
- 課程設(shè)計(jì)--matlab車(chē)牌識(shí)別系統(tǒng)
- 課程設(shè)計(jì)(論文)-基于matlab產(chǎn)生m序列
- matlab軟件課程設(shè)計(jì)-- 應(yīng)用圖像處理
- matlab課程設(shè)計(jì)
- matlab課程設(shè)計(jì)---利用matlab仿真軟件進(jìn)行圖像的變換域分析
- matlab課程設(shè)計(jì)報(bào)告---基于matlab_gui_的濾波器設(shè)計(jì)軟件
- 基于matlab的人臉識(shí)別課程設(shè)計(jì)
- matlab課程設(shè)計(jì)-matlab仿真軟件進(jìn)行圖像的輸入、輸出和格式變換
- matlab課程設(shè)計(jì) (2)
- matlab課程設(shè)計(jì)報(bào)告
- matlab課程設(shè)計(jì)---matlab程序應(yīng)用與仿真
- matlab課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論