2011-11-11 18 views
2

私はバイオインフォマティクスの人です。私は自分の仕事に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(); 
    } 

私はこれをどのように解決することができますか考えていますか?

ありがとうございます。私が見ることができる

+0

メモ帳から引数をコピーして貼り付けても、おそらくエンコーディングは保持されています。 notepadeにansiエンコーディングでテキストファイルを保存し、これらの引数をコピーします。 – Kell

+1

引数の最初の単語に "blastp"を付けるべきですか?それはexeの名前ではありませんか?プロセスは次のコマンドを呼び出します。C:¥Program Files¥NCBI¥blast-2.2.25 +¥bin¥blastp.exe blastp -query input.txt -db pdbaa -out output.txt –

答えて

4

一つの問題は、あなたが引数を設定する行である:

proc.StartInfo.Arguments = "blastp -query input.txt -db pdbaa -out output.txt"; 

私はあなたが意味を考える:

proc.StartInfo.Arguments = "-query input.txt -db pdbaa -out output.txt"; 

だから、あなたは再び実行可能ファイル名を指定する必要はありません引数で - これはFileNameのためのものです。

もう1つのことは、シェルを起動して起動しないとあまりうまく動作しないアプリケーションがたくさんあることです。 shell-executeで最初に試してみてください(もちろん、std *をリダイレクトせずに)、それがうまくいくなら問題の内容を知ることができますが、それについてはあまりできません。

はまた、なぜ

proc.StartInfo.RedirectStandardError = true; 

を2回繰り返しラインはありますか?

+0

ありがとう。はい問題はArgumentsステートメントにありました。私はblastpを削除し、現在作業中です。 – Reyhaneh

関連する問題