背景/動機: 私は開始から終了まで直線的に実行すると数日かかることがあるバイオインフォマティクスパイプラインを実行しています。幸いなことに、タスクのいくつかは、お互いに依存しないので、それらは個別に行うことができます。例えば、タスク2、3、および4のすべてのタスク1の出力に依存するが、お互いからの情報を必要としません。タスク5は、2,3,4の出力を入力として使用します。Rの新しいインスタンスを開き、そのインスタンス内でスクリプトを入手する
私は3つのタスクのそれぞれについて、Rの新しいインスタンスを開いて、それらを同時に実行するスクリプトを記述しようとしています。 3つすべてが完了したら、残りのパイプラインを続けることができます。私はより直線的なワークフローのために、過去に何をやったか
は、順番にソース(ソース())各タスクの添字1「マスター」のスクリプトを持っています。
私はSO精練し、Googleと、この特定の問題の解決策を見つけることができませんでしたしました。うまくいけば皆さんが助けることができます。
R内から、system()を実行して端末内でコマンドを呼び出し、openを実行してファイルを開くことができます。たとえば、次のように新しいターミナルインスタンスを開きます:
system("open -a Terminal .",wait=FALSE)
同様に、私は私が私の人生があるために把握することはできませんどのような
system("open -a r .")
を使用して、新しいRセッションを開始することができますそれは私のスクリプトのいずれかをソースするように、「入力」引数を設定する方法について説明します。たとえば、次の例では、新しい端末インスタンスを開き、新しいインスタンス内でrを呼び出してからスクリプトをソースすることを期待しています。
system("open -a Terminal .",wait=FALSE,input=paste0("r; source(\"/path/to/script/M_01-A.R\",verbose=TRUE,max.deparse.length=Inf)"))
この可能性を持っていただきありがとうございます。私の回避策は今のところうまくいくが、ネイティブな解決策を取ることは、今後のいくつかのプロジェクト(いくつかのHiSeqが実行される)に大きく役立つだろう。グループメンバーとパッケージを共有します。 – jrp355