clustalw を用いてアライメントを実行

提供: MeryWiki
移動先: 案内検索

開いているファイル内の配列データを、clustalWを使ってアライメントにかけます。
でも、普通にclustalXを使えばいいと思います。
さくっと、アライメントを確認したいときに使ってください。
ファイル名を引数にしてアプリ起動の応用例です。

要cllustalW
http://www.clustal.org/

使用前に"CLUSTALW_PATH"を必ず設定して下さい。
ダウンロードしたclustalwを解凍して出てきたフォルダの中に"tmp"という名前のフォルダを作ってください。

なお、コマンドラインパラメーターについての日本語の説明はDDBJのここ

// -----------------------------------------------------------------------------
// clustalwを用いてアライメントを実行
// 原作 : ファイル名を引数にしてアプリ起動 改 Ver1.0
//
// suke
// 
// 要cllustalW
// http://www.clustal.org/
// -----------------------------------------------------------------------------
 
(function(){
var fso = new ActiveXObject("Scripting.FileSystemObject");
var o = new ActiveXObject("WScript.Shell");
 
//clustalw2.exeへの絶対パスを指定(\マークはエスケープする必要があります)
var CLUSTALW_PATH = "ここにclustalw2.exeへのパスを記述";
var TMP_DIR = CLUSTALW_PATH.replace(/([^\\]*?)$/,"") + "tmp\\";
 
//clustalWのパスが正しいか確かめる
if (fso.FileExists(CLUSTALW_PATH)){
  //TMP_DIRにフォルダがあるか確かめ、なければ作る
  if (!(fso.FolderExists(TMP_DIR))){
    alert("\"" + TMP_DIR + "\"\nが無いようなので作っときますね");
    fso.CreateFolder(TMP_DIR);
  }
}else{
  alert("clustalw2.exeへのパスが間違ってます。");
  return ;
}
 
//現在のファイル名を取得
//取得できなければ、勝手に作って、書き込む
var inputFile = document.FullName || (TMP_DIR + new Date().getTime() + ".txt");
document.Save(inputFile);
//コマンドラインで渡す文字列を指定。
var cmdline = "/INFILE=\""+inputFile+"\" /ALIGN";
//clustalwはデフォルトで、"ファイル名.aln"を作るので…
var outputFile = inputFile.replace(/([^\.]*?)$/,"aln");
o.Run("\""+CLUSTALW_PATH+"\" "+cmdline);
o.Run("\""+Editor.FullName+"\" "+"\""+outputFile+"\"");
})();