构建索引和转录组CleanData比对
1、安装hisat2软件
11conda install -c bioconda hisat22、hisat2构建索引
#-p:选择使用的线程数;Toona_ciliata_LG_Genome.fasta:基因组染色体文件;index:索引文件的前缀,必须包含index_
x
1hisat2-build -p 50 /home/hztext/dai/Ana_trans/Toona_cilita_var_Genome/Toona_ciliata_LG_Genome.fasta /home/hztext/dai/Ana_trans/hisat2_index/index_#索引结果文件中包含多个以index_开头的文件

3、利用索引文件批量比对fastq文件,生成sam文件。
香椿转录组sam文件大小一般为20G左右。该代码只针对一个文件夹的文件进行处理,需要多文件夹自动化处理,需增加文件夹的自动访问,具体代码参考后续的sam文件转bam文件。
2612#index_dir:指定索引文件的路径和前缀3index_dir="/home/hztext/dai/Ana_trans/hisat2_index/index_"4#input_dir:指定fastq文件的路径5input_dir="/home/hztext/dai/Ana_trans/Total_fastq/Tc_Fruit"6#output_dir:指定比对后的sam文件输出路径7output_dir="/home/hztext/dai/Ana_trans/hisat/Tc_Fruit"8
9# 在{input_dir}路径中遍历输入fastq结尾的文件10for file in ${input_dir}/*.fastq; do11 # 提取文件名和ID12 filename=$(basename "$file")13 #提取不包含扩展名.fastq的部分14 id="${filename%%.*}"15
16 # 拼接输入文件路径17 input_1="${input_dir}/${id}.clean.1.fastq"18 input_2="${input_dir}/${id}.clean.2.fastq"19
20 # 拼接输出文件路径21
22 output="${output_dir}/${id}_hisat2.sam"23
24 # 执行比对命令25 hisat2 -p 50 -x "${index_dir}" -1 "${input_1}" -2 "${input_2}" -S "${output}"26done4、将sam文件转成bam文件
以当前50线程的服务器来算,运行40次需要10小时左右(实际为二进制文件,因此文件相对较小,为3G左右)。

利用samtools的sort命令将bam进行排序。
(为什么 BAM 文件sort之后体积会变小?因为BAM文件是压缩的二进制文件,对文件内容排序之后相似的内容排在一起,使得文件压缩比提高了)

将下列代码写成.sh文件,利用“bash 文件名”运行。
2812# 定义要循环的路径列表3paths=(4 "/home/hztext/dai/Ana_trans/hisat/Tc_Female"5 "/home/hztext/dai/Ana_trans/hisat/Tc_Fruit"6 "/home/hztext/dai/Ana_trans/hisat/Tc_Male"7 "/home/hztext/dai/Ana_trans/hisat/Tc_Petals"8 "/home/hztext/dai/Ana_trans/hisat/Tc_VegOr"9)10
11# 循环遍历路径列表12for path in "${paths[@]}"; do13#获取当前路径的最后一个文件夹的文件名14 folder_name=$(basename "$path")15 # 在每个路径下执行您的命令16 cd "$path" # 切换到当前路径17#遍历当前文件夹所有文件,对.sam文件进行处理18for sam_file in *.sam; do19#获取当前处理的文件名20 base_name=$(basename "$sam_file" .sam)21 #构建输出bam文件的文件名22 bam_file="${base_name}.bam"23 #用samtools的view命令将sam文件转成bam文件。-@:选择50个线程;-S:选择sam文件的路径及文件名;-b:利用“>”指定输出bam文件的路径和文件名。24 samtools view -@ 50 -S $path/$sam_file -b > $path/$bam_file25 #利用sort命令对bam文件进行排序,默认是按照染色体进行排序。$path/$bam_file:输入的bam文件;-o:输出的已排序的bam文件。26 samtools sort $path/$bam_file -o /home/hztext/dai/Ana_trans/bam_file/sorted/$folder_name/$bam_file27done28done