-
Notifications
You must be signed in to change notification settings - Fork 0
Transcript assembly commands
swarbred edited this page May 20, 2024
·
17 revisions
cd /home/train/Annotation_workshop/Transcriptome_assemblyexport genome=Inputs/Reference/Athaliana_447_TAIR10_Chr3_clean.fa2 Build Hisat2 index
rm -rf Hisat2 Stringtie Scallop Assemblies Mikado_Compare Portcullis mikado_compare* *portcullis* && mkdir -p Hisat2/db && hisat2-build $genome Hisat2/db/Athaliana_447_TAIR10_Chr3_clean > Hisat2/index.log 2>&1mkdir -p Hisat2/SRR5956436 && hisat2 --max-intronlen 50000 --rna-strandness RF --dta -p 2 -x Hisat2/db/Athaliana_447_TAIR10_Chr3_clean -1 Inputs/Reads/SRR5956436/*R1.*fastq.gz -2 Inputs/Reads/SRR5956436/*R2.*fastq.gz -S Hisat2/SRR5956436/Hisat2.sammkdir -p Hisat2/SRR5956436 && hisat2 --max-intronlen 50000 --rna-strandness RF --dta -p 2 -x Hisat2/db/Athaliana_447_TAIR10_Chr3_clean -1 Inputs/Reads/SRR5956436/*R1.*fastq.gz -2 Inputs/Reads/SRR5956436/*R2.*fastq.gz | samtools sort -@ 2 -o Hisat2/SRR5956436/Hisat2.bam && samtools index Hisat2/SRR5956436/Hisat2.bamfor folder in Inputs/Reads/SR*; do echo -e "\n\n## Running Hisat2 on sample ${folder} ..." && folder=$(basename $folder) && mkdir -p Hisat2/${folder} && hisat2 --max-intronlen 50000 --rna-strandness RF --dta -p 2 -x Hisat2/db/Athaliana_447_TAIR10_Chr3_clean -1 Inputs/Reads/${folder}/*R1.*fastq.gz -2 Inputs/Reads/${folder}/*R2.*fastq.gz | samtools sort -@ 2 -o Hisat2/${folder}/Hisat2.bam; donemkdir -p {Stringtie,Scallop}/SRR5956436 4.1 Stringtie sample SRR5956436
stringtie Hisat2/SRR5956436/Hisat2.bam -o Stringtie/SRR5956436/SRR5956436.gtf > Stringtie/SRR5956436/stringtie.log 2>&14.2 Scallop sample SRR5956436
scallop -i Hisat2/SRR5956436/Hisat2.bam -o Scallop/SRR5956436/SRR5956436.gtf > Scallop/SRR5956436/scallop.log 2>&1for folder in Inputs/Reads/SRR*; do echo -ne "\n\n## Running stringtie on sample ${folder} ..." && folder=$(basename ${folder}) && mkdir -p Assemblies && mkdir -p Stringtie/${folder} && stringtie Hisat2/${folder}/Hisat2.bam -l ${folder}_STRG -o Stringtie/${folder}/${folder}.gtf > Stringtie/${folder}/stringtie.log 2>&1 && cp Stringtie/${folder}/${folder}.gtf Assemblies/stringtie-${folder}.gtf && echo done; donefor folder in Inputs/Reads/SRR*; do echo -ne "\n\n## Running scallop on sample ${folder} ..." && folder=$(basename ${folder}) && mkdir -p Assemblies && mkdir -p Scallop/${folder} && scallop -i Hisat2/${folder}/Hisat2.bam -o Scallop/${folder}/${folder}.gtf > Scallop/${folder}/scallop.log 2>&1 && cp Scallop/${folder}/${folder}.gtf Assemblies/scallop-${folder}.gtf && echo done;donemkdir -p Mikado_Compare && mikado compare -r Assemblies/stringtie-SRR5956436.gtf -p Assemblies/scallop-SRR5956436.gtf -o Mikado_Compare/mikado_compare_stringtie-SRR5956436_v_scallop-SRR5956436mkdir -p Mikado_Compare && for file in Assemblies/str*gtf; do outfile=$(basename ${file} .gtf) && echo $file && mikado compare -r Inputs/Ref_Annotation/Athaliana_447_Araport11.gene_exons.regionA.gtf -p $file -o Mikado_Compare/mikado_compare_ref_v_${outfile}; donemkdir -p Mikado_Compare && for file in Assemblies/sca*gtf; do outfile=$(basename ${file} .gtf) && echo $file && mikado compare -r Inputs/Ref_Annotation/Athaliana_447_Araport11.gene_exons.regionA.gtf -p $file -o Mikado_Compare/mikado_compare_ref_v_${outfile}; doneassemblies="" && for i in Assemblies/str*gtf; do assemblies="$assemblies $i"; done; echo -ne "\n\n## Running stringtie --merge on $assemblies\n"; mkdir -p Assemblies/Stringtie_Merge && stringtie --merge $assemblies -o Assemblies/Stringtie_Merge/merged_stringtie.gtfcat Assemblies/str*gtf | gffread -T -o Assemblies/Stringtie_Merge/all_stringtie.gtfcat Assemblies/str*gtf | gffread -T -M -K -Q -o Assemblies/Stringtie_Merge/all_stringtie_clustered.gtfmkdir -p Assemblies/Stringtie_Merge/Mikado_Compare && for file in Assemblies/Stringtie_Merge/*gtf; do outfile=$(basename ${file} .gtf) && echo $file && mikado compare -r Inputs/Ref_Annotation/Athaliana_447_Araport11.gene_exons.regionA.gtf -p $file -o Assemblies/Stringtie_Merge/Mikado_Compare/mikado_compare_ref_v_${outfile}; done7.1 Realign reads omitting the --dta option (it is generally sensible for annotation purposes to run with the --dta option we are only removing this option for demonstration purposes as this is a small toy dataset)
for folder in Inputs/Reads/SR*; do echo -e "\n\n## Running Hisat2 on sample ${folder} ..." && folder=$(basename $folder) && mkdir -p Portcullis/Hisat2/${folder} && hisat2 --max-intronlen 50000 --rna-strandness RF -p 2 -x Hisat2/db/Athaliana_447_TAIR10_Chr3_clean -1 Inputs/Reads/${folder}/*R1.*fastq.gz -2 Inputs/Reads/${folder}/*R2.*fastq.gz | samtools sort -@ 2 -o Portcullis/Hisat2/${folder}/Hisat2.bam; donefor folder in Inputs/Reads/SRR*; do echo -ne "\n\n## Running portcullis on sample ${folder} ..." && cd Portcullis/Hisat2/$(basename ${folder}) && rm -rf portcullis_out && portcullis full --keep_temp --exon_gff --save_bad ../../../Inputs/Reference/Athaliana_447_TAIR10_Chr3_clean.fa Hisat2.bam > portcullis.log 2>&1 && cd ../../.. && echo done;donefor i in Portcullis/Hisat2/SRR7947124; do sample=$(basename $i); echo "Processing ...." $sample; rm -rf $i/Mikado_compare; mkdir -p $i/Mikado_compare; cp $i/portcullis_out/2-junc/portcullis_all.junctions.exon.gff3 $i/Mikado_compare/${sample}_portcullis_all.junctions.exon.gff3; cp $i/portcullis_out/3-filt/portcullis_filtered.pass.junctions.exon.gff3 $i/Mikado_compare/${sample}_portcullis_filtered.pass.junctions.exon.gff3; for f in $i/Mikado_compare/*gff3; do cat $f | sed 's/match\t/transcript\t/g' | sed 's/match_part\t/exon\t/g' > $i/Mikado_compare/$(basename $f .gff3).fix.gff3; mikado compare -r Inputs/Ref_Annotation/Athaliana_447_Araport11.gene_exons.regionA.gtf -p $i/Mikado_compare/$(basename $f .gff3).fix.gff3 -o $i/Mikado_compare/mikado_compare_$(basename $f); done; donepaste Portcullis/Hisat2/SRR7947124/Mikado_compare/*statsfor i in Portcullis/Hisat2/*; do sample=$(basename $i); echo "Processing ...." $sample; rm -rf $i/Mikado_compare; mkdir -p $i/Mikado_compare; cp $i/portcullis_out/2-junc/portcullis_all.junctions.exon.gff3 $i/Mikado_compare/${sample}_portcullis_all.junctions.exon.gff3; cp $i/portcullis_out/3-filt/portcullis_filtered.pass.junctions.exon.gff3 $i/Mikado_compare/${sample}_portcullis_filtered.pass.junctions.exon.gff3; for f in $i/Mikado_compare/*gff3; do cat $f | sed 's/match\t/transcript\t/g' | sed 's/match_part\t/exon\t/g' > $i/Mikado_compare/$(basename $f .gff3).fix.gff3; mikado compare -r Inputs/Ref_Annotation/Athaliana_447_Araport11.gene_exons.regionA.gtf -p $i/Mikado_compare/$(basename $f .gff3).fix.gff3 -o $i/Mikado_compare/mikado_compare_$(basename $f); done; donejunctools set --operator max -o Portcullis/Hisat2/portcullis_pass_junctions.bed union Portcullis/Hisat2/*/portcullis_out/3-filt/portcullis_filtered.pass.junctions.bed && junctools set --operator max -o Portcullis/Hisat2/portcullis_fail_junctions.bed union Portcullis/Hisat2/*/portcullis_out/3-filt/portcullis_filtered.fail.junctions.bedjunctools convert -if bed -of egff -o Portcullis/Hisat2/portcullis_pass_junctions.gff Portcullis/Hisat2/portcullis_pass_junctions.bed && junctools convert -if bed -of egff -o Portcullis/Hisat2/portcullis_fail_junctools.gff Portcullis/Hisat2/portcullis_fail_junctions.bedTo clean up directory to the original starting files
rm -rf Stringtie Scallop Mikado_Compare Assemblies SRR5956436* mikado_compare_* Hisat2 Portcullis- Workshop Wiki Home
- Transcript assembly commands
- Mikado commands
- REAT transcriptome commands
- Augustus
- Helixer commands
- GALBA commands
- BRAKER3 commands
- Minos commands
- EVidenceModeler (EVM) commands
- Annotation Web Apollo Browser
- Workshop data locations
- Software tools used
- Guacamole tips
- Troubleshooting