# Step 1: Quality Control with FastQCforfilein*.fastq;dofastqc$filedone# Step 2: Trim Paired End Data with Trim Galoreforfilein*_R1.fastq;dobase=$(basename$file_R1.fastq)trim_galore--paired$base_R1.fastq$base_R2.fastq
done# Step 3: Align to Reference Genome with Bowtie2forfilein*_val_1.fq;dobase=$(basename$file_val_1.fq)bowtie2-xreference_genome-1$base_val_1.fq-2$base_val_2.fq-S$base.sam
done# Step 4: Filter BAM Files with Samtools and Sambambaforfilein*.sam;dobase=$(basename$file.sam)samtoolsview-bS$base.sam|sambambaview-fbam-Fnotunmapped-S-o$base.bam/dev/stdin
done# Step 5: Peak Calling with MACS2forfilein*.bam;dobase=$(basename$file.bam)macs2callpeak-t$base.bam-fBAM-ggenome_size-n$basedone# Step 6: Quality Assessment with Phantompeakqualtools and ChIPQCforfilein*.bam;dobase=$(basename$file.bam)Rscriptphantompeakqualtools.R-s$base.bam-out$baseRscriptchipqc.R-s$base.bam-out$basedone# Step 7: Compare Peak Calls with Bedtoolsforfilein*_peaks.narrowPeak;dobase=$(basename$file_peaks.narrowPeak)bedtoolsintersect-a$base_peaks.narrowPeak-breference_peaks.bed-wa-u>$base_filtered_peaks.bed
done# Step 8: Combine Peak Calls with IDR and Bedtools
idr--samples$sample1_peaks.narrowPeak$sample2_peaks.narrowPeak--input-file-typenarrowPeak--output-file$sample1_vs_sample2_idr_peaks.narrowPeak
bedtoolsmerge-i$sample1_vs_sample2_idr_peaks.narrowPeak>$sample1_vs_sample2_idr_peaks_merged.bed
# Step 9: Annotate with GREATforfilein*_idr_peaks_merged.bed;dobase=$(basename$file_idr_peaks_merged.bed)great-r$file-n$basedone