运行目录在:/mnt/sdb1/HAU/wa1/work/shi_shengrui/All_lianqiu/

#! bin/bash

cd ./prokka/anno

# 为xls前面添加菌名

mkdir xiugai
for file in *.xls; do     awk -v filename="$file" '{print filename "\t" $0}' "$file" > "./xiugai/$file"; done

# 筛选essC条目信息
cd ./xiugai
 cat *.xls | grep "essC" | grep "CDS" | cat > all.txt
 sed -i 's/.xls//g' all.txt
 cp ./all.txt ../../..
 cd ../../..
 
# 开始提取序列
 mkdir -p ./essC_tiqu

while read line; do
    num=$(echo $line | awk '{print $1}')
    contig=$(echo $line | awk '{print $2}')
    start=$(echo $line | awk '{print $3}')
    end=$(echo $line | awk '{print $4}')
    strand=$(echo $line | awk '{print $5}')

    # 先判断$strand是 + 还是 -
    if [ "$strand" = "+" ]; then
		#这里还要判断start是否小于5W
		if [ "$start" -lt "50000" ]; then
			seqkit subseq -r "$((1)):$((end+100000))" --chr $contig --gtf ./prokka/gbk/${num}.gbk ./prokka/$num/*.fna -o ./essC_tiqu/${num}_${start}_${strand}.fa
		else
			seqkit subseq -r "$((start-50000)):$((end+100000))" --chr $contig --gtf ./prokka/gbk/${num}.gbk ./prokka/$num/*.fna -o ./essC_tiqu/${num}_${start}_${strand}.fa
		fi
	else
        # 如果是 - ,再判断$start是否 < 10W
        if [ "$start" -lt "100000" ]; then
                seqkit subseq -r "1:$((end+50000))" --chr $contig --gtf ./prokka/gbk/${num}.gbk ./prokka/$num/*.fna -o ./essC_tiqu/${num}_${start}_${strand}.fa
        else
            seqkit subseq -r "$((start-100000)):$((end+50000))" --chr $contig --gtf ./prokka/gbk/${num}.gbk ./prokka/$num/*.fna -o ./essC_tiqu/${num}_${start}_${strand}.fa
        fi
    fi

done < all.txt

# 最后删除seqkit生成的fai文件
rm ./*.fai

到此essC及其身后的环境及提取完成
 
# 对gbk文件进行梳理
# + 向的选$start小的
# - 向的选$end大的