6871 |
16 Nov 22 |
nicklas |
#!/bin/bash |
6871 |
16 Nov 22 |
nicklas |
2 |
## |
6871 |
16 Nov 22 |
nicklas |
## Pipeline script for the calculating Methylation beta values. It requires a pair of IDAT |
6871 |
16 Nov 22 |
nicklas |
## that are either already in the project-archive directory for the Methylation item |
6871 |
16 Nov 22 |
nicklas |
## or in the MethylationArchive. In the latter case, the IDAT files are first copied to |
6871 |
16 Nov 22 |
nicklas |
## the project-archive. |
6871 |
16 Nov 22 |
nicklas |
7 |
|
6871 |
16 Nov 22 |
nicklas |
8 |
## |
6871 |
16 Nov 22 |
nicklas |
## Environment variables that should be defined (in job.sh) before calling this script |
6871 |
16 Nov 22 |
nicklas |
## -IdatFolder: Path to folder where IDAT should be found (or copied to) |
6871 |
16 Nov 22 |
nicklas |
## -ScanFolder: Path to folder where output from scanner is stored (only used if there are no IDAT files in the IdatFolder) |
6871 |
16 Nov 22 |
nicklas |
## -ExternalMethylationName: External name of the Methylation item that is being analyzed |
6871 |
16 Nov 22 |
nicklas |
## -BeadChipId: Sentrix array ID |
6871 |
16 Nov 22 |
nicklas |
## -BeadChipPosition: Position of this sample on the array |
6871 |
16 Nov 22 |
nicklas |
## -TMPDIR: Path to a local temporary working directory |
6871 |
16 Nov 22 |
nicklas |
16 |
## |
6871 |
16 Nov 22 |
nicklas |
17 |
|
6871 |
16 Nov 22 |
nicklas |
18 |
set -e |
6871 |
16 Nov 22 |
nicklas |
19 |
|
6871 |
16 Nov 22 |
nicklas |
## Import utility functions |
6871 |
16 Nov 22 |
nicklas |
21 |
source ./reggie-utils.sh |
6871 |
16 Nov 22 |
nicklas |
22 |
|
6871 |
16 Nov 22 |
nicklas |
## Verify settings in options |
6871 |
16 Nov 22 |
nicklas |
24 |
rg_var_isdir "TMPDIR" "WD" |
6871 |
16 Nov 22 |
nicklas |
25 |
rg_var_isset "MethylationName" "ExternalMethylationName" "BeadChipId" "BeadChipPosition" |
6873 |
17 Nov 22 |
nicklas |
26 |
rg_var_isfile "ManifestFile" "MaskFile" |
6871 |
16 Nov 22 |
nicklas |
27 |
|
6871 |
16 Nov 22 |
nicklas |
## Move to the temporary working directory |
6871 |
16 Nov 22 |
nicklas |
29 |
cd ${TMPDIR} |
6871 |
16 Nov 22 |
nicklas |
30 |
mkdir -p beta |
6871 |
16 Nov 22 |
nicklas |
31 |
mkdir -p done |
6871 |
16 Nov 22 |
nicklas |
32 |
|
6873 |
17 Nov 22 |
nicklas |
33 |
IDAT_BASE="${IdatFolder}/${MethylationName}" |
6873 |
17 Nov 22 |
nicklas |
34 |
RED="${IDAT_BASE}_Red.idat" |
6873 |
17 Nov 22 |
nicklas |
35 |
GRN="${IDAT_BASE}_Grn.idat" |
6873 |
17 Nov 22 |
nicklas |
36 |
|
6871 |
16 Nov 22 |
nicklas |
## Ensure IDAT files are in the IdatFolder |
6873 |
17 Nov 22 |
nicklas |
38 |
if [[ ! -f "${RED}" || ! -f "${GRN}" ]]; then |
6873 |
17 Nov 22 |
nicklas |
39 |
rg_progress 10 "Copying IDAT files" |
6873 |
17 Nov 22 |
nicklas |
40 |
|
6873 |
17 Nov 22 |
nicklas |
## Expect IDAT files to be located in $ScanFolder/$BeadChipId_$BeadChipPosition_Red.idat |
6873 |
17 Nov 22 |
nicklas |
42 |
rg_var_isdir "ScanFolder" |
6873 |
17 Nov 22 |
nicklas |
43 |
RED_SRC="${ScanFolder}/${BeadChipId}_${BeadChipPosition}_Red.idat" |
6873 |
17 Nov 22 |
nicklas |
44 |
GRN_SRC="${ScanFolder}/${BeadChipId}_${BeadChipPosition}_Grn.idat" |
6873 |
17 Nov 22 |
nicklas |
45 |
rg_var_isfile "RED_SRC" "GRN_SRC" |
6873 |
17 Nov 22 |
nicklas |
46 |
|
6873 |
17 Nov 22 |
nicklas |
47 |
mkdir -p "${IdatFolder}" |
6873 |
17 Nov 22 |
nicklas |
48 |
\cp "${RED_SRC}" "${RED}" |
6873 |
17 Nov 22 |
nicklas |
49 |
\cp "${GRN_SRC}" "${GRN}" |
6873 |
17 Nov 22 |
nicklas |
50 |
fi |
6871 |
16 Nov 22 |
nicklas |
51 |
|
6873 |
17 Nov 22 |
nicklas |
52 |
if [ ! -f "done/beta.done" ]; then |
6873 |
17 Nov 22 |
nicklas |
## Call R script that calculates beta values and some other stuff |
6873 |
17 Nov 22 |
nicklas |
54 |
${WD}/stderrwrap.sh Rscript ${WD}/beta_values.R \ |
6873 |
17 Nov 22 |
nicklas |
55 |
"${IDAT_BASE}" beta \ |
6873 |
17 Nov 22 |
nicklas |
56 |
"${ManifestFile}" "${MaskFile}" \ |
6873 |
17 Nov 22 |
nicklas |
57 |
"${ExternalMethylationName}" \ |
6874 |
17 Nov 22 |
nicklas |
58 |
"${WD}/progress" \ |
6873 |
17 Nov 22 |
nicklas |
59 |
3> minfi.out |
6873 |
17 Nov 22 |
nicklas |
60 |
|
6873 |
17 Nov 22 |
nicklas |
61 |
touch "done/beta.done" |
6871 |
16 Nov 22 |
nicklas |
62 |
fi |
6871 |
16 Nov 22 |
nicklas |
63 |
|
6871 |
16 Nov 22 |
nicklas |
64 |
rg_progress 95 "Copying result files to project archive" |
6875 |
18 Nov 22 |
nicklas |
65 |
\cp beta/*.tsv.gz ${IdatFolder} |
6875 |
18 Nov 22 |
nicklas |
66 |
\cp beta/*.pdf ${IdatFolder} |
6875 |
18 Nov 22 |
nicklas |
67 |
cp beta/stats.out ${WD}/stats.out |
6875 |
18 Nov 22 |
nicklas |
68 |
ls -1 ${IdatFolder}/* > ${WD}/files.out |
6871 |
16 Nov 22 |
nicklas |
69 |
|
6871 |
16 Nov 22 |
nicklas |
70 |
rg_progress 99 "Analysis completed, cleaning up..." |