123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- ##Author: guochangquan
- ##Copyright 20211220
- ##company: NuProbe
- function usage() {
- echo "Usage: $0 [ -i <fq_dir> ] [ -l <sample list> ] [ -o <analysis_dir> ] [ -c <FeBY2_CNV_outdir> ]
- [ -x <FeBY2_script_dir> ] [ -r <FeBY2_Result_dir> ] "
- echo "-i Input fastq dir.File structure follow:fq_dir/sample/sample_combined_R1/2.fastq.gz"
- echo "-l Sample list, per line for one sample"
- echo "-o FeBY2 analysis output dir"
- echo "-c FeBY2 CNV analysis outdir.default:analysis_dir/cnv_FeBY2"
- echo "-x FeBY2 scripts dir"
- echo "-r FeBY2 Result dir"
- }
- if [ $# -eq 0 ]
- then
- usage
- exit
- fi
- feby2_script=$(cd "$(readlink -f "$0" | xargs dirname)"; pwd)
- while getopts ":x:i:l:c:r:o:h" opt; do
- case $opt in
- x)
- feby2_script=$OPTARG
- ;;
- i)
- fq_dir=$OPTARG
- ;;
- l)
- sam_list=$OPTARG
- ;;
- o)
- out_dir=$OPTARG
- ;;
- c)
- cnv_dir=$OPTARG
- ;;
- r)
- res_dir=$OPTARG
- ;;
- h)
- usage
- exit
- ;;
- \?)
- echo "Invalid option: -$OPTARG" > /dev/stderr
- usage
- exit
- ;;
- esac
- done
- echo "Input FASTQ dir:$fq_dir"
- echo "FeBY2 analysis output dir:$out_dir"
- echo "FeBY2 CNV analysis dir:$cnv_dir"
- echo "Sample List:$sam_list"
- echo "FeBY2 scripts dir:$feby2_script"
- ## 测试输入路径/文件是否正确
- if [ ! -d $fq_dir ]
- then
- echo "Input fastq dir does NOT exist! "
- echo "Please check $fq_dir."
- exit
- fi
- if [ ! -f $sam_list ]
- then
- echo "Sample List does NOT exist! "
- echo "Please check $sam_list."
- exit
- fi
- test -d $out_dir || mkdir -p $out_dir
- test -d $out_dir/log || mkdir -p $out_dir/log
- if [ -d $cnv_dir ]
- then
- echo "FeBY2 CNV Outdir exist!"
- echo "Please check!"
- #exit
- else
- mkdir -p $cnv_dir
- fi
- for sample in `cat $sam_list`
- do
- echo "Sample Checking: " $sample
- export SAM=$sample
- fq1=` find $fq_dir -name "*${sample}*.gz" |perl -ne 'print if /$ENV{SAM}(_S\d+)?(_L\d+)?(_combined)?_R?1(_\d+)?.f(ast)?q.gz/' `
- fq2=` find $fq_dir -name "*${sample}*.gz" |perl -ne 'print if /$ENV{SAM}(_S\d+)?(_L\d+)?(_combined)?_R?2(_\d+)?.f(ast)?q.gz/' `
- nfq1=`find $fq_dir -name "*${sample}*.gz" |perl -ne 'print if /$ENV{SAM}(_S\d+)?(_L\d+)?(_combined)?_R?1(_\d+)?.f(ast)?q.gz/' |wc -l `
- nfq2=`find $fq_dir -name "*${sample}*.gz" |perl -ne 'print if /$ENV{SAM}(_S\d+)?(_L\d+)?(_combined)?_R?2(_\d+)?.f(ast)?q.gz/' |wc -l `
- echo $sample "FASTQ1:" $fq1
- ## ONLY ONE FASTQ1/FASTQ2 file for SAMPLE
- if [ -z $fq1 ]; then
- echo "Cannot find FASTQ1 file for $sample"
- exit
- elif [ $nfq1 -gt 1 ]; then
- echo "More Than ONE FASTQ1 file for $sample"
- exit
- fi
- if [ -z $fq2 ]; then
- echo "Cannot find FASTQ2 file for $sample"
- exit
- elif [ $nfq2 -gt 1 ]; then
- echo "More Than ONE FASTQ2 file for $sample"
- exit
- fi
- if [ -d $out_dir/${sample} ]
- then
- echo -e "Directory $out_dir/${sample} exists, Please check. Exit!"
- echo -e "${sample} quit!"
- #exit
- else
- mkdir $out_dir/${sample} -p
- fi
- done
- if [ ! -d $res_dir ]
- then
- echo "Result Directory NOT exists, Please check. Exit!"
- #exit
- else
- test -d $res_dir/cnv || mkdir $res_dir/cnv
- test -d $res_dir/yesuan || mkdir $res_dir/yesuan
- test -d $res_dir/QC || mkdir $res_dir/QC
- test -d $res_dir/CFTR_intron9 || mkdir $res_dir/CFTR_intron9
- fi
- sams=(`cat $sam_list`)
- num=${#sams[@]}
- mindx=` expr $num - 1 `
- log=$out_dir/log/FeBY2
- samplesheet=/cgdata/rawdata/test/sampleinfo/all_sample_information.xlsx
- if [ $num -lt 2 ]
- then
- fid1=`qsub -v sample=${sams[0]},fq_dir=$fq_dir,out_dir=$out_dir,cnv_dir=$cnv_dir,feby2_script=$feby2_script $feby2_script/run_FeBY2_single_L1.pbs`
- qsub -W depend=afterok:$fid1 -v out_dir=$out_dir,cnv_dir=$cnv_dir,feby2_script=$feby2_script,res_dir=$res_dir,sam_list=$sam_list $feby2_script/run_FeBY2_Copy_L1.pbs
- else
- fid1=`qsub -o $log.prep -v log=$log.prep,fq_dir=$fq_dir,out_dir=$out_dir,sam_list=$sam_list,cnv_dir=$cnv_dir,feby2_script=$feby2_script -J 0-$mindx $feby2_script/run_FeBY2_prep_L1.pbs`
- fid2=`qsub -W depend=afterok:$fid1 -o $log.cnv.prep -v sam_list=$sam_list,cnv_dir=$cnv_dir,feby2_script=$feby2_script $feby2_script/run_FeBY2_stat_L1.pbs `
- fid3=`qsub -W depend=afterok:$fid2 -o $log.cnv.call -v log=$log.cnv.call,out_dir=$out_dir,sam_list=$sam_list,cnv_dir=$cnv_dir,feby2_script=$feby2_script -J 0-$mindx $feby2_script/run_FeBY2_cnv_call_L1.pbs`
- qsub -W depend=afterok:$fid3 -o $log.copy -v out_dir=$out_dir,cnv_dir=$cnv_dir,feby2_script=$feby2_script,res_dir=$res_dir,sam_list=$sam_list,samplesheet=$samplesheet $feby2_script/run_FeBY2_Copy_L1.pbs
- fi
|