「clustal-omegaを用いてアライメントを実行」の版間の差分
ナビゲーションに移動
検索に移動
編集の要約なし |
SyntaxHighlightにcopyの追加 |
||
| (同じ利用者による、間の1版が非表示) | |||
| 1行目: | 1行目: | ||
開いているファイル内の配列データを、clustal-omegaを使ってアライメントにかけます。 | == 概要 == | ||
clustal-omegaのサイトには、 | 開いているファイル内の配列データを、clustal-omegaを使ってアライメントにかけます。 | ||
'''"The last alignment program you'll ever need"''' | |||
とのことなので、いまなりにはclustal-omegaがいいようです。 | clustal-omegaのサイトには、'''"The last alignment program you'll ever need"'''とのことなので、いまなりにはclustal-omegaがいいようです。 | ||
さくっと、アライメントを確認したいときに使ってください。 | |||
[[ファイル名を引数にしてアプリ起動]]の応用例です。 | さくっと、アライメントを確認したいときに使ってください。 | ||
'''要cllustal-omega''' | |||
[http://www.clustal.org/omega/ http://www.clustal.org/omega/] | [[ファイル名を引数にしてアプリ起動]]の応用例です。 | ||
'''使用前に"CLUSTALO_DIR"を必ず設定して下さい。''' | |||
ダウンロードしたclustal-omegaを解凍して出てきたフォルダの中に"tmp"という名前のフォルダを作ってください。 | == 注意事項 == | ||
<syntaxhighlight lang="javascript"> | '''要cllustal-omega''' | ||
[http://www.clustal.org/omega/ http://www.clustal.org/omega/] | |||
'''使用前に"CLUSTALO_DIR"を必ず設定して下さい。''' | |||
ダウンロードしたclustal-omegaを解凍して出てきたフォルダの中に"tmp"という名前のフォルダを作ってください。 | |||
== ソースコード == | |||
<syntaxhighlight lang="javascript" copy> | |||
#title="clustal-omegaを用いてアライメントを実行" | #title="clustal-omegaを用いてアライメントを実行" | ||
#tooltip="clustal-omegaを用いてアライメントを実行します。*.alnファイルを作成しそれを開きます" | #tooltip="clustal-omegaを用いてアライメントを実行します。*.alnファイルを作成しそれを開きます" | ||
2025年6月30日 (月) 00:29時点における最新版
概要[編集]
開いているファイル内の配列データを、clustal-omegaを使ってアライメントにかけます。
clustal-omegaのサイトには、"The last alignment program you'll ever need"とのことなので、いまなりにはclustal-omegaがいいようです。
さくっと、アライメントを確認したいときに使ってください。
ファイル名を引数にしてアプリ起動の応用例です。
注意事項[編集]
要cllustal-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);
})();
スポンサーリンク