123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- ##Author: guochangquan
- ##Copyright 202207
- ##company: NuProbe
- function usage() {
- echo "Usage: $0 [ -i <fq_dir> ] [ -l <sample list> ] [ -o <analysis_dir> ]
- [ -c <FMBY2_CNV_outdir> ] [ -x <FMBY2_script_dir> ] [ -r <FMBY2_Result_dir> ] "
- echo "-i Input fastq dir.File structure follow:fq_dir/sample/sample_R1/2.fastq.gz"
- echo "-l Sample list, per line for one SampleName and Sample_Panel[MBY2|FeBY2]"
- echo "-o FMBY2 analysis output dir"
- echo "-c FMBY2 CNV analysis outdir.default:analysis_dir/cnv_FMBY2"
- echo "-x FMBY2 scripts dir"
- echo "-r FMBY2 Result dir"
- }
- if [ $# -eq 0 ]
- then
- usage
- exit
- fi
- script_dir=$(cd "$(readlink -f "$0" | xargs dirname)"; pwd)
- while getopts ":x:i:l:c:r:o:h" opt; do
- case $opt in
- x)
- script_dir=$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"
- usage
- exit
- ;;
- esac
- done
- echo "Input FASTQ dir:$fq_dir"
- echo "FMBY2 analysis output dir:$out_dir"
- echo "FMBY2 CNV analysis dir:$cnv_dir"
- echo "Sample List:$sam_list"
- echo "FMBY2 scripts dir:$script_dir"
- ## 测试输入路径/文件是否正确
- 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 "FMBY2 CNV Outdir exist!"
- echo "Please check!"
- #exit
- else
- mkdir -p $cnv_dir
- mkdir -p $cnv_dir/AZF_call/img
- fi
- for sample in `cut -f1 $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/MBY2-AZF || mkdir $res_dir/MBY2-AZF
- test -d $res_dir/QC || mkdir $res_dir/QC
- test -d $res_dir/cnv || mkdir $res_dir/cnv
- test -d $res_dir/yesuan || mkdir $res_dir/yesuan
- test -d $res_dir/CFTR_intron9 || mkdir $res_dir/CFTR_intron9
- fi
- test -s $out_dir/$sam_list || cp $sam_list $out_dir/
- sams=(`cut -f1 $sam_list`)
- num=${#sams[@]}
- mindx=` expr $num - 1 `
- log=$out_dir/log/FMBY2
- if [ $num -lt 2 ]
- then
- fid1=`qsub -v sample=${sams[0]},fq_dir=$fq_dir,out_dir=$out_dir,cnv_dir=$cnv_dir,script_dir=$script_dir $script_dir/run_FMBY2_single_L1.pbs`
- qsub -W depend=afterok:$fid1 -v out_dir=$out_dir,cnv_dir=$cnv_dir,script_dir=$script_dir,res_dir=$res_dir,sam_list=$sam_list $script_dir/run_FMBY2_Copy_L1.pbs
- else
- fid1=`qsub -o $log.S1 -v log=$log.S1,fq_dir=$fq_dir,out_dir=$out_dir,sam_list=$sam_list,cnv_dir=$cnv_dir,script_dir=$script_dir -J 0-$mindx $script_dir/run_FMBY2_prep_L1.pbs`
- fid2=`qsub -W depend=afterok:$fid1 -o $log.S2 -v sam_list=$sam_list,cnv_dir=$cnv_dir,script_dir=$script_dir $script_dir/run_FMBY2_stat_L1.pbs `
- fid3=`qsub -W depend=afterok:$fid2 -o $log.S3 -v log=$log.S3,out_dir=$out_dir,sam_list=$sam_list,cnv_dir=$cnv_dir,script_dir=$script_dir -J 0-$mindx $script_dir/run_FMBY2_cnv_call_L1.pbs`
- qsub -W depend=afterok:$fid3 -o $log.S4 -v out_dir=$out_dir,cnv_dir=$cnv_dir,script_dir=$script_dir,res_dir=$res_dir,sam_list=$sam_list $script_dir/run_FMBY2_Copy_L1.pbs
- fi
|