Bellow - это скрипт Bash, который я создаю и выполняю через java. Он использует несколько разных сценариев для создания статистики для данных RNA-Seq. Моя проблема заключается в том, что при выполнении сценария он достигает второй стадии сценария до того, как процессы прекратятся (программа не выдает ошибку, требуемые программы просто прекращают обработку). Я попытался запустить созданный скрипт отдельно от командной строки, и он завершился без ошибок. Предложения будут оценены.
String Trans_ref =
"#!/bin/bash \n" +
"mkdir -p "+Output+"/"+Sample+"_RSEM \n" +
"cd "+Output+"/"+Sample+"_RSEM \n" +
"PATH=$PATH:"+RSEMprep+" \n" +
"export PATH=$PATH \n" +
""+RSEMprep+"/rsem-prepare-reference --no-polyA --bowtie "+Output+"/Trans_CDHIT.fast Trans_CDHIT.RSEM \n" +
""+RSEMprep+"/rsem-calculate-expression --paired-end -p "+CPU+" "+Output+"/SRR617145_1.fastq "+Output+"/SRR617145_2.fastq Trans_CDHIT.RSEM Trans_CDHIT.genes.results \n"+
""+Trinprep+"/util/misc/count_features_given_MIN_FPKM_threshold.pl "+Output+"/"+Sample+"_RSEM/RSEM.genes.results > "+Output+"/"+Sample+"_RSEM/cumul_counts.txt \n"+
""+Trinprep+"/util/filter_fasta_by_rsem_values.pl --rsem_output= "+Output+"/"+Sample+"_RSEM/RSEM.isoforms.results --fasta="+Output+"/Trans_CDHIT.fasta -t 100 --output="+Output+"/"+Sample+"_RSEM/Trans_RSEMfilters.fasta \n" +
""+Trinprep+"/util/bowtie_PE_separate_then_join.pl --seqType fq --left "+Output+"/"+Sample+"_1.fasta --right "+Output+"/"+Sample+"_2.fasta --target "+Output+"/Trans_CDHIT.fasta --aligner bowtie --SS_lib_type FR -- -p 4 --all --best --strata -m 300 \n";
System.out.println(Trans_ref);
FileUtils.writeStringToFile(new File(Output+"/TranRSEM"), Trans_ref);
StringBuffer Trim = new StringBuffer();
String cmd = (Output+"/TranRSEM");
Process p;
try{
p = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c", cmd});
p.waitFor();
BufferedReader reader1 =
new BufferedReader(new InputStreamReader(p.getInputStream()));
System.out.println("Merg Finished");
} catch (Exception e) {
e.printStackTrace();
}
Все
Большое спасибо за ваши комментарии
Мне удалось решить проблему. Я обнаружил, что это ограничение памяти на Java. Я решил это, используя команду Xmx20000m в свойствах проекта в моей среде IDE (netbeans).
это, похоже, решило мою проблему.
Output+"/TranRSEM"
используя `file.setExecutable (true);`? Не могли бы вы также опубликовать созданный сценарий оболочки?...exec(cmd);
? 3. Другое дело, что вывод должен быть не относительным путем - я предполагаю, что это так, иначе скрипт не запустится вообще. 4. Мой последний совет - попробуйте зафиксировать ошибку и вывод вашей команды, как показано здесь