Так, я использую протокол, названный 'смокингом' для RNA, упорядочивающего анализ данных. Это - больше вида технического вопроса, связанного со сценариями оболочки. Я могу сделать это в командной строке, и у меня нет проблем как таковых. Так как я делаю его в кластере, я хотел бы использовать сценарий, который может автоматизировать мою задачу.
Так команда протокола как таковы:
cuffdiff
Первая команда делает все выравнивание, которое генерирует некоторый файл, который я должен использовать для следующей команды cufflinks
, затем cuffmerge
и наконец cuffdiff
.
Может любой помогать мне записать простой сценарий оболочки, который может звонить, каждый из них управляют и делают задачу.
Любая справка высоко ценилась бы.
аргументы
tophat -p 8 -G genes.gtf -o C1_R1_thout genome C1_R1_1.fq C1_R1_2.fq
cufflinks -p 8 -o C1_R1_clout C1_R1_thout/accepted_hits.bam
cuffmerge -g genes.gtf -s genome.fa -p 8 assemblies.txt
cuffdiff -o diff_out -b genome.fa -p 8 –L C1,C2 -u merged_asm/merged.gtf \
./C1_R1_thout/accepted_hits.bam,./C1_R2_thout/accepted_hits.bam,./C1_R3_thout/accepted_hits.bam \
./C2_R1_thout/accepted_hits.bam,./C2_R3_thout/accepted_hits.bam,./C2_R2_thout/accepted_hits.bam
где, 'p' соответствует количеству процессора, '-o' соответствует выходному каталогу, и отдохните, '-g' соответствует файлу аннотации, который я использую для аннотирования моих НЕОБРАБОТАННЫХ чтений, которые будут выровненные.
Давайте запишем простой сценарий, названный hailmary.sh
#!/bin/bash
#The first line should always be just as it is above
#This script is called hailmary.sh
#because we run this script and we need to pray
#that all four commands will run correctly
#If one of them fail, you may not get the results
tophat -p 8 -G genes.gtf -o C1_R1_thout genome C1_R1_1.fq C1_R1_2.fq
cufflinks -p 8 -o C1_R1_clout C1_R1_thout/accepted_hits.bam
cuffmerge -g genes.gtf -s genome.fa -p 8 assemblies.txt
cuffdiff -o diff_out -b genome.fa -p 8 –L C1,C2 -u merged_asm/merged.gtf ./C1_R1_thout/accepted_hits.bam,./C1_R2_thout/accepted_hits.bam,./C1_R3_thout/accepted_hits.bam ./C2_R1_thout/accepted_hits.bam,./C2_R3_thout/accepted_hits.bam,./C2_R2_thout/accepted_hits.bam
В Наутилусе щелкните правой кнопкой по файлу, который Вы просто создали и выбор Properties
. Перейдите в Permissions
вкладка и помещенный галочка рядом с Позволяет выполнять файл как программу.
Поочередно, в терминале войдите:
chmod +x hailmary.sh
Для запущения скрипта в терминале войдите:
./hailmary.sh
./
прежде чем имя необходимо, и предполагает, что файл находится в месте текущего каталога. Если Вы помещаете файл в папку, которая находится в пути, такой как /home/<userid>/bin
, затем Вам не будет нужно ./
. При помещении его где-то в другом месте, необходимо будет записать целый путь, такой как:
/home/<userid>/myspecialfolder/hailmary.sh
Отметьте, четыре команды и их аргументы находятся в четырех отдельных строках. Если Вы хотите поместить их в одну строку, необходимо разделить их &&
или ;
. Нет никакой потребности в ;
если они находятся в отдельных строках.
В любом из этих случаев не запустится вторая команда, пока первое не завершается (или катастрофические отказы!).
Проблема с этим подходом, это не проверяет, работала ли первая команда успешно прежде, чем выполнить вторую и т. д. и т. п. Итак, если tophat
сбои по некоторым причинам, сценарий продолжит последовательность запонки, cuffmerge, и cuffdiff. Именно поэтому я называю этот документ на получение hailmary.sh
.
#!/bin/bash
#The first line should always be just as it is above
#This script is called hailmary2.sh
#This script runs tophat
#then checks for the existance of the output file
#If the output is found, it runs the rest
tophat -p 8 -G genes.gtf -o C1_R1_thout genome C1_R1_1.fq C1_R1_2.fq
if [[ -f "./C1_R1_thout/accepted_hits.bam" ]]; then
echo "tophat finished. Proceeding with the rest"
cufflinks -p 8 -o C1_R1_clout C1_R1_thout/accepted_hits.bam
cuffmerge -g genes.gtf -s genome.fa -p 8 assemblies.txt
cuffdiff -o diff_out -b genome.fa -p 8 –L C1,C2 -u merged_asm/merged.gtf ./C1_R1_thout/accepted_hits.bam,./C1_R2_thout/accepted_hits.bam,./#C1_R3_thout/accepted_hits.bam ./C2_R1_thout/accepted_hits.bam,./C2_R3_thout/accepted_hits.bam,./C2_R2_thout/accepted_hits.bamfi
else echo "tophat did not complete"
fi
Надежда, которой это помогает, пока кто-то еще не предоставляет более изящный ответ.