Visualizes Quality Control(QC) results from proteomics data for Quartet Project.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

115 lines
2.2KB

  1. #!/usr/bin/env bash
  2. # A wrapper for protqc r package
  3. #
  4. # Author: Jingcheng Yang
  5. # Email: yjcyxky@163.com
  6. #
  7. # License: MIT
  8. # Exit on error. Append "|| true" if you expect an error.
  9. # set -o errexit
  10. # Exit on error inside any functions or subshells.
  11. # set -o errtrace
  12. # Do not allow use of undefined vars. Use ${VAR:-} to use an undefined VAR
  13. set -o nounset
  14. # Catch the error in case mysqldump fails (but gzip succeeds) in `mysqldump |gzip`
  15. set -o pipefail
  16. # Turn on traces, useful while debugging but commented out by default
  17. # set -o xtrace
  18. show_help() {
  19. cat <<EOF
  20. usage: $(echo $0) [-d <DATA_FILE>] [-m <META_FILE>] [-o <RESULT_DIR>]
  21. -d DATA_FILE Proteomics profiled data.
  22. -m META_FILE Metadata file.
  23. -o RESULT_DIR A directory for result files.
  24. EOF
  25. }
  26. while getopts ":hd:m:o:" arg; do
  27. case "$arg" in
  28. "d")
  29. DATA_FILE="$OPTARG"
  30. ;;
  31. "m")
  32. META_FILE="$OPTARG"
  33. ;;
  34. "o")
  35. RESULT_DIR="$OPTARG"
  36. ;;
  37. "?")
  38. echo "Unkown option: $OPTARG"
  39. exit 1
  40. ;;
  41. ":")
  42. echo "No argument value for option $OPTARG"
  43. ;;
  44. h)
  45. show_help
  46. exit 0
  47. ;;
  48. *)
  49. echo "Unknown error while processing options"
  50. show_help
  51. exit 1
  52. ;;
  53. esac
  54. done
  55. if [ -z "$DATA_FILE" ]; then
  56. echo "-d argument is not specified."
  57. exit 1
  58. elif [ ! -f "$DATA_FILE" ]; then
  59. echo "$DATA_FILE is not a valid file."
  60. exit 1
  61. else
  62. DATA_FILE=$(realpath $DATA_FILE)
  63. fi
  64. if [ -z "$META_FILE" ]; then
  65. echo "-m argument is not specified."
  66. exit 1
  67. elif [ ! -f "$META_FILE" ]; then
  68. echo "$META_FILE is not a valid file."
  69. exit 1
  70. else
  71. META_FILE=$(realpath $META_FILE)
  72. fi
  73. if [ -z "$RESULT_DIR" ]; then
  74. echo "-o argument is not specified."
  75. exit 1
  76. elif [ ! -d "$RESULT_DIR" ]; then
  77. echo "$RESULT_DIR is not a valid directory."
  78. exit 1
  79. else
  80. RESULT_DIR=$(realpath $RESULT_DIR)
  81. fi
  82. TEMP=$(mktemp)
  83. echo "Run script: $TEMP"
  84. cat <<EOF >"$TEMP"
  85. #!/usr/bin/env Rscript
  86. run <- function() {
  87. # Print traceback message
  88. on.exit(traceback())
  89. library(ProtQC)
  90. print("Running...")
  91. ProtQC::plot_pca("$DATA_FILE", "$META_FILE", "$RESULT_DIR")
  92. ProtQC::plot_corr("$DATA_FILE", "$META_FILE", "$RESULT_DIR")
  93. ProtQC::table_conclusion("$DATA_FILE", "$META_FILE", "$RESULT_DIR")
  94. }
  95. run()
  96. EOF
  97. printf "\n---------------------\n"
  98. cat "$TEMP"
  99. echo "---------------------"
  100. Rscript $TEMP