008 Standard project structure - McGranahanLab/Guidebook GitHub Wiki

#!/bin/bash

# FILE: create_standard_project_folder.sh -------------------------------------
#
# DESCRIPTION: a bash script to create a standard project directory structure
#              used in McGranahan lab
# USAGE: 
#        chmod +x create_standard_project_folder.sh # make script executable
#        ./create_standard_project_folder.sh -n myTestProject
#
# OPTIONS: -n string, name for the project folder to be created
#
# EXAMPLE: first, navigate to the folder where you'd like your project folder
#          to be created. Then, run commands
#          chmod +x create_standard_project_folder.sh # make script executable
#          ./create_standard_project_folder.sh -n myTestProject
#
# REQUIREMENTS: none
# BUGS: --
# NOTES:  ---
# AUTHOR:  Maria Litovchenko, [email protected]
# COMPANY:  UCL, London, the UK
# VERSION:  1
# CREATED:  22.07.2022
# REVISION: 22.07.2022

# Step 1: get name of the future project folder -------------------------------
project_name=''
while getopts n: flag
do
    case "${flag}" in
        n) project_name=${OPTARG};;
    esac
done

if [ "$project_name" = "" ]; then
    exit "Please give project folder a name with use of -n"
fi

# working directory
cwd=`pwd`

echo "Started creation of project directory for $project_name";

# Step 2: create all the required folders -------------------------------------
mkdir -p $cwd'/'$project_name
cd $project_name

echo 'Project directory for '$project_name > README.md
echo 'data: contains RAW data used in this project' >> README.md
echo 'inventory: contains inventory tables for samples\ 
      and analysis ' >> README.md
echo 'assets: contains various static support files for the analysis, \
      i.e. reference genomes, COSMIC databases, etc' >> README.md
echo 'logs: contains messages printed by softwares' >> README.md
echo 'results: contains results of various software runs' >> README.md
echo 'papers: contains PDFs of major publications linked to this \
      analysis' >> README.md
echo 'reports: contains presentations and text reports' >> README.md

mkdir data
mkdir inventory
mkdir assets
mkdir assets/reference_genome
mkdir assets/additional_dbs
mkdir logs
mkdir results
mkdir results/plots
mkdir results/tables
mkdir papers
mkdir reports

cd $cwd

echo "Finished creation of project directory for $project_name";