◆ 1文字アミノ酸配列から各種HTMLデータを作成する秀丸マクロ ◆
Web上の説明ページ
※以下のリンクはすべてWebページである

 本秀丸エディタ用マクロは,1文字表記のアミノ酸配列データから以下に示すようないろいろなHTML形式の表を作成するものです。改変して様々な利用が可能と思います。改変等をされた場合は,利用した関連情報と一緒に作者までご連絡くだされば,公開可能なものはこのページで紹介させていただきます。


●1文字表記のアミノ酸配列データの入手とマクロによる本加工について(PDBデータ1qd5を例に)

 Protein Data Bank (RCSB PDB)を利用して,1qd5でChime形式の分子モデルが参照できる。また,Sequence Detailsにより以下のような配列データを参照できる。以下はhelixなどの二次構造情報が付記されている例である。なお,二次構造情報は同じタンパク質でもデータソースによって異なるので注意する。

 また,FASTA Sequence では以下のような形式である。

 PDB形式データのヘッダには,以下の例のような二次構造情報が記載されている(1qd5のβ-シート部分の抜粋)  以上のような情報などから,HTML化したいデータ配列を作成する。以下は1qd5のβ-シート部分を抜き出した例である。  このようなデータを作成したら(例えば単純に20配列ずつ区切るのでもよい),各マクロにより以下に列記するようなHTML形式データ等を自動で作成することができる。なお,間違ってマクロを使用した場合に備えて,データ末尾に元の1文字配列データを残すようにしてあるので,削除してからデータを拡張子htmlで保存すればブラウザで参照できる。また,アミノ酸記号以外はすべて空白セルに変換する設定になっている。これらはマクロ改変により修正可能である。




(4) PDBsumのLigand-SITE情報データを小さくすると同時に有機性・無機性を算出するマクロ

    
    // HB情報を含むPDBsumデータを加工し有機概念図の有機性・無機性を計算するマクロ
    //  pdb_org01.mac(アミノ酸残基数非表示;表示版はpdb_org02.mac)
    // 詳細: http://www.ecosci.jp/pdb/hm/macro_g1.html
    // データ利用コンテンツ例: http://www.ecosci.jp/pdb/pdbsum_site.html
    // 有機概念図: http://www.ecosci.jp/sheet/orgs_help.html
    
    gofiletop;
    searchdown "\\nATOM" , regular;
    beginsel;
    gofiletop;
    delete;
    
    searchdown "\\nCONECT" , regular;
    	if ( result == true ) {
    		beginsel;
    	}
    	else {
    		gofiletop;
    		searchdown "\\nMASTER" , regular;
    		beginsel;
    	}
    searchdown "\z" , regular;
    delete;
    
    #line = y;
    #n = #line;
    
    gofiletop;
    delete;
    right 54;
    
    beginrect;
    moveto 82, #n;
    delete;
    
    gofiletop;
    
    #nn = 0;
    #n01 = 0;
    #n02 = 0;
    #n03 = 0;
    #n04 = 0;
    #n05 = 0;
    #n06 = 0;
    #n07 = 0;
    #n08 = 0;
    #n09 = 0;
    #n10 = 0;
    #n11 = 0;
    #n12 = 0;
    #n13 = 0;
    #n14 = 0;
    #n15 = 0;
    #n16 = 0;
    #n17 = 0;
    #n18 = 0;
    #n19 = 0;
    #n20 = 0;
    #n21 = 0;
    #no = 0;
    #ni = 0;
    
    while(1){
    	searchdown "  N   ";
    	if ( result == true ) {
    	golinetop;
    	selectline;
    	$a = gettext(seltopx, seltopy, selendx, selendy);
    	$b = midstr($a, 17, 3);
    	if($b=="ALA") {#n01 = #n01 + 1;
    		#no = #no + 20;
    		}
    	else if($b=="ARG") {#n02 = #n02 + 1;
    		#no = #no + 80;
    		#ni = #ni + 190;
    		}
    	else if($b=="ASN") {#n03 = #n03 + 1;
    		#no = #no + 40;
    		#ni = #ni + 200;
    		}
    	else if($b=="ASP") {#n04 = #n04 + 1;
    		#no = #no + 40;
    		#ni = #ni + 150;
    		}
    	else if($b=="CYS") {#n05 = #n05 + 1;
    		#no = #no + 60;
    		#ni = #ni + 20;
    		}
    	else if($b=="GLN") {#n06 = #n06 + 1;
    		#no = #no + 60;
    		#ni = #ni + 200;
    		}
    	else if($b=="GLU") {#n07 = #n07 + 1;
    		#no = #no + 60;
    		#ni = #ni + 150;
    		}
    	else if($b=="GLY") #n08 = #n08 + 1;
    	else if($b=="HIS") {#n09 = #n09 + 1;
    		#no = #no + 80;
    		#ni = #ni + 152;
    		}
    	else if($b=="ILE") {#n10 = #n10 + 1;
    		#no = #no + 80;
    		}
    	else if($b=="LEU") {#n11 = #n11 + 1;
    		#no = #no + 70;
    		}
    	else if($b=="LYS") {#n12 = #n12 + 1;
    		#no = #no + 80;
    		#ni = #ni + 70;
    		}
    	else if($b=="MET") {#n13 = #n13 + 1;
    		#no = #no + 100;
    		#ni = #ni + 20;
    		}
    	else if($b=="PHE") {#n14 = #n14 + 1;
    		#no = #no + 140;
    		#ni = #ni + 15;
    		}
    	else if($b=="PRO") {#n15 = #n15 + 1;
    		#no = #no + 60;
    		#ni = #ni + 10;
    		}
    	else if($b=="SER") {#n16 = #n16 + 1;
    		#no = #no + 20;
    		#ni = #ni + 100;
    		}
    	else if($b=="THR") {#n17 = #n17 + 1;
    		#no = #no + 40;
    		#ni = #ni + 100;
    		}
    	else if($b=="TRP") {#n18 = #n18 + 1;
    		#no = #no + 180;
    		#ni = #ni + 130;
    		}
    	else if($b=="TYR") {#n19 = #n19 + 1;
    		#no = #no + 140;
    		#ni = #ni + 115;
    		}
    	else if($b=="VAL") {#n20 = #n20 + 1;
    		#no = #no + 50;
    		}
    	else #n21 = #n21 + 1;
    	escape;
    	down 1;
    	#nn = #nn +1;
    	}
    	else{
    	break;
    	}
    	}
    
    gofiletop;
    	insert "# "+"\n";
    	insert "# "+"\n";
    	insert "# O(R) = "+str(#no)+"\n";
    	insert "# I(R) = "+str(#ni)+"\n";
    // アミノ酸残基数を記載する時は以下の各行頭の // 削除
    //	insert "# ALA = "+str(#n01)+"\n";
    //	insert "# ARG = "+str(#n02)+"\n";
    //	insert "# ASN = "+str(#n03)+"\n";
    //	insert "# ASP = "+str(#n04)+"\n";
    //	insert "# CYS = "+str(#n05)+"\n";
    //	insert "# GLN = "+str(#n06)+"\n";
    //	insert "# GLU = "+str(#n07)+"\n";
    //	insert "# GLY = "+str(#n08)+"\n";
    //	insert "# HIS = "+str(#n09)+"\n";
    //	insert "# ILE = "+str(#n10)+"\n";
    //	insert "# LEU = "+str(#n11)+"\n";
    //	insert "# LYS = "+str(#n12)+"\n";
    //	insert "# MET = "+str(#n13)+"\n";
    //	insert "# PHE = "+str(#n14)+"\n";
    //	insert "# PRO = "+str(#n15)+"\n";
    //	insert "# SER = "+str(#n16)+"\n";
    //	insert "# THR = "+str(#n17)+"\n";
    //	insert "# TRP = "+str(#n18)+"\n";
    //	insert "# TYR = "+str(#n19)+"\n";
    //	insert "# VAL = "+str(#n20)+"\n";
    //	insert "# others = "+str(#n21)+"\n";
    
    endmacro;
    


作者のホームページ