私はバイオインフォマティクスの人です。私は自分の仕事にC#を使用しています。私はC#でProcessesを使用して、実行可能プログラムを何度も実行しています。今回私には新しい問題があります。私はBlast(http://blast.ncbi.nlm.nih.gov/Blast.cgi?CMD=Web&PAGE_TYPE=BlastDocs&DOC_TYPE=Download)という名前のプログラムのためにWindowsにexeファイルをダウンロードしました。私のコマンドを入力すると:C#を使用して実行可能プログラムを実行するプロセス
blastp -query input.txt -db pdbaa -out output.txt
それはうまくいきます。しかし、メモ帳からコマンドをコピーしてコピーすると、エラーが発生します。問題を検索したところ、コピー&ペーストに起因する「UTF-8対ISOラテン」(http://biostar.stackexchange.com/questions/7997/an-error-by-using-ncbi-blast-2-2-25-on-windows)という問題が見つかりました。
私はこのプロセスをC#からexeファイルを呼び出すために実行したいのですが、私は同じ問題を抱えています。プロセスがコピーと貼り付けのような処理を行うからです。ここに私のコードです:
public void Calculate()
{
Process proc = new Process();
proc.StartInfo.WorkingDirectory = Program.NCBIBlastDirectory;
proc.StartInfo.FileName = @"C:\Program Files\NCBI\blast-2.2.25+\bin\blastp.exe";
proc.StartInfo.Arguments = "blastp -query input.txt -db pdbaa -out output.txt";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardError = true;
proc.Start();
proc.WaitForExit();
proc.Close();
}
私はこれをどのように解決することができますか考えていますか?
ありがとうございます。私が見ることができる
メモ帳から引数をコピーして貼り付けても、おそらくエンコーディングは保持されています。 notepadeにansiエンコーディングでテキストファイルを保存し、これらの引数をコピーします。 – Kell
引数の最初の単語に "blastp"を付けるべきですか?それはexeの名前ではありませんか?プロセスは次のコマンドを呼び出します。C:¥Program Files¥NCBI¥blast-2.2.25 +¥bin¥blastp.exe blastp -query input.txt -db pdbaa -out output.txt –