SkillAgentSearch skills...

MiSeq16S

No description available

Install / Use

/learn @igsbma/MiSeq16S
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

step-by-step preprocessing miseq 300PE reads AND 250PE reads

reference:

doi:10.1186/2049-2618-2-6

Fadrosh D, Ma B, Gajer P, Sengamalay N, Ott S, Brotman R, Ravel J. 2014. An improved dual-indexing approach for multiplexed 16S rRNA gene sequencing on the Illumina MiSeq platform. Microbiome 2:6

http://www.microbiomejournal.com/content/pdf/2049-2618-2-6.pdf

this pipeline is currently being incorporated into QIIME, stay tuned with the next version of QIIME.

#1. trim barcode

####trim barcode, form a new barcode file, this step requires fastx_trimmer from fastx toolbox fastx_trimmer -i R1.fq -f 1 -l 12 -Q 33 -o R1_barcode.fq fastx_trimmer -i R2.fq -f 1 -l 12 -Q 33 -o R2_barcode.fq cat R1_barcode.fq | fq_mergelines.pl > R1_barcode_temp cat R2_barcode.fq | fq_mergelines.pl > R2_barcode_temp paste R1_barcode_temp R2_barcode_temp | awk -F"\t" '{print $5"\t"$2$6"\t"$3"\t"$4$8}' | fq_splitlines.pl > R1R2_barcode.fastq

####trim barcode off the sequence seqtk trimfq -b 12 R1.fq > R1_trimmed_seq.fastq seqtk trimfq -b 12 R2.fq > R2_trimmed_seq.fastq

#2. assemble paired end read using either pandaseq, FLASH, or SeqPrep. QIIME 1.8 version also implement the function of merging reads ends.

note that different merging algorithm has its own issues and disadvantages, choose carefully based on your needs (efficiency, overlapping length, quality, etc.)

await evaluating ea-utils

#a)using pandaseq, note that the overlapping length needed to be determined based on read length and amplicon size #Run Pandaseq to assemble MiSeq1 paired-end reads pandaseq -F -o $overlapping_length -B -f R1.fq -r R3.fq > PandaAssembly.fq

#Use a Perl script followed by a Python script to fix Pandaseq MiSeq1 output and prepare it for Qiime touch fix_5742_pandaseq_fastq.pl echo -e "0a\n#!/usr/bin/perl\n\nmy_SPACE_$filename_SPACE_=SPACE<$ARGV[0]>;\nchomp_SPACE_$filename;\nopen_SPACE_(FASTQ,SPACE$filename);\n\t{\n\tif_SPACE_($filename_SPACE_=~SPACE/(.)\.[^.]/)\n\t\t{\n\t\topen_SPACE_OUT,SPACE">$1.fixed.fastq";\n\t\t}\n\t}\n\nwhile_SPACE_(<FASTQ>)\n\t{\n\tif_SPACE_($SPACE=~SPACE/^\@(NGSC\-005)\:(\d*)\:(000000000\-A14NC)\:(\d*)\:(\\d*)\:(\d*)\:(\d*)\:/)\n\t\t{\n\t\tprint_SPACE_OUT_SPACE"\@$1:$2:$3:$4:$5:$6:$7_SPACE_2:N:0:SLASH__LETTERN";\n\t\t}\n\telse\n\t\t{\n\t\tprint_SPACE_OUT_SPACE_$_;\n\t\t}\n\t}\n\n.\n,wq" | ed fix_5742_pandaseq_fastq.pl sed -i 's/SPACE/ /g' fix_5742_pandaseq_fastq.pl sed -i 's/SLASH/\/g' fix_5742_pandaseq_fastq.pl sed -i 's/LETTERN/n/g' fix_5742_pandaseq_fastq.pl sed -i 's/\#\!/#!/g' fix_5742_pandaseq_fastq.pl

perl fix_5742_pandaseq_fastq.pl PandaAssembly.fq

##make a barcode file with only the entries associated with sequences in the Pandaseq assembled MiSeq1 data set sed -n '1~4'p PandaAssembly.fixed.fastq | sed -e 's/^@//' -e 's/:$//' > PandaAssembly.keep.header seqtk subseq R2.fq PandaAssembly.keep.header > R2_filter.fq

sed '1~4 s/:$//' PandaAssembly.fixed.fastq > assembly.fq

fastqc --nogroup --noextract -q assembly.fq

#b) using FLASH

http://ccb.jhu.edu/software/FLASH/

#c) SeqPrep

https://github.com/jstjohn/SeqPrep

#d) PEAR http://sco.h-its.org/exelixis/web/software/pear/

#e) QIIME1.8 also have the assembly featuer

join_paired_end.py

#3. match up the barcode and sequence file, script attached fq_getPairAndOrphan1.8.py R3.fastq R1.fastq R3N_PE.fq R1N_PE.fq orphan_temp.fq fq_getPairAndOrphan1.8.py R3N_PE.fq R1R2_barcode.fastq PE_temp.fq barcode.fq orphan_temp.fq

Eventually assembly.fq barcode.fq are the 3 files that you want to use for split

#4. run split_library for illumina using QIIME http://qiime.org/1.3.0/scripts/split_libraries_fastq.html

#5. post-processing to remove barcode, heterogeneous spacer, and primer

first trim off barcode, which is 24 bases at the beginning of the sequences

to trim stagger and primer, I use tagcleaner (http://tagcleaner.sourceforge.net) to trim off the sequences from the beginning of the reads to the part that could match to the primer.

the structure of the reads is the order of adaptor (pre-trimmed) + barcode + heterogeneous spacer (0-7 bases) + primer + sequence.

await evaluating cutadapt (https://github.com/marcelm/cutadapt#paired-end-adapter-trimming)

prinseq-lite -trim_left 24 -fasta $fasta -line_width 0 -out_good $out tagcleaner -fasta $fasta -out $out_tagclean -line_width 0 -verbose -log tagclean300PE.log -nomatch 3 -tag5 $forwardPrimer -mm5 $mismatch -tag3 $reversePrimer -mm3 $mismatch -trim_within $length

#getting information on what being trimmed, this is optional and only for logging tagcleaner -fasta $fasta -out $out -line_width 0 -nomatch 3 -info -tag5 $forwardPrimer -mm5 $mismatch -tag3 $reversePrimer -mm3 $mismatch -trim_within #length egrep ">" $fasta_with_header_info | awk '{print $4}' | awk '{count[$1]++}END{for (i in count) print count[i]"\t"i}' > ${stripped}.stat prinseq-lite -stats_info -stats_len -fasta $fasta

#6. for 250PE, if need to stitch, using stitching_pipeline.pl stitching_pipeline.pl -i R1_seqs.fasta -j R2_seqs.fasta -o output_dir

View on GitHub
GitHub Stars8
CategoryDevelopment
Updated5y ago
Forks3

Languages

Perl

Security Score

50/100

Audited on May 23, 2020

No findings