「clustal-omegaを用いてアライメントを実行」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
編集の要約なし
MSY-07 (トーク | 投稿記録)
セクションの追加、改行の修正
1行目: 1行目:
開いているファイル内の配列データを、clustal-omegaを使ってアライメントにかけます。<br>
== 概要 ==
clustal-omegaのサイトには、
開いているファイル内の配列データを、clustal-omegaを使ってアライメントにかけます。
'''"The last alignment program you'll ever need"'''
 
とのことなので、いまなりにはclustal-omegaがいいようです。<br>
clustal-omegaのサイトには、'''"The last alignment program you'll ever need"'''とのことなので、いまなりにはclustal-omegaがいいようです。
さくっと、アライメントを確認したいときに使ってください。<br>
 
[[ファイル名を引数にしてアプリ起動]]の応用例です。<br><br>
さくっと、アライメントを確認したいときに使ってください。
'''要cllustal-omega'''<br>
 
[http://www.clustal.org/omega/ http://www.clustal.org/omega/]<br><br>
[[ファイル名を引数にしてアプリ起動]]の応用例です。
'''使用前に"CLUSTALO_DIR"を必ず設定して下さい。'''<br>
 
ダウンロードしたclustal-omegaを解凍して出てきたフォルダの中に"tmp"という名前のフォルダを作ってください。<br><br>
== 注意事項 ==
'''要cllustal-omega'''
 
[http://www.clustal.org/omega/ http://www.clustal.org/omega/]
 
'''使用前に"CLUSTALO_DIR"を必ず設定して下さい。'''
 
ダウンロードしたclustal-omegaを解凍して出てきたフォルダの中に"tmp"という名前のフォルダを作ってください。
 
== ソースコード ==
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
#title="clustal-omegaを用いてアライメントを実行"
#title="clustal-omegaを用いてアライメントを実行"

2023年5月17日 (水) 15:03時点における版

概要

開いているファイル内の配列データを、clustal-omegaを使ってアライメントにかけます。

clustal-omegaのサイトには、"The last alignment program you'll ever need"とのことなので、いまなりにはclustal-omegaがいいようです。

さくっと、アライメントを確認したいときに使ってください。

ファイル名を引数にしてアプリ起動の応用例です。

注意事項

要cllustal-omega

http://www.clustal.org/omega/

使用前に"CLUSTALO_DIR"を必ず設定して下さい。

ダウンロードしたclustal-omegaを解凍して出てきたフォルダの中に"tmp"という名前のフォルダを作ってください。

ソースコード

#title="clustal-omegaを用いてアライメントを実行"
#tooltip="clustal-omegaを用いてアライメントを実行します。*.alnファイルを作成しそれを開きます"
// -----------------------------------------------------------------------------
// clustal-omegaを用いてアライメントを実行
//
// suke
// 
// 要clustal-omega
// http://www.clustal.org/omega/
// info : https://www.ebi.ac.uk/Tools/msa/clustalo/
// -----------------------------------------------------------------------------
(function(){
const fso = new ActiveXObject('Scripting.FileSystemObject');
const sh = new ActiveXObject('WScript.Shell');

const MERY_DIR = fso.GetParentFolderName(window.Editor.FullName);
// clustal-omegaを導入したフォルダへ移動する
const CLUSTALO_DIR = fso.BuildPath('ここにClustal-omegaのフォルダのパスを指定してください');
// カレントディレクトリを移動する
sh.CurrentDirectory = CLUSTALO_DIR;
// 実行ファイル
const CLUSTALO = 'clustalo.exe';
// ファイルが保存されていない場合の保存先
const TMP_DIR = fso.BuildPath(CLUSTALO_DIR,'tmp');
//clustaloのパスが正しいか確かめる
if ( !(fso.FileExists(CLUSTALO)) ){
  alert('clustalo.exeへのパスが間違ってます。');
  return ;	
}
if ( !(sh.Exec(CLUSTALO + ' -h').StdOut.ReadAll().split('\n')[0].match(/^Clustal Omega.*/))){
  alert('clustalo.exeではなさそうです。');
  return ;	
}
//TMP_DIRにフォルダがあるか確かめ、なければ作る
if (!(fso.FolderExists(TMP_DIR))){
	alert(TMP_DIR + '\nが無いようなので作っときますね');
	fso.CreateFolder(TMP_DIR);
}
// 実行確認
const isExec = Confirm('ファイルを保存してアライメントを実行しますか?');
if(!isExec){return};

// 現在のファイル名を取得
// 取得できなければ、勝手に作って、書き込む
const inputFile = document.FullName || 
		fso.BuildPath(TMP_DIR, (new Date().getTime() + '.txt'));
document.Save(inputFile);
const alignmentFile = fso.BuildPath(
		fso.GetParentFolderName(inputFile), fso.GetBaseName(inputFile) + '.aln');

// コマンドラインで渡す文字列を指定
// see clustalo.exe -h
let cmdline = CLUSTALO;
cmdline = cmdline + ' -i "' + inputFile + '"';		// Multiple sequence input file
cmdline = cmdline + ' -o "' + alignmentFile +'"';	// Multiple sequence alignment output file
cmdline = cmdline + ' --outfmt=clustal';			// MSA output file format(clustal)
cmdline = cmdline + ' --force';						// Force file overwriting
cmdline = cmdline + ' -v';							// Verbose output
// 実行
const execResult = sh.Exec(cmdline);
while (execResult.Status !== 0){sh.Sleep(100)}
// 出力メッセージを表示
const err_msg = execResult.StdErr.ReadAll();
const std_msg = execResult.StdOut.ReadAll();
if (err_msg !== ''){
	alert('エラーが発生しました\n' + err_msg);
	return;
}
if (std_msg !== ''){
	alert('【実行結果】\n' + std_msg);
}

// アライメントの結果ファイルを開く
editor.OpenFile(alignmentFile, meEncodingNone, meOpenAllowNewWindow);

})();
スポンサーリンク