<?xml version='1.0'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:atom="http://www.w3.org/2005/Atom" >
<channel>
	<title><![CDATA[BOL: Related items]]></title>
	<link>https://bioinformaticsonline.com/related/26911?offset=240</link>
	<atom:link href="https://bioinformaticsonline.com/related/26911?offset=240" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/7674/useful-publications-and-websites-for-deep-sequencing-data-analysis</guid>
	<pubDate>Sun, 29 Dec 2013 22:30:45 -0600</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/7674/useful-publications-and-websites-for-deep-sequencing-data-analysis</link>
	<title><![CDATA[Useful Publications and Websites for Deep Sequencing Data Analysis]]></title>
	<description><![CDATA[<h3>Global overview papers</h3><p>Next generation quantitative genetics in plants. Jim&eacute;nez-G&oacute;mez, Frontiers in Plant Science 2:77, 2011 <span style="text-decoration: underline;"><a href="http://www.frontiersin.org/Plant_Physiology/10.3389/fpls.2011.00077/full">Full Text</a> </span><em>[equally relevant to animal and microbial systems]</em></p><p>Sense from sequence reads: methods for alignment and assembly. Flicek &amp; Birney, Nat Methods 6(11 Suppl):S6-S12, 2009. <a href="http://www.nature.com/nmeth/journal/v6/n11s/full/nmeth.1376.html"><span style="text-decoration: underline;">Full Text</span></a></p><h3>Library construction and experimental design</h3><p>Statistical design and analysis of RNA sequencing data. Auer &amp; Doerge, Genetics 185(2):405-16, 2010. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2881125"><span style="text-decoration: underline;">PubMedCentral</span></a></p><p>Biases in Illumina transcriptome sequencing caused by random hexamer priming. Hansen et al., Nucleic Acids Res. 38(12): e131, 2010. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2896536"><span style="text-decoration: underline;">PubMedCentral</span></a></p><p>Analyzing and minimizing PCR amplification bias in Illumina sequencing libraries. Aird et al, Genome Biology 12:R18, 2011 <a href="http://genomebiology.com/2011/12/2/R18"><span style="text-decoration: underline;">Full Text</span></a></p><p>Amplification-free Illumina sequencing-library preparation facilitates improved mapping and assembly of GC-biased genomes. Kozarewa et al, Nature Methods 6(4):291-5, 2009 <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2664327/"><span style="text-decoration: underline;">PubMedCentral</span></a></p><p>Cost-effective, high-throughput DNA sequencing libraries for multiplexed target capture. Rohland &amp; Reich, Genome Research 22(5): 939&ndash;946. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3337438/"><span style="text-decoration: underline;">PubMedCentral</span></a></p><h3>Data formats, data management, and alignment software tools<span style="text-decoration: underline;"> </span></h3><p>The Sequence Alignment/Map format and SAMtools. Li et al, Bioinformatics 25(16):2078-9, 2009 <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2723002"><span style="text-decoration: underline;">PubMedCentral</span></a></p><p>SAM format specification <a href="http://samtools.sourceforge.net/SAM1.pdf"><span style="text-decoration: underline;">file</span></a></p><p>Efficient storage of high throughput sequencing data using reference-based compression. Fritz et al, Genome Res 21(5):734-40, 2011. <a href="http://genome.cshlp.org/content/21/5/734.long"><span style="text-decoration: underline;">Full Text</span></a></p><p>Compression of DNA sequence reads in FASTQ format. Deorowicz &amp; Grabowski, Bioinformatics 27(6):860-2, 2011. <a href="http://www.ncbi.nlm.nih.gov/pubmed/21252073"><span style="text-decoration: underline;">PubMed</span></a></p><p>Fast and accurate short read alignment with Burrows-Wheeler transform. Li &amp; Durbin, Bioinformatics 25(14):1754-60, 2009. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2705234"><span style="text-decoration: underline;">PubMedCentral</span></a></p><p>Improving SNP discovery by base alignment quality. Li H, Bioinformatics 27(8):1157-8, 2011. <a href="http://www.ncbi.nlm.nih.gov/pubmed/21320865"><span style="text-decoration: underline;">PubMed</span></a></p><p>BEDTools: a flexible suite of utilities for comparing genomic features. Quinlan and Hall, Bioinformatics 26:841-842, 2010. <a href="http://bioinformatics.oxfordjournals.org/content/26/6/841.full.pdf+html"><span style="text-decoration: underline;">Publisher Website</span></a></p><h3>Data quality assessment, filtering, and correction</h3><p>SolexaQA: At-a-glance quality assessment of Illumina second-generation sequencing data. Cox et al, BMC Bioinformatics 11:485, 2010. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2956736"><span style="text-decoration: underline;">PubMedCentral</span></a></p><p>TileQC: a system for tile-based quality control of Solexa data. Dolan &amp; Denver, BMC Bioinformatics 9:250, 2008 <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2443380"><span style="text-decoration: underline;">PubMedCentral</span></a> <em>[requires a reference sequence]</em></p><p>Quake: quality-aware detection and correction of sequencing errors. Kelley et al, Genome Biol 11(11):R116, 2010. <a href="http://www.ncbi.nlm.nih.gov/pubmed/21114842"> <span style="text-decoration: underline;">PubMed</span></a></p><p>FastQC: a quality control tool for high-throughput sequence data. <a href="http://www.bioinformatics.bbsrc.ac.uk/projects/fastqc/"><span style="text-decoration: underline;">Home Page</span></a></p><p>FASTX-toolkit: FASTQ/A short-reads pre-processing tools <a href="http://hannonlab.cshl.edu/fastx_toolkit/"><span style="text-decoration: underline;">Home Page</span></a></p><p>Reference-free validation of short read data. Schr&ouml;der et al, PLoS One 5(9):e12681, 2010. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2943903"> <span style="text-decoration: underline;">PubMedCentral</span></a></p><p>Correction of sequencing errors in a mixed set of reads. Salmela, Bioinformatics 26(10):1284, 2010. <a href="http://bioinformatics.oxfordjournals.org/content/26/10/1284.long"><span style="text-decoration: underline;">Full Text</span></a> <em>[includes error correction of SOLiD reads in colorspace]</em></p><p>Repeat-aware modeling and correction of short read errors. Yang et al, BMC Bioinformatics 12(Supp1):S52, 2011 <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3044310"> <span style="text-decoration: underline;">PubMedCentral</span></a> <em>[requires a reference sequence]</em></p><p>HiTEC: accurate error correction in high-throughput sequencing data. Ilie et al, Bioinformatics 27(3):295, 2011 <a href="http://bioinformatics.oxfordjournals.org/content/27/3/295.long"><span style="text-decoration: underline;">Full Text</span></a></p><p>Error correction of high-throughput sequencing datasets with non-uniform coverage. Medvedev et al., Bioinformatics 27(13):i137-41, 2011. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3117386"><span style="text-decoration: underline;">PubMedCentral</span></a></p><h3>De novo assembly<span style="text-decoration: underline;"> </span></h3><p>Velvet: algorithms for de novo short read assembly using de Bruijn graphs. Zerbino &amp; Birney, Genome Res 18(5):821-9, 2008. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2336801">u&gt;PubMedCentral</a></p><p>Assembly of large genomes using second-generation sequencing. Schatz et al, Genome Res 20(9):1165-73, 2010. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2928494"><span style="text-decoration: underline;">PubMedCentral</span></a></p><p>High-quality draft assemblies of mammalian genomes from massively parallel sequence data. Gnerre et al, PNAS 108(4): 1513-18, 2011 <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3029755"><span style="text-decoration: underline;">PubMedCentral</span></a></p><p>Genome assembly has a major impact on gene content: a comparison of annotation in two <em>Bos taurus </em> assemblies. Florea&nbsp; et al., PLoS One 6(6):e21400, 2011. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3120881/"><span style="text-decoration: underline;">PubMedCentral</span></a></p><p>Artemis: an integrated platform for visualization and analysis of high-throughput sequence-based experimental data. Carver et al, Bioinformatics 28(4):464 - 469, 2012 <span style="text-decoration: underline;"><a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3278759/">PubMedCentral</a></span></p><p>Efficient de novo assembly of large genomes using compressed data structures. Simpson &amp; Durbin, Genome Research 22:549-556, 2012 <span style="text-decoration: underline;"><a href="http://genome.cshlp.org/content/22/3/549.full">Full Text</a></span> <em>[Describes the String Graph Assembler (SGA), which assembled a human genome in less than 6 days using 54 Gb of RAM and a 123-processor compute cluster for calculation of an FM-index of the 1.2 billion reads]</em></p><p>Readjoiner: a fast and memory efficient string graph-based sequence assembler. Gonnella &amp; Kurtz, BMC Bioinformatics 13: 82, 2012 <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3507659"><span style="text-decoration: underline;">PubMedCentral</span></a></p><p>Assemblathon 1: A competitive assessment of de novo short read assembly methods. Earl et al, Genome Research 21:2224-2241, 2011 <span style="text-decoration: underline;"><a href="http://genome.cshlp.org/content/early/2011/09/16/gr.126599.111.full.pdf+html">Full Text</a></span></p><h3>Chromatin immunoprecipation analysis: ChIP-seq</h3><p>ChIP-seq: advantages and challenges of a maturing technology. Park, Nat Rev Genet. 10:669-80, 2009 <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3191340/"><span style="text-decoration: underline;">PubMed</span></a></p><p>ChIP-seq and Beyond: new and improved methodologies to detect and characterize protein-DNA interactions. Furey, Nat Rev Genet 13: 840&ndash;852, 2012 <a href="http://www.nature.com/nrg/journal/v13/n12/full/nrg3306.html"> <span style="text-decoration: underline;">Publisher Web Site</span></a></p><p>MuMoD: a Bayesian approach to detect multiple modes of protein&ndash;DNA binding from genome-wide ChIP data. Narlikar, Nucleic Acids Res 41:21&ndash;32, 2013 <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3592440/"><span style="text-decoration: underline;">PubMed</span></a></p><h3>Transcriptome analysis</h3><h3>Assembly and comparison to genome</h3><p>Full-length transcriptome assembly from RNA-Seq data without a reference genome. Grabherr et al, Nature Biotechnology 29:644 - 652, 2011. <a href="http://www.ncbi.nlm.nih.gov/pubmed/21572440"><span style="text-decoration: underline;">PubMed</span></a> <em>[The software is called <a href="http://trinityrnaseq.sourceforge.net/"><span style="text-decoration: underline;">Trinity</span></a>, and is available on Sourceforge.]</em></p><p>Comprehensive analysis of RNA-Seq data reveals extensive RNA editing in a human transcriptome. Peng et al, Nature Biotechnology 30:253 - 260, 2012. <span style="text-decoration: underline;"><a href="http://www.ncbi.nlm.nih.gov/pubmed/22327324">PubMed</a></span> <em>[Several comments on this paper question whether the reported differences are in fact evidence of editing or are simply sequencing errors - the authors stand by their conclusions, but the controversy demonstrates the importance of robust data analysis methods.] </em></p><p>Optimization of de novo transcriptome assembly from next-generation sequencing data. Surget-Groba &amp; Montoya-Burgos, Genome Res 20(10):1432-40, 2010. <a href="http://genome.cshlp.org/content/20/10/1432.long"><span style="text-decoration: underline;">Full Text</span></a></p><p>Rnnotator: an automated <em>de novo</em> transcriptome assembly pipeline from stranded RNA-Seq reads. Martin et al, BMC Genomics 11:663, 2010 <a href="http://www.biomedcentral.com/1471-2164/11/663"><span style="text-decoration: underline;">Full Text</span></a></p><p><em>De novo</em> assembly and analysis of RNA-seq data. Robertson et al, Nature Methods 7:909-912, 2010 <a href="http://www.nature.com/nmeth/journal/v7/n11/full/nmeth.1517.html"><span style="text-decoration: underline;">Full Text</span></a> <em>[describes Trans-ABySS, a pipeline to use the ABySS parallel assembler for de novo transcriptome analysis]</em></p><h3>Differential expression analysis</h3><p>R-SAP: a multi-threading computational pipeline for the characterization of high-throughput RNA-sequencing data. Mittal &amp; McDonald, Nucleic Acids Res, 2012 <span style="text-decoration: underline;"><a href="http://nar.oxfordjournals.org/content/early/2012/01/28/nar.gks047.long">Full Text</a></span></p><p>Targeted RNA sequencing reveals the deep complexity of the human transcriptome. Mercer et al, Nature Biotechnology 30:99 - 104, 2012 <span style="text-decoration: underline;"><a href="http://www.nature.com/nbt/journal/v30/n1/full/nbt.2024.html"> Publisher Website</a></span></p><p>Differential gene and transcript expression analysis of RNA-Seq experiments with TopHat and Cufflinks. Trapnell et al, Nature Protocols 7:562 - 578, 2012 <span style="text-decoration: underline;"><a href="http://www.nature.com/nprot/journal/v7/n3/full/nprot.2012.016.html"> Publisher Website</a></span></p><p>Characterization and improvement of RNA-Seq precision in quantitative transcript expression profiling. Łabaj et al, Bioinformatics 27:i383 - i391, 2011 <span style="text-decoration: underline;"><a href="http://bioinformatics.oxfordjournals.org/content/27/13/i383.full.pdf+html"> Full Text</a></span></p><p>Improving RNA-Seq expression estimates by correcting for fragment bias. Roberts et al, Genome Biol 12:R22, 2011 <span style="text-decoration: underline;"><a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3129672/">PubMed Central</a></span></p><p>Cloud-scale RNA-sequencing differential expression analysis with Myrna. Langmead et al, Genome Biol 11:R83, 2010 <a href="http://genomebiology.com/2010/11/8/R83"><span style="text-decoration: underline;">Full Text</span></a></p><p>From RNA-seq reads to differential expression results. Oshlack et al, Genome Biol 11(12):220, 2010 <a href="http://genomebiology.com/content/11/12/220"><span style="text-decoration: underline;">Full Text</span></a></p><p>DEGseq: an R package for identifying differentially expressed genes from RNA-seq data. Wang et al., Bioinformatics. 26(1):136-8. 2010 <a href="http://www.ncbi.nlm.nih.gov/pubmed/19855105"><span style="text-decoration: underline;"> PubMed</span></a></p><p>DEseq: Differential expression analysis for sequence count data. Anders and Huber, Genome Biology 11:R106, 2010 <a href="http://genomebiology.com/2010/11/10/R106"><span style="text-decoration: underline;">Full Text</span></a></p><p>edgeR: a Bioconductor package for differential expression analysis of digital gene expression data. Robinson et al., Bioinformatics 26(1):139-40 2010 <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2796818"> <span style="text-decoration: underline;">PubMedCentral</span></a></p><p>Two-stage Poisson model for testing RNA-seq data. Auer and Doerge, SAGMB 10(1), article 26 <a href="http://www.bepress.com/sagmb/vol10/iss1/art26/"><span style="text-decoration: underline;">Full Text</span></a></p><p>Experimental design, preprocessing, normalization and differential expression analysis of small RNA sequencing experiments. McCormick et al., Silence2(1):2, 2011 <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3055805"><span style="text-decoration: underline;">PubMedCentral</span></a></p><p>RNA-Seq gene expression estimation with read mapping uncertainty. Li et al, Bioinformatics 26:493-500, 2010 <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2820677">PubMedCentral</a> <em>[describes the RSEM software package]</em></p><h3>Comparing genomes and assemblies; variant detection<span style="text-decoration: underline;"> </span></h3><p>Versatile and open software for comparing large genomes. Kurtz et al, Genome Biol (5(2):R12, 2004. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC395750"><span style="text-decoration: underline;">PubMedCentral</span></a> <em>[describes the MUMmer software for full-genome alignment &amp; comparisons]</em></p><p>Searching for SNPs with cloud computing. Langmead et al, Genome Biol 10(11):R134, 2009 <a href="http://genomebiology.com/content/10/11/R134"><span style="text-decoration: underline;">Full Text</span></a></p><p>Calling SNPs without a reference sequence. Ratan et al, BMC Bioinformatics 11:130, 2010 <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2851604"><span style="text-decoration: underline;">PubMedCentral</span></a></p><p>Microindel detection in short-read sequence data. Krawitz et al, Bioinformatics 26(6):722-9, 2010. <a href="http://bioinformatics.oxfordjournals.org/content/26/6/722.long"><span style="text-decoration: underline;">Full Text</span></a></p><p>vipR: variant identification in pooled DNA using R. Altmann et al., Bioinformatics 27: i77-i84, 2011. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3117388"><span style="text-decoration: underline;">PubMedCentral</span></a></p><p>Geoseq: a tool for dissecting deep-sequencing datasets. Gurtowski et al, BMC Bioinformatics 11:506, 2010. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2972303/"><span style="text-decoration: underline;">PubMedCentral</span></a> <em>[Geoseq is a web service that allows searching deep sequencing datasets with a reference sequence of a gene of interest]</em></p><p>Detecting and annotating genetic variations using the HugeSeq pipeline. Lam et al, Nature Biotechnology 30:226 - 229, 2012 <span style="text-decoration: underline;"><a href="http://www.nature.com/nbt/journal/v30/n3/full/nbt.2134.html">Publisher Website</a></span>, <span style="text-decoration: underline;"><a href="http://hugeseq.snyderlab.org/">Home Page</a></span></p><p>Genome-wide LORE1 retrotransposon mutagenesis and high-throughput insertion detection in <em>Lotus japonicus</em>. Urbański et al, Plant J 64:731-741, 2012. <span style="text-decoration: underline;"><a href="http://onlinelibrary.wiley.com/doi/10.1111/j.1365-313X.2011.04827.x/abstract">Publisher Website</a></span> <em>[This paper describes a 2-dimensional pooling strategy with barcoding to allow use of Illumina sequencing to screen for retrotransposon insertion mutations, and includes a software package called FSTpoolit for analysis of the resulting sequence reads.]</em></p><h3>Genotyping by sequencing</h3><p>Genome-wide genetic marker discovery and genotyping using next-generation sequencing. Davey et al., Nat Rev Genet 12(7):499-510, 2011 <a href="http://www.ncbi.nlm.nih.gov/pubmed/21681211"><span style="text-decoration: underline;">PubMed</span></a> <em>[A review of methods available at the time]</em></p><p>A robust, simple genotyping-by-sequencing (GBS) approach for high diversity species. Elshire et al., PLoS One 6(5):e19379, 2011. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3087801"><span style="text-decoration: underline;">Full Text</span></a></p><p>Development of high-density genetic maps for barley and wheat using a novel two-enzyme genotyping-by-sequencing approach. Poland et al., PLoS One 7(2): e32253, 2012. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3289635/"><span style="text-decoration: underline;">Full Text</span></a></p><p>Double digest RADseq: an inexpensive method for de novo SNP discovery and genotyping in model and non-model species. Peterson et al, PLoS One 7(5):e37135, . 2012. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3365034/"><span style="text-decoration: underline;">Full Text</span></a></p><p>Imputation of unordered markers and the impact on genomic selection accuracy. Rutkowski et al, G3 3(3):427-39, 2013. <a href="http://www.g3journal.org/content/3/3/427.long"><span style="text-decoration: underline;">Full Text</span></a></p><p>Diversity Arrays Technology (DArT) and next-generation sequencing combined: genome-wide, high-throughput, highly informative genotyping for molecular breeding of <em>Eucalyptus</em>. Sansaloni et al., BMC Proceedings 5(Suppl 7):P54, 2011 <span style="text-decoration: underline;"><a href="http://www.biomedcentral.com/1753-6561/5/S7/P54">Full Text</a></span></p><p>High-throughput genotyping by whole-genome resequencing. Huang et al., Genome Res 19(6):1068-76, 2009. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2694477"><span style="text-decoration: underline;">Full Text</span></a></p><p>Multiplexed shotgun genotyping for rapid and efficient genetic mapping. Andolfatto et al. Genome Res 21(4):610-7, 2011. <a href="http://genome.cshlp.org/content/21/4/610.long"><span style="text-decoration: underline;">Full Text</span></a></p><h3>Restriction-site Associated DNA (RAD) markers</h3><p>Rapid SNP discovery and genetic mapping using sequenced RAD markers. Baird et al, PLoS One 3(10):e3376, 2008 <span style="text-decoration: underline;"><a href="http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0003376">Full Text</a></span></p><p>Linkage mapping and comparative genomics using next-generation RAD sequencing of a non-model organism. Baxter et al., PLoS One 6(4):e19315, 2011. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3082572"><span style="text-decoration: underline;">Full Text</span></a></p><p>Genome evolution and meiotic maps by massively parallel DNA sequencing: spotted gar, an outgroup for the teleost genome duplication. Amores et al, Genetics 188(4):799-808, 2011. <a href="http://www.ncbi.nlm.nih.gov/pubmed/21828280"><span style="text-decoration: underline;"> PubMed</span></a></p><p>Construction and application for QTL analysis of a Restriction-site Associated DNA (RAD) linkage map in barley. Chutimanitsakun et al, BMC Genomics 4; 12:4, 2011. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3023751"><span style="text-decoration: underline;">Full Text</span></a></p><p>RAD tag sequencing as a source of SNP markers in <em>Cynara cardunculus </em>L. Scaglione et al., BMC Genomics 13:3, 2012. <span style="text-decoration: underline;"><a href="http://www.biomedcentral.com/1471-2164/13/3">Full Text</a></span></p><p>Paired-end RAD-seq for de novo assembly and marker design without available reference. Willing et al., Bioinformatics 27(16):2187-93, 2011. <a href="http://bioinformatics.oxfordjournals.org/content/27/16/2187.long"><span style="text-decoration: underline;">Publisher Website</span></a></p><p>Local de novo assembly of RAD paired-end contigs using short sequencing reads. Etter et al., PLOS ONE 6(4): e18561, 2011. <a href="http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0018561"><span style="text-decoration: underline;">Full Text</span></a></p><p>Stacks: building and genotyping loci de novo from short-read sequences. Catchen et al., G3: Genes, Genomes, Genetics, 1:171-182, 2011. <span style="text-decoration: underline;"> Full Text</span>, <a href="http://creskolab.uoregon.edu/stacks/"><span style="text-decoration: underline;">Home Page</span></a></p><p>Rainbow: an integrated tool for efficient clustering and assembling RAD-seq reads. Chong et al, Bioinformatics 28(21):2732-7, 2012. <a href="http://bioinformatics.oxfordjournals.org/content/28/21/2732.long"> <span style="text-decoration: underline;">Publisher Website</span></a></p><p>UK RAD Sequencing Wiki page, with bibliography and RADTools software download <a href="https://www.wiki.ed.ac.uk/display/RADSequencing/Home"><span style="text-decoration: underline;">Home Page</span></a></p><h3>Workspace environments</h3><p><span style="text-decoration: underline;">Papers</span></p><p>Galaxy: a comprehensive approach for supporting accessible, reproducible, and transparent computational research in the life sciences. Goecks et al, Genome Biol 11(8):R86, 2010 <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2945788"><span style="text-decoration: underline;">PubMedCentral</span></a></p><p>Galaxy Cloudman: Delivering compute clusters. BMC Bioinformatics 11(Suppl. 12):S4, 2010 <a href="http://www.biomedcentral.com/content/pdf/1471-2105-11-S12-S4.pdf"><span style="text-decoration: underline;">Full Text</span></a></p><p><a href="http://www.broadinstitute.org/gsa/wiki/index.php/The_Genome_Analysis_Toolkit"><span style="text-decoration: underline;">The Genome Analysis Toolkit</span></a>: a MapReduce framework for analyzing next-generation DNA sequencing data. McKenna et al, Genome Res 20(9):1297-303, 2010. <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2928508"><span style="text-decoration: underline;">PubMedCentral</span></a></p><p>A framework for variation discovery and genotyping using next-generation DNA sequencing data. DePristo et al., Nat Genet 43(5):491-8, 2011. <a href="http://www.ncbi.nlm.nih.gov/pubmed/21478889"><span style="text-decoration: underline;"> PubMed</span></a></p><p><span style="text-decoration: underline;">Online resources</span></p><p>The <a href="http://cran.r-project.org/"><span style="text-decoration: underline;">R statistical computing</span></a> environment includes<a href="http://www.bioconductor.org/"><span style="text-decoration: underline;"> Bioconductor</span></a>, a specialized set of tools for analysis of microarray and high-throughput sequencing data. Introductory materials from on-line or short workshops are widely available online; examples are <span style="text-decoration: underline;"><a href="http://bioconductor.org/help/course-materials/2012/Evomics2012/Bioconductor-tutorial.pdf">Evomics2012 Bioconductor-tutorial.pdf</a></span>, and <a href="http://bcb.dfci.harvard.edu/%7Eaedin/courses/Bioconductor/"><span style="text-decoration: underline;">Intro to Bioconductor</span></a>. Materials from an advanced course on high-throughput genetic data analysis are at <span style="text-decoration: underline;"><a href="http://bioconductor.org/help/course-materials/2012/SeattleFeb2012/">Seattle 2012 materials</a></span>. Thomas Girke of UC-Riverside has written a very complete set of manuals describing the use of R and Bioconductor for analysis of genomic datasets, available at <a href="http://manuals.bioinformatics.ucr.edu/home/R_BioCondManual">R and Bioconductor Manuals</a>. <br /> <a href="http://cran.r-project.org/manuals.html"><span style="text-decoration: underline;">Manuals</span></a> and contributed <a href="http://cran.r-project.org/other-docs.html"><span style="text-decoration: underline;">documentation</span></a> for R are available at the R-project.org website, and video tutorials are also available on Youtube; those posted by Tutorlol are brief, clear, and to the point. <br /> Materials from a series of mini-courses in R taught in 2010 at UCLA are available:</p><ul>
<li><a href="http://scc.stat.ucla.edu/page_attachments/0000/0141/10S-basicR.pdf">Intro to programming and graphics</a></li>
<li><a href="http://scc.stat.ucla.edu/page_attachments/0000/0143/S10_RProgII.pdf">Data manipulation and functions</a></li>
<li><a href="http://scc.stat.ucla.edu/page_attachments/0000/0185/Graphics_course.pdf">Graphics for exploratory data analysis</a></li>
<li><a href="http://scc.stat.ucla.edu/page_attachments/0000/0147/20100503_IntroStats.pdf">Introductory statistics</a></li>
<li><a href="http://scc.stat.ucla.edu/page_attachments/0000/0188/reg_R_1_09S_slides.pdf">Linear regression</a></li>
</ul><p><a href="http://a-little-book-of-r-for-bioinformatics.readthedocs.org/en/latest/"> <span style="text-decoration: underline;">A Little Book of R for Bioinformatics</span></a> is an on-line resource with information and exercises to provide practice in bioinformatics analysis of DNA sequences and other biological data in R. <br /> Many books on specific topics in R programming are also available through Amazon or other vendors.</p><h3>Cloud computing resources</h3><p>The case for cloud computing in genome informatics. Lincoln Stein, Genome Biol. 11(5):207, 2010 <a href="http://www.ncbi.nlm.nih.gov/pubmed/20441614"><span style="text-decoration: underline;">Pubmed</span></a></p><p>Galaxy Cloudman: delivering cloud compute clusters. Afgan et al, BMC Bioinformatics <span style="text-decoration: underline;">11</span>(Suppl 12):S4, 2010 <a href="http://www.biomedcentral.com/1471-2105/11/S12/S4"><span style="text-decoration: underline;">Full Text</span></a></p><p><a href="http://cloudbiolinux.com/">CloudBioLinux</a> is an open-source project that provides a bioinformatics Linux system for cloud computing, pre-configured with a variety of software tools installed and ready to use.</p><p>A <a href="https://github.com/chapmanb/cloudbiolinux/blob/master/doc/intro/gettingStarted_CloudBioLinux.pdf?raw=true"><span style="text-decoration: underline;">tutorial</span></a> on getting started with CloudBioLinux on the Amazon Web Services Elastic Compute Cloud (EC2)</p><p><a href="http://userwww.service.emory.edu/%7Eeafgan/content/ppt/EnisAfgan_BOSC_2010.pdf"><span style="text-decoration: underline;">Deploying Galaxy on the Cloud</span></a>  slides from a presentation by Enis Afgan (Emory University) at the <br /> &nbsp;Bioinformatics Open Source Conference in Boston, July 2010</p><p>A <a href="http://screencast.g2.bx.psu.edu/cloud/"><span style="text-decoration: underline;"> screencast</span></a> that provides a step-by-step guide to starting a Galaxy cluster in the EC2 environment</p><p>A <a href="https://bitbucket.org/galaxy/galaxy-central/wiki/cloud"><span style="text-decoration: underline;">webpage</span></a> that has the same information in text form, and is the basis for the screencast</p><p>The iPlant Collaborative, an NSF-funded project to create computational resources for plant biology research, provides access to cloud computing resources through <span style="text-decoration: underline;"><a href="http://www.iplantcollaborative.org/discover/atmosphere">Atmosphere</a></span></p><p>SeqWare Query Engine: storing and searching sequence data in the cloud. OConnor et al, BMC Bioinformatics <strong>11</strong>(Suppl 12)<strong>:</strong>S2, 2010 <a href="http://www.biomedcentral.com/1471-2105/11/S12/S2"><span style="text-decoration: underline;">Full Text</span></a></p><p>An overview of the Hadoop/MapReduce/HBase framework and its current applications in bioinformatics. Taylor, BMC Bioinformatics <strong>11</strong>(Suppl 12)<strong>:</strong>S1, 2010 <a href="http://www.biomedcentral.com/1471-2105/11/S12/S1"><span style="text-decoration: underline;">Full Text</span></a></p><h3>Links to Linux command-line tutorials and resources</h3><p>Tutorials for AWK, a powerful tool for handling data tables</p><ul>
<li>A set of <a href="http://people.bu.edu/scottm/AWK.NOTES"><span style="text-decoration: underline;">awk notes</span></a> from Boston University</li>
<li>Bruce Barnett's <a href="http://www.grymoire.com/Unix/Awk.html"><span style="text-decoration: underline;">awk tutorial</span></a></li>
<li>Greg Goebel's <a href="http://www.vectorsite.net/tsawk.html"><span style="text-decoration: underline;">awk tutorial</span></a></li>
<li><a href="http://teaching.software-carpentry.org/2013/01/16/1433/"><span style="text-decoration: underline;">Executing an awk command from R</span></a> to simplify data exploratory analysis, from Lex Nederbragt</li>
</ul><p>Tutorials for bash shell scripting</p><ul>
<li>A <a href="http://www.linuxconfig.org/bash-scripting-tutorial"><span style="text-decoration: underline;">tutorial</span></a> at linuxconfig.org</li>
<li>A <a href="http://www.hypexr.org/bash_tutorial.php"><span style="text-decoration: underline;">Getting Started With Bash</span></a> tutorial at hypexr.org</li>
<li>Mendel Cooper's <a href="http://tldp.org/LDP/abs/html/"><span style="text-decoration: underline;">Advanced Bash Shell-Scripting Guide</span></a></li>
</ul><p>Tutorials for sed, the command-line stream editor</p><ul>
<li>A <a href="http://www.panix.com/%7Eelflord/unix/sed.html"><span style="text-decoration: underline;">tutorial</span></a> at Rutgers</li>
<li>Peteris Krumins claims to have the <a href="http://www.catonmat.net/blog/worlds-best-introduction-to-sed/"><span style="text-decoration: underline;"> World's Best Introduction to Sed</span></a>; take a look and judge for yourself.</li>
<li>Bruce Barnett's <a href="http://www.grymoire.com/Unix/Sed.html"><span style="text-decoration: underline;">sed tutorial</span></a>.</li>
</ul><h3>Links to other useful sites</h3><p>The<a href="http://seqanswers.com/"><span style="text-decoration: underline;"> SEQanswers</span></a> online community has forums on several topics related to sequencing; the bioinformatics forum is the most active.</p><p>The SEQanswers <span style="text-decoration: underline;"><a href="http://seqanswers.com/wiki/Software">Software Wiki</a></span> is a list of software for analysis of sequencing data</p><p><a href="http://biostar.stackexchange.com/">Biostar</a> is another online community for questions and answers on bioinformatics and computational genomics.</p><p>Information on file formats used by the University of California - Santa Cruz Genome Browser is on the <a href="http://genome.ucsc.edu/FAQ/FAQformat"><span style="text-decoration: underline;"> FAQ list</span></a></p><p>A manual for the Integrated Genome Browser visualization tool is <a href="http://wiki.transvar.org/confluence/display/igbman/Home"><span style="text-decoration: underline;">here</span></a></p><p>Course materials for a short course entitled <a href="http://bioconductor.org/help/course-materials/2010/SeattleIntro/"><span style="text-decoration: underline;">Introduction to R and Bioconductor</span></a>, held in Seattle in Dec 2010</p><p><a href="http://great.stanford.edu/"><span style="text-decoration: underline;">Genomic Regions Enrichment of Annotations Tool</span></a> - A web service to test for over-representation of specific ontology categories among genes near ChIP-seq peaks</p><p><a href="http://www.animalgenome.org/bioinfo/resources/nextgensoft.html"><span style="text-decoration: underline;">Next-gen-seq software</span></a> - a list of software packages, both commercial and open-source, related to analysis of deep sequencing datasets</p><p><a href="http://www.cbcb.umd.edu/software/"><span style="text-decoration: underline;">Software</span></a> from the Center for Bioinformatics and Computational Biology, University of Maryland - many useful programs, all open-source</p><p><a href="http://bioinformatics.psb.ugent.be/plaza/"><span style="text-decoration: underline;"> PLAZA</span></a>: a comparative genomics resource to study gene and genome evolution in plants; described by Proost et al, Plant Cell 21:3718, 2010 <a href="http://www.plantcell.org/content/21/12/3718.full"><span style="text-decoration: underline;">Full Text</span></a></p><p>The European Bioinformatics Institute provides tools <a href="http://www.ebi.ac.uk/Tools/rcloud/"><span style="text-decoration: underline;">ArrayExpressHTS</span><span style="text-decoration: underline;"> and R-Cloud</span></a> for analysis of transcriptome data</p>]]></description>
	<dc:creator>Rahul Nayak</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/news/view/39606/amity-university-bioinformatics-summer-program-kolkata</guid>
	<pubDate>Tue, 11 Jun 2019 21:27:10 -0500</pubDate>
	<link>https://bioinformaticsonline.com/news/view/39606/amity-university-bioinformatics-summer-program-kolkata</link>
	<title><![CDATA[Amity University Bioinformatics Summer Program - Kolkata]]></title>
	<description><![CDATA[<p>Registrations are now open for the 2019 Summer Bioinformatics Training program at Amity University, Kolkata. The program will focus on introductory topics for life science students. We will review important history, topics and challenges bioinformatics can help address in the context of basic research, discovery and industry.</p><p>Read more: https://edu.t-bio.info/amity-university-summer-bioinformatics-program-registrations-are-open/</p>]]></description>
	<dc:creator>eliabrodsky</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/35621/bbtools-for-bioinformatician</guid>
	<pubDate>Thu, 15 Feb 2018 16:45:52 -0600</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/35621/bbtools-for-bioinformatician</link>
	<title><![CDATA[BBTools for bioinformatician !]]></title>
	<description><![CDATA[<p><span></span><br /><strong>BBMap.sh</strong><br /><br /></p><ul>
<li><strong>Mapping Nanopore reads</strong></li>
</ul><p><br /><span>BBMap.sh has a length cap of 6kbp. Reads longer than this will be broken into 6kbp pieces and mapped independently.</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ mapPacBio.sh -Xmx20g k=7 in=reads.fastq ref=reference.fa maxlen=1000 minlen=200 idtag ow int=f qin=33 out=mapped1.sam minratio=0.15 ignorequality slow ordered maxindel1=40 maxindel2=400</pre></div><p><br /><span>The "maxlen" flag shreds them to a max length of 1000; you can set that up to 6000. But I found 1000 gave a higher mapping rate.&nbsp;&nbsp;</span><br /><br /></p><ul>
<li><strong>Using Paired-end and single-end reads at the same time</strong></li>
</ul><p><br /><span>BBMap itself can only run single-ended or paired-ended in a single run, but it has a wrapper that can accomplish it, like this:</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ bbwrap.sh in1=read1.fq,singletons.fq in2=read2.fq,null out=mapped.sam append</pre></div><p><span>This will write all the reads to the same output file but only print the headers once. I have not tried that for bam output, only sam output</span><br /><br /><span>Note about alignment stats: For paired reads, you can find the total percent mapped by adding the read 1 percent (where it says "mapped: N%") and read 2 percent, then dividing by 2. The different columns tell you the count/percent of each event. Considering the cigar strings from alignment, "Match Rate" is the number of symbols indicating a reference match (=) and error rate is the number indicating substitution, insertion, or deletion (X, I, D).</span><br /><br /></p><ul>
<li><strong>Exact matches when mapping small reads (e.g. miRNA)</strong></li>
</ul><p><br /><span>When mapping small RNA's with BBMap use the following flags to report only perfect matches.</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">ambig=all vslow perfectmode maxsites=1000</pre></div><p><span>It should be very fast in that mode (despite the vslow flag). Vslow mainly removes masking of low-complexity repetitive kmers, which is not usually a problem but can be with extremely short sequences like microRNAs.</span></p><ul>
<li><strong>Important note about BBMap alignments</strong></li>
</ul><p><br /><span>BBMap is always nondeterministic when run in paired-end mode with multiple threads, because the insert-size average is calculated on a per-thread basis, which affects mapping; and which reads are assigned to which thread is nondeterministic. The only way to avoid that would be to restrict it to a single thread (threads=1), or map the reads as single-ended and then fix pairing afterward:</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">bbmap.sh in=reads.fq outu=unmapped.fq int=f
repair.sh in=unmapped.fq out=paired.fq fint outs=singletons.fq</pre></div><p><span>In this case you'd want to only keep the paired output.&nbsp;</span><br /><br /><span>BBSplit is based on BBMap, so it is also nondeterministic in paired mode with multiple threads. BBDuk and Seal (which can be used similarly to BBSplit) are always deterministic.&nbsp;</span><br /><br /><span>--------------------------------------------------------</span><br /><br /><strong>Reformat.sh</strong></p><ul>
<li><strong>Count k-mers/find unknown primers</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ reformat.sh in=reads.fq out=trimmed.fq ftr=19</pre></div><p><span>This will trim all but the first 20 bases (all bases after position 19, zero-based).</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ kmercountexact.sh in=trimmed.fq out=counts.txt fastadump=f mincount=10 k=20 rcomp=f</pre></div><p><span>This will generate a file containing the counts of all 20-mers that occurred at least 10 times, in a 2-column format that is easy to sort in Excel.&nbsp;</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">ACCGTTACCGTTACCGTTAC	100
AAATTTTTTTCCCCCCCCCC	85</pre></div><p><span>...etc. If the primers are 20bp long, they should be pretty obvious.&nbsp;&nbsp;</span></p><ul>
<li><strong>Convert SAM format from 1.4 to 1.3 (required for many programs)</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ reformat.sh in=reads.sam out=out.sam sam=1.3</pre></div><ul>
<li><strong>Removing N basecalls</strong></li>
</ul><p><br /><span>You can use BBDuk or Reformat with "qtrim=rl trimq=1". That will only trim trailing and leading bases with Q-score below 1, which means Q0, which means N (in either fasta or fastq format). The BBMap package automatically changes q-scores of Ns that are above 0 to 0 and called bases with q-scores below 2 to 2, since occasionally some Illumina software versions produces odd things like a handful of Q0 called bases or Ns with Q&gt;0, neither of which make any sense in the Phred scale.</span></p><ul>
<li><strong>Sampling reads</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ reformat.sh in=reads.fq out=sampled.fq sample=3000</pre></div><div><div>Code:</div><pre dir="ltr">To sample 10% of the reads:
reformat.sh in1=reads1.fq in2=reads2.fq out1=sampled1.fq out2=sampled2.fq samplerate=0.1

or more concisely:
reformat.sh in=reads#.fq out=sampled#.fq samplerate=0.1

and for exact sampling:
reformat.sh in=reads#.fq out=sampled#.fq samplereadstarget=100k</pre></div><ul>
<li><strong>Changing fasta headers</strong></li>
</ul><p><br /><span>Remove anything after the first space in fasta header.&nbsp;</span><br /><br /></p><div><div>Code:</div><pre dir="ltr"> reformat.sh in=sequences.fasta out=renamed.fasta trd</pre></div><p><span>"trd" stands for "trim read description" and will truncate everything after the first whitespace.</span></p><ul>
<li><strong>Extract reads from a sam file</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ reformat.sh in=reads.sam out=reads.fastq</pre></div><ul>
<li><strong>Verify pairing and optionally de-interleave the reads</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ reformat.sh in=reads.fastq verifypairing</pre></div><ul>
<li><strong>Verify pairing if the reads are in separate files</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ reformat.sh in1=r1.fq in2=r2.fq vpair</pre></div><p><span>If that completes successfully and says the reads were correctly paired, then you can simply de-interleave reads into two files like this:</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ reformat.sh in=reads.fastq out1=r1.fastq out2=r2.fastq</pre></div><ul>
<li><strong>Base quality histograms</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ reformat.sh in=reads.fq qchist=qchist.txt</pre></div><p><span>That stands for "quality count histogram".&nbsp;</span></p><ul>
<li><strong>Filter SAM/BAM file by read length</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ reformat.sh in=x.sam out=y.sam minlength=50 maxlength=200</pre></div><ul>
<li><strong>Filter SAM/BAM file to detect/filter spliced reads</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ reformat.sh in=mapped.bam out=filtered.bam maxdellen=50</pre></div><p><span>You can set "maxdellen" to whatever length deletion event you consider the minimum to signify splicing, which depends on the organism.</span><br /><span>-------------------------------------------------------------</span><br /><strong>Repair.sh</strong></p><ul>
<li><strong>"Re-pair" out-of-order reads from paired-end data files</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ repair.sh in1=r1.fq.gz in2=r2.fq.gz out1=fixed1.fq.gz out2=fixed2.fq.gz outsingle=singletons.fq.gz</pre></div><p><span>--------------------------------------------------------------</span><br /><strong>BBMerge.sh</strong><br /><br /><span>BBMerge now has a new flag - "outa" or "outadapter". This allows you to automatically detect the adapter sequence of reads with short insert sizes, in case you don't know what adapters were used. It works like this:</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ bbmerge.sh in=reads.fq outa=adapters.fa reads=1m</pre></div><p><span>Of course, it will only work for paired reads! The output fasta file will look like this:</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">&gt;Read1_adapter
GATCGGAAGAGCACACGTCTGAACTCCAGTCACATCACGATCTCGTATGCCGTCTTCTGCTTG
&gt;Read2_adapter
GATCGGAAGAGCACACGTCTGAACTCCAGTCACCGATGTATCTCGTATGCCGTCTTCTGCTTG</pre></div><p><span>If you have multiplexed things with different barcodes in the adapters, the part with the barcode will show up as Ns, like this:</span><br /><br /><span>GATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG&nbsp;&nbsp;</span><br /><br /><span>Note: For BBMerge with micro-RNA, you need to add the flag&nbsp;</span><strong>mininsert=17</strong><span>. The default is 35, which is too long for micro-RNA libraries.&nbsp;</span></p><ul>
<li><strong>Identifying adapters</strong></li>
</ul><p><span>If you have paired reads, and enough of the reads have inserts shorter than read length, you can identify adapter sequences with BBMerge, like this (they will be printed to adapters.fa):</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ bbmerge.sh in1=r1.fq in2=r2.fq outa=adapters.fa</pre></div><p><br /><span>-----------------------------------------------------------------</span><br /><br /><strong>BBDuk.sh</strong><br /><br /><span>Note: BBDuk is strictly deterministic on a per-read basis, however it does by default reorder the reads when run multithreaded. You can add the flag "ordered" to keep output reads in the same order as input reads</span></p><ul>
<li><strong>Finding reads with a specific sequence at the beginning of read</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ bbduk.sh -Xmx1g in=reads.fq outm=matched.fq outu=unmatched.fq restrictleft=25 k=25 literal=AAAAACCCCCTTTTTGGGGGAAAAA</pre></div><p><span>In this case, all reads starting with "AAAAACCCCCTTTTTGGGGGAAAAA" will end up in "matched.fq" and all other reads will end up in "unmatched.fq". Specifically, the command means "look for 25-mers in the leftmost 25 bp of the read", which will require an exact prefix match, though you can relax that if you want.</span><br /><br /><span>So you could bin all the reads with your known sequence, then look at the remaining reads to see what they have in common. You can do the same thing with the tail of the read using "restrictright" instead, though you can't use both restrictions at the same time.&nbsp;&nbsp;</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ bbduk.sh in=reads.fq outm=matched.fq literal=NNNNNNCCCCGGGGGTTTTTAAAAA k=25 copyundefined</pre></div><p><span>With the "copyundefined" flag, a copy of each reference sequence will be made representing every valid combination of defined letter. So instead of increasing memory or time use by 6^75, it only increases them by 4^6 or 4096 which is completely reasonable, but it only allows substitutions at predefined locations. You can use the "copyundefined", "hdist", and "qhdist" flags together for a lot of flexibility - for example, hdist=2 qhdist=1 and 3 Ns in the reference would allow a hamming distance of 6 with much lower resource requirements than hdist=6. Just be sure to give BBDuk as much memory as possible.</span></p><ul>
<li><strong>Removing illumina adapters (if exact adapters not known)</strong></li>
</ul><p><br /><span>If you're not sure which adapters are used, you can add "ref=truseq.fa.gz,truseq_rna.fa.gz,nextera.fa.gz" and get them all (this will increase the amount of overtrimming, though it should still be negligible).&nbsp;</span></p><ul>
<li><strong>Removing illumina control sequences/phiX reads</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">bbduk.sh in=trimmed.fq.gz out=filtered.fq.gz k=31 ref=artifacts,phix ordered cardinality</pre></div><ul>
<li><strong>Identify certain reads that contain a specific sequence</strong></li>
</ul><div><div>Code:</div><pre dir="ltr">$ bbduk.sh in=reads.fq out=unmatched.fq outm=matched.fq literal=ACGTACGTACGTACGTAC k=18 mm=f hdist=2</pre></div><p><span>Make sure "k" is set to the exact length of the sequence. "hdist" controls the number of substitutions allowed. "outm" gets the reads that match. By default this also looks for the reverse-complement; you can disable that with "rcomp=f".&nbsp;&nbsp;</span></p><ul>
<li><strong>Extract sequences that share kmers with your sequences with BBDuk</strong></li>
</ul><div><div>Code:</div><pre dir="ltr">$ bbduk.sh in=a.fa ref=b.fa out=c.fa mkf=1 mm=f k=31</pre></div><p><span>This will print to C all the sequences in A that share 100% of their 31-mers with sequences in B.&nbsp;</span><br /><br /></p><ul>
<li><strong>Extract sequences that contain N's with BBDuk</strong></li>
</ul><div><div>Code:</div><pre dir="ltr">bbduk.sh in=reads.fq out=readsWithoutNs.fq outm=readsWithNs.fq maxns=0</pre></div><p><span>If you have, say, 100bp reads and only want to separate reads containing all 100 Ns, change that to "maxns=99".</span><br /><br /><strong>General notes for BBDuk.sh</strong><span>&nbsp;</span><br /><br /><span>BBDuk can operate in one of 4 kmer-matching modes:</span><br /><span>Right-trimming (ktrim=r), left-trimming (ktrim=l), masking (ktrim=n), and filtering (default). But it can only do one at a time because all kmers are stored in a single table. It can still do non-kmer-based operations such as quality trimming at the same time.</span><br /><br /><span>BBDuk2 can do all 4 kmer operations at once and is designed for integration into automated pipelines where you do contaminant removal and adapter-trimming in a single pass to minimize filesystem I/O. Personally, I never use BBDuk2 from the command line. Both have identical capabilities and functionality otherwise, but the syntax is different.</span><br /><br /><span>------------------------------------------------------------------</span><br /><br /><strong>Randomreads.sh</strong></p><ul>
<li><strong>Generate random reads in various formats</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ randomreads.sh ref=genome.fasta out=reads.fq len=100 reads=10000</pre></div><p><span>You can specify paired reads, an insert size distribution, read lengths (or length ranges), and so forth. But because I developed it to benchmark mapping algorithms, it is specifically designed to give excellent control over mutations. You can specify the number of snps, insertions, deletions, and Ns per read, either exactly or probabilistically; the lengths of these events is individually customizable, the quality values can alternately be set to allow errors to be generated on the basis of quality; there's a PacBio error model; and all of the reads are annotated with their genomic origin, so you will know the correct answer when mapping.</span><br /><br /><span>Bear in mind that 50% of the reads are going to be generated from the plus strand and 50% from the minus strand. So, either a read will match the reference perfectly, OR its reverse-complement will match perfectly.</span><br /><br /><span>You can generate the same set of reads with and without SNPs by fixing the seed to a positive number, like this:</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ randomreads.sh maxsnps=0 adderrors=false out=perfect.fastq reads=1000 minlength=18 maxlength=55 seed=5

$ randomreads.sh maxsnps=2 snprate=1 adderrors=false out=2snps.fastq reads=1000 minlength=18 maxlength=55 seed=5</pre></div><p><span>[As of BBmap v. 36.59] rendomreads.sh gains the ability to simulate metagenomes.&nbsp;</span><br /><br /><span>coverage=X will automatically set "reads" to a level that will give X average coverage (decimal point is allowed).</span><br /><br /><span>metagenome will assign each scaffold a random exponential variable, which decides the probability that a read be generated from that scaffold. So, if you concatenate together 20 bacterial genomes, you can run randomreads and get a metagenomic-like distribution. It could also be used for RNA-seq when using a transcriptome reference.</span><br /><br /><span>The coverage is decided on a per-reference-sequence level, so if a bacterial assembly has more than one contig, you may want to glue them together first with fuse.sh before concatenating them with the other references.&nbsp;</span><br /><br /></p><ul>
<li><strong>Simulate a jump library</strong></li>
</ul><p><br /><span>You can simulate a 4000bp jump library from your existing data like this.</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ cat assembly1.fa assembly2.fa &gt; combined.fa
$ bbmap.sh ref=combined.fa
$ randomreads.sh reads=1000000 length=100 paired interleaved mininsert=3500 maxinsert=4500 bell perfect=1 q=35 out=jump.fq.gz</pre></div><p><span>--------------------------------------------------------------</span><br /><strong>Shred.sh</strong><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ shred.sh in=ref.fasta out=reads.fastq length=200</pre></div><p><span>The difference is that RandomReads will make reads in a random order from random locations, ensuring flat coverage on average, but it won't ensure 100% coverage unless you generate many fold depth. Shred, on the other hand, gives you exactly 1x depth and exactly 100% coverage (and is not capable of modelling errors). So, the use-cases are different.&nbsp;</span><br /><span>---------------------------------------------------------------</span><br /><strong>Demuxbyname.sh</strong></p><ul>
<li><strong>Demultiplex fastq files when the tag is present in the fastq read header (illumina)</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ demuxbyname.sh in=r#.fq out=out_%_#.fq prefixmode=f names=GGACTCCT+GCGATCTA,TAAGGCGA+TCTACTCT,...
outu=filename</pre></div><p><span>"Names" can also be a text file with one barcode per line (in exactly the format found in the read header). You do have to include all of the expected barcodes, though.</span><br /><br /><span>In the output filename, the "%" symbol gets replaced by the barcode; in both the input and output names, the "#" symbol gets replaced by 1 or 2 for read 1 or read 2. It's optional, though; you can leave it out for interleaved input/output, or specify in1=/in2=/out1=/out2= if you want custom naming.</span><br /><br /><span>----------------------------------------------------------------</span><br /><br /><strong>Readlength.sh</strong></p><ul>
<li><strong>Plotting the length distribution of reads</strong></li>
</ul><div><div>Code:</div><pre dir="ltr">$ readlength.sh in=file out=histogram.txt bin=10 max=80000</pre></div><p><span>That will plot the result in bins of size 10, with everything above 80k placed in the same bin. The defaults are set for relatively short sequences so if they are many megabases long you may need to add the flag "-Xmx8g" and increase "max=" to something much higher.</span><br /><br /><span>Alternatively, if these are assemblies and you're interested in continuity information (L50, N50, etc), you can run stats on each or statswrapper on all of them:</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">stats.sh in=file</pre></div><p><span>or</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">statswrapper.sh in=file,file,file,file&hellip;</pre></div><p><span>----------------------------------------------------------------</span><br /><strong>Filterbyname.sh</strong><br /><br /><span>By default, "filterbyname" discards reads with names in your name list, and keeps the rest. To include them and discard the others, do this:</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ filterbyname.sh in=003.fastq out=filter003.fq names=names003.txt include=t</pre></div><p><span>----------------------------------------------------------------</span><br /><strong>getreads.sh</strong><br /><br /><span>If you only know the number(s) of the fasta/fastq record(s) in a file (records start at 0) then you can use the following command to extract those reads in a new file.</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ getreads.sh in= id=&lt;number,number,number...&gt; out=</pre></div><p><span>The first read (or pair) has ID 0, the second read (or pair) has ID 1, etc.</span><br /><br /><span>Parameters:</span><br /><span>in= Specify the input file, or stdin.</span><br /><span>out= Specify the output file, or stdout.</span><br /><span>id= Comma delimited list of numbers or ranges, in any order.</span><br /><span>For example: id=5,93,17-31,8,0,12-13&nbsp;</span><br /><span>----------------------------------------------------------------</span><br /><strong>Splitsam.sh</strong></p><ul>
<li><strong>Splits a sam file into forward and reverse reads</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">splitsam.sh mapped.sam plus.sam minus.sam unmapped.sam
reformat.sh in=plus.sam out=plus.fq
reformat.sh in=minus.sam out=minus.fq rcomp</pre></div><p><span>----------------------------------------------------------------</span><br /><strong>BBSplit.sh</strong><br /><br /><span>BBSplit now has the ability to output paired reads in dual files using the # symbol. For example:</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ bbsplit.sh ref=x.fa,y.fa in1=read1.fq in2=read2.fq basename=o%_#.fq</pre></div><p><span>will produce ox_1.fq, ox_2.fq, oy_1.fq, and oy_2.fq</span><br /><br /><span>You can use the # symbol for input also, like "in=read#.fq", and it will get expanded into 1 and 2.&nbsp;&nbsp;</span><br /><br /><strong>Added feature:&nbsp;</strong><span>One can specify a directory for the "ref=" argument. If anything in the list is a directory, it will use all fasta files in that directory. They need a fasta extension, like .fa or .fasta, but can be compressed with an additional .gz after that. Reason this is useful is to use BBSplit is to have it split input into one output file per reference file.</span><br /><br /><br /><strong>NOTE: 1</strong><span>&nbsp;By default BBSplit uses fairly strict mapping parameters; you can get the same sensitivity as BBMap by adding the flags "minid=0.76 maxindel=16k minhits=1". With those parameters it is extremely sensitive.</span><br /><br /><strong>NOTE: 2</strong><span>&nbsp;BBSplit has different ambiguity settings for dealing with reads that map to multiple genomes. In any case, if the alignment score is higher to one genome than another, it will be associated with that genome only (this considers the combined scores of read pairs - pairs are always kept together). But when a read or pair has two identically-scoring mapping locations, on different genomes, the behavior is controlled by the "ambig2" flag - "ambig2=toss" will discard the read, "all" will send it to all output files, and "split" will send it to a separate file for ambiguously-mapped reads (one per genome to which it maps).</span><br /><br /><strong>NOTE: 3</strong><span>&nbsp;Zero-count lines are suppressed by default, but they should be printed if you include the flag "nzo=f" (nonzeroonly=false).&nbsp;</span><br /><br /><strong>NOTE: 4</strong><span>&nbsp;BBSplit needs multiple reference files as input; one per organism, or one for target and another for everything else. It only outputs one file per reference file.</span><br /><br /><span>Seal.sh, on the other hand, which is similar, can use a single concatenated file, as it (by default) will output one file per reference sequence within a concatenated set of references.&nbsp;</span><br /><span>--------------------------------------------------------------</span><br /><strong>Pileup.sh</strong></p><ul>
<li><strong>To generate transcript coverage stats</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ pileup.sh in=mapped.sam normcov=normcoverage.txt normb=20 stats=stats.txt</pre></div><p><span>That will generate coverage per transcript, with 20 lines per transcript, each line showing the coverage for that fraction of the transcript. "stats" will contain other information like the fraction of bases in each transcript that was covered.&nbsp;</span></p><ul>
<li><strong>To calculate physical coverage stats (region covered by paired-end reads)&nbsp;</strong></li>
</ul><p><span>BBMap has a "physcov" flag that allows it to report physical rather than sequenced coverage. It can be used directly in BBMap, or with pileup, if you already have a sam file. For example:</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ pileup.sh in=mapped.sam covstats=coverage.txt</pre></div><ul>
<li><strong>Calculating coverage of the genome</strong></li>
</ul><p><br /><span>Program will take sam or bam, sorted or unsorted.</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ pileup.sh in=mapped.sam out=stats.txt hist=histogram.txt</pre></div><p><span>stats.txt will contain the average depth and percent covered of each reference sequence; the histogram will contain the exact number of bases with a each coverage level. You can also get per-base coverage or binned coverage if you want to plot the coverage. It also generates median and standard deviation, and so forth.</span><br /><br /><span>It's also possible to generate coverage directly from BBMap, without an intermediate sam file, like this:</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ bbmap.sh in=reads.fq ref=reference.fasta nodisk covstats=stats.txt covhist=histogram.txt</pre></div><p><span>We use this a lot in situations where all you care about is coverage distributions, which is somewhat common in metagenome assemblies. It also supports most of the flags that pileup.sh supports, though the syntax is slightly different to prevent collisions. In each case you can see all the possible flags by running the shellscript with no arguments.</span></p><ul>
<li><strong>To bin aligned reads</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ pileup.sh in=mapped.sam out=stats.txt bincov=coverage.txt binsize=1000</pre></div><p><span>That will give coverage within each bin. For read density regardless of read length, add the "startcov=t" flag.&nbsp;&nbsp;</span><br /><br /><span>--------------------------------------------------------------</span><br /><strong>Dedupe.sh</strong><br /><br /><span>Dedupe ensures that there is at most one copy of any input sequence, optionally allowing contaminants (substrings) to be removed, and a variable hamming or edit distance to be specified. Usage:</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ dedupe.sh in=assembly1.fa,assembly2.fa out=merged.fa</pre></div><p><span>That will absorb exact duplicates and containments. You can use "hdist" and "edist" flags to allow mismatches, or get a complete list of flags by running the shellscript with no arguments.&nbsp;&nbsp;</span><br /><br /><span>Dedupe&nbsp;</span><span style="text-decoration: underline;">will merge assemblies</span><span>, but it&nbsp;</span><span style="text-decoration: underline;">will not produce consensus sequences or join overlapping reads</span><span>; it only removes sequences that are fully contained within other sequences (allowing the specified number of mismatches or edits).</span><br /><br /><span>Dedupe can remove duplicate reads from multiple files simultaneously, if they are comma-delimited (e.g. in=file1.fastq,file2.fastq,file3.fastq). And if you set the flag "uniqueonly=t" then ALL copies of duplicate reads will be removed, as opposed to the default behavior of leaving one copy of duplicate reads.</span><br /><br /><span>However, it does not care which file a read came from; in other words, it can't remove only reads that are duplicates across multiple files but leave the ones that are duplicates within a file. That can still be accomplished, though, like this:</span><br /><br /><span>1) Run dedupe on each sample individually, so now there are at most 1 copy of a read per sample.</span><br /><span>2) Run dedupe again on all of the samples together, with "uniqueonly=t". The only remaining duplicate reads will be the ones duplicated between samples, so that's all that will be removed.&nbsp;&nbsp;</span><br /><br /><span>--------------------------------------------------------------</span></p><ul>
<li><strong>Generate ROC curves from any aligner</strong></li>
</ul><p><br /><strong>[*]index the reference<br /><br /></strong></p><div><div>Code:</div><pre dir="ltr">$ bbmap.sh ref=reference.fasta</pre></div><p><br /><strong>[*]Generate random reads</strong><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ randomreads.sh reads=100000 length=100 out=synth.fastq maxq=35 midq=25 minq=15</pre></div><p><strong>[*]Map to produce a sam file</strong><br /><br /><span>...substitute this command with the appropriate one from your aligner of choice</span></p><div><div>Code:</div><pre dir="ltr">$ bbmap.sh in=synth.fq out=mapped.sam</pre></div><p><strong>[*]Generate ROC curve</strong><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ samtoroc.sh in=mapped.sam reads=100000</pre></div><p><span>--------------------------------------------------------------</span></p><ul>
<li><strong>Calculate heterozygous rate for sequence data</strong></li>
</ul><p><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ kmercountexact.sh in=reads.fq khist=histogram.txt peaks=peaks.txt</pre></div><p><span>You can examine the histogram manually, or use the "peaks" file which tells you the number of unique kmers in each peak on the histogram. For a diploid, the first peak will be the het peak, the second will be the homozygous peak, and the rest will be repeat peaks. The peak caller is not perfect, though, so particularly with noisy data I would only rely on it for the first two peaks, and try to quantify the higher-order peaks manually if you need to (which you generally don't).</span><br /><br /><span>-----------------------------------------------------------------</span></p><ul>
<li><strong>Compare mapped reads between two files</strong></li>
</ul><p><br /><span>To see how many mapped reads (can be mapped concordant or discordant, doesn't matter) are shared between the two alignment files and how many mapped reads are unique to one file or the other.</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ reformat.sh in=file1.sam out=mapped1.sam mappedonly
$ reformat.sh in=file2.sam out=mapped2.sam mappedonly</pre></div><p><span>That gets you the mapped reads only. Then:</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ filterbyname.sh in=mapped1.sam names=mapped2.sam out=shared.sam include=t</pre></div><p><span>...which gets you the set intersection;</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ filterbyname.sh in=mapped1.sam names=mapped2.sam out=only1.sam include=f
$ filterbyname.sh in=mapped2.sam names=mapped1.sam out=only2.sam include=f</pre></div><p><span>...which get you the set subtractions.&nbsp;&nbsp;</span><br /><br /><span>--------------------------------------------------------------</span><br /><br /><strong>BBrename.sh</strong></p><div><div>Code:</div><pre dir="ltr">$ bbrename.sh in=old.fasta out=new.fasta</pre></div><p><span>That will rename the reads as 1, 2, 3, 4, ... 222.</span><br /><br /><span>You can also give a custom prefix if you want. The input has to be text format, not .doc.&nbsp;&nbsp;</span><br /><br /><span>---------------------------------------------------------------------</span><br /><br /><strong>BBfakereads.sh</strong></p><ul>
<li><strong>Generating &ldquo;fake&rdquo; paired end reads from a single end read file</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ bfakereads.sh in=reads.fastq out1=r1.fastq out2=r2.fastq length=100</pre></div><p><span>That will generate fake pairs from the input file, with whatever length you want (maximum of input read length). We use it in some cases for generating a fake LMP library for scaffolding from a set of contigs. Read 1 will be from the left end, and read 2 will be reverse-complemented and from the right end; both will retain the correct original qualities. And " /1" " /2" will be suffixed after the read name.&nbsp;&nbsp;</span><br /><br /><span>------------------------------------------------------------------</span><br /><strong>Randomreads.sh</strong></p><ul>
<li><strong>Generate random reads</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ randomreads.sh ref=genome.fasta out=reads.fq len=100 reads=10000</pre></div><p><span>"seed=-1" will use a random seed; any other value will use that specific number as the seed</span><br /><br /><span>You can specify paired reads, an insert size distribution, read lengths (or length ranges), and so forth. But because I developed it to benchmark mapping algorithms, it is specifically designed to give excellent control over mutations. You can specify the number of snps, insertions, deletions, and Ns per read, either exactly or probabilistically; the lengths of these events is individually customizable, the quality values can alternately be set to allow errors to be generated on the basis of quality; there's a PacBio error model; and all of the reads are annotated with their genomic origin, so you will know the correct answer when mapping.</span><br /><br /><span>--------------------------------------------------------------------</span></p><ul>
<li><strong>Generate saturation curves to assess sequencing depth</strong></li>
</ul><p>&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ bbcountunique.sh in=reads.fq out=histogram.txt</pre></div><p><span>It works by pulling kmers from each input read, and testing whether it has been seen before, then storing it in a table.</span><br /><br /><span>The bottom line, "first", tracks whether the first kmer of the read has been seen before (independent of whether it is read 1 or read 2).</span><br /><br /><span>The top line, "pair", indicates whether a combined kmer from both read 1 and read 2 has been seen before. The other lines are generally safe to ignore but they track other things, like read1- or read2-specific data, and random kmers versus the first kmer.</span><br /><br /><span>It plots a point every X reads (configurable, default 25000).</span><br /><br /><span>In noncumulative mode (default), a point indicates "for the last X reads, this percentage had never been seen before". In this mode, once the line hits zero, sequencing more is not useful.</span><br /><br /><span>In cumulative mode, a point indicates "for all reads, this percentage had never been seen before", but still only one point is plotted per X reads.</span><br /><br /><span>-----------------------------------------------------------------</span><br /><strong>CalcTrueQuality.sh</strong><br /><br /><a href="http://seqanswers.com/forums/showthread.php?p=170904" target="_blank">http://seqanswers.com/forums/showthread.php?p=170904</a><br /><br /><span>In light of the quality-score issues with the NextSeq platform, and the possibility of future Illumina platforms (HiSeq 3000 and 4000) also using quantized quality scores, I developed it for recalibrating the scores to ensure accuracy and restore the full range of values.</span><br /><br /><span>-----------------------------------------------------------------</span><br /><br /><strong>BBMapskimmer.sh</strong><br /><br /><span>BBMap is designed to find the best mapping, and heuristics will cause it to ignore mappings that are valid but substantially worse. Therefore, I made a different version of it, BBMapSkimmer, which is designed to find all of the mappings above a certain threshold. The shellscript is bbmapskimmer.sh and the usage is similar to bbmap.sh or mapPacBio.sh. For primers, which I assume will be short, you may wish to use a lower than default K of, say, 10 or 11, and add the "slow" flag.</span><br /><br /><span>--------------------------------------------------------------</span><br /><br /><strong>msa.sh and curprimers.sh</strong><br /><br /><span>Quoted from Brian's response directly.</span><br /><br /><span>I also wrote another pair of programs specifically for working with primer pairs, msa.sh and cutprimers.sh. msa.sh will forcibly align a primer sequence (or a set of primer sequences) against a set of reference sequences to find the single best matching location per reference sequence - in other words, if you have 3 primers and 100 ref sequences, it will output a sam file with exactly 100 alignments - one per ref sequence, using the primer sequence that matched best. Of course you can also just run it with 1 primer sequence.</span><br /><br /><span>So you run msa twice - once for the left primer, and once for the right primer - and generate 2 sam files. Then you feed those into cutprimers.sh, which will create a new fasta file containing the sequence between the primers, for each reference sequence. We used these programs to synthetically cut V4 out of full-length 16S sequences.</span><br /><br /><span>I should say, though, that the primer sites identified are based on the normal BBMap scoring, which is not necessarily the same as where the primers would bind naturally, though with highly conserved regions there should be no difference.</span><br /><br /><span>------------------------------------------------------</span><br /><strong>testformat.sh</strong><br /><br /><strong>Identify type of Q-score encoding in sequence files</strong><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ testformat.sh in=seq.fq.gz
sanger    fastq    gz    interleaved    150bp</pre></div><p><span>--------------------------------------------------</span><br /><strong>kcompress.sh</strong><br /><br /><span>Newest member of BBTools. Identify constituent k-mers.&nbsp;</span><br /><a href="http://seqanswers.com/forums/showthread.php?t=63258" target="_blank">http://seqanswers.com/forums/showthread.php?t=63258</a><br /><br /><span>----------------------------------------------------</span><br /><strong>commonkmers.sh</strong><br /><br /><span>Find all k-mers for a given sequence.</span></p><div><div>Code:</div><pre dir="ltr">$ commonkmers.sh in=reads.fq out=kmers.txt k=4 count=t display=999</pre></div><p><span>Will produce output that looks like</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">MISEQ05:239:000000000-A74HF:1:2110:14788:23085	ATGA=8	ATGC=6	GTCA=6	AAAT=5	AAGC=5	AATG=5	AGCA=5	ATAA=5	ATTA=5	CAAA=5	CATA=5	CATC=5	CTGC=5	AACC=4	AACG=4	AAGA=4	ACAT=4	ACCA=4	AGAA=4	ATCA=4	ATGG=4	CAAG=4	CCAA=4	CCTC=4	CTCA=4	CTGA=4	CTTC=4	GAGC=4	GGTA=4	GTAA=4	GTTA=4	AAAA=3	AAAC=3	AAGT=3	ACCG=3	ACGG=3	ACTG=3	AGAT=3	AGCT=3	AGGA=3	AGTA=3	AGTC=3	CAGC=3	CATG=3	CGAG=3	CGGA=3	CGTC=3	CTAA=3	CTCC=3	CTTA=3	GAAA=3	GACA=3	GACC=3	GAGA=3	GCAA=3	GGAC=3	TCAA=3	TGCA=3	AAAG=2	AACA=2	AATA=2	AATC=2	ACAA=2	ACCC=2	ACCT=2	ACGA=2	ACGC=2	AGAC=2	AGCG=2	AGGC=2	CAAC=2	CAGG=2	CCGC=2	GCCA=2	GCTA=2	GGAA=2	GGCA=2	TAAA=2	TAGA=2	TCCA=2	TGAA=2	AAGG=1	AATT=1	ACGT=1	AGAG=1	AGCC=1	AGGG=1	ATAC=1	ATAG=1	ATTG=1	CACA=1	CACG=1	CAGA=1	CCAC=1	CCCA=1	CCGA=1	CCTA=1	CGAC=1	CGCA=1	CGCC=1	CGCG=1	CGTA=1	CTAC=1	GAAC=1	GCGA=1	GCGC=1	GTAC=1	GTGA=1	TTAA=1</pre></div><p><span>-----------------------------------------------------</span><br /><strong>Mutate.sh</strong><br /><br /><span>Simulate multiple mutants from a known reference (e.g.&nbsp;</span><em>E. coli</em><span>).</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">$ mutate.sh in=e_coli.fasta out=mutant.fasta id=99 
$ randomreads.sh ref=mutant.fasta out=reads.fq.gz reads=5m length=150 paired adderrors</pre></div><p><span>That will create a mutant version of E.coli with 99% identity to the original, and then generate 5 million simulated read pairs from the new genome. You can repeat this multiple times; each mutant will be different.</span><br /><br /><span>------------------------------------</span><br /><br /><strong>Partition.sh</strong><br /><br /><span>One can partition a large dataset with partition.sh into smaller subsets (example below splits data into 8 chunks).</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">partition.sh in=r1.fq in2=r2.fq out=r1_part%.fq out2=r2_part%.fq ways=8</pre></div><p><span>-----------------------------------</span><br /><strong>clumpify.sh</strong><br /><br /><span>If you are concerned about file size and want the files to be as small as possible, give Clumpify a try. It can reduce filesize by around 30% losslessly by reordering the reads. I've found that this also typically accelerates subsequent analysis pipelines by a similar factor (up to 30%). Usage:</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">clumpify.sh in=reads.fastq.gz out=clumped.fastq.gz</pre></div><div><div>Code:</div><pre dir="ltr">clumpify.sh in1=reads_R1.fastq.gz in2=reads_R2.fastq.gz out1=clumped_R1.fastq.gz out2=clumped_R2.fastq.gz</pre></div><ul>
<li><strong>Clumpify.sh can now mark/remove sequence duplicates (optical/PCR/otherwise) from NGS data</strong></li>
</ul><p><br /><span>This does NOT require alignments so it should prove more useful compared to Picard MarkDuplicates. Relevant options for clumpify.sh command are listed below.</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">dedupe=f optical=f (default)
Nothing happens with regards to duplicates.

dedupe=t optical=f
All duplicates are detected, whether optical or not.  All copies except one are removed for each duplicate.

dedupe=f optical=t
Nothing happens.

dedupe=t optical=t

Only optical duplicates (those with an X or Y coordinate within dist) are detected.  All copies except one are removed for each duplicate.
The allduplicates flag makes all copies of duplicates removed, rather than leaving a single copy.  But like optical, it has no effect unless dedupe=t.

Note: If you set "dupedist" to anything greater than 0, "optical" gets enabled automatically.</pre></div><p><span>-------------------------------------</span><br /><strong>fuse.sh</strong><br /><br /><span>Fuse will automatically reverse-complement read 2. Pad (N) amount can be adjusted as necessary. This will for example create a full size amplicon that can be used for alignments.</span><br /><br /></p><div><div>Code:</div><pre dir="ltr">fuse.sh in1=r1.fq in2=r2.fq pad=130 out=fused.fq fusepairs</pre></div>]]></description>
	<dc:creator>Surabhi Chaudhary</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/37957/base-a-practical-de-novo-assembler-for-large-genomes-using-long-ngs-reads</guid>
	<pubDate>Fri, 19 Oct 2018 07:25:21 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/37957/base-a-practical-de-novo-assembler-for-large-genomes-using-long-ngs-reads</link>
	<title><![CDATA[BASE: a practical de novo assembler for large genomes using long NGS reads]]></title>
	<description><![CDATA[<p><span>new&nbsp;</span><em>de novo</em><span>&nbsp;assembler called BASE. It enhances the classic seed-extension approach by indexing the reads efficiently to generate adaptive seeds that have high probability to appear uniquely in the genome. Such seeds form the basis for BASE to build extension trees and then to use reverse validation to remove the branches based on read coverage and paired-end information, resulting in high-quality consensus sequences of reads sharing the seeds. Such consensus sequences are then extended to contigs.</span></p><p>Address of the bookmark: <a href="https://github.com/dhlbh/BASE" rel="nofollow">https://github.com/dhlbh/BASE</a></p>]]></description>
	<dc:creator>Rahul Nayak</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/10741/managing-and-analyzing-next-generation-sequence-data</guid>
	<pubDate>Sat, 10 May 2014 06:28:06 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/10741/managing-and-analyzing-next-generation-sequence-data</link>
	<title><![CDATA[Managing and Analyzing Next-Generation Sequence Data]]></title>
	<description><![CDATA[<p>Centralized Bioinformatics Core Facilities provide shared resources for the computational and IT requirements of the investigators in their department or institution. As such, they must be able to effectively react to new types of experimental technology. Recently faced with an unprecedented flood of data generated by the next generation of DNA sequencers, these groups found it necessary to respond quickly and efficiently to the informatics and infrastructure demands. Centralized Facilities newly facing this challenge need to anticipate time and design considerations of necessary components, including infrastructure upgrades, staffing, and tools for data analyses and management ...</p>
<p>More at http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1000369</p><p>Address of the bookmark: <a href="http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1000369" rel="nofollow">http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1000369</a></p>]]></description>
	<dc:creator>Rahul Agarwal</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/11181/perl-one-liner-for-bioinformatician</guid>
	<pubDate>Fri, 30 May 2014 05:49:07 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/11181/perl-one-liner-for-bioinformatician</link>
	<title><![CDATA[Perl one-liner for bioinformatician !!!]]></title>
	<description><![CDATA[<p>With the emergence of NGS technologies, and sequencing data most of the bioinformaticians mung and wrangle around massive amounts of genomics text. There are several "standardized" file formats (FASTQ, SAM, VCF, etc.) and some tools for manipulating them (fastx toolkit, samtools, vcftools, etc.), there are still times where knowing a little bit of Perl onliner is extremely helpful.</p><p>Perl one-liners are small and awesome Perl programs that fit in a single line of code and they do one thing really well. These things include changing line spacing, numbering lines, doing calculations, converting and substituting text, deleting and printing certain lines, parsing logs, editing files in-place, doing statistics, carrying out system administration tasks, updating a bunch of files at once, and many more. Perl one-liners will make you the shell warrior. Anything that took you minutes to solve, will now take you seconds!<br /><br />perl -pe '$\="\n"'&nbsp; &nbsp;<br />#double space a file<br /><br />perl -pe '$_ .= "\n" unless /^$/' <br />#double space a file except blank lines<br /><br />perl -pe '$_.="\n"x7' <br />#7 space in a line.<br /><br />perl -ne 'print unless /^$/' <br />#remove all blank lines<br /><br />perl -lne 'print if length($_) &lt; 20' <br />#print all lines with length less than 20.<br /><br />perl -00 -pe '' <br />#If there are multiple spaces, delete all leaving one(make the file a single spaced file).<br /><br />perl -00 -pe '$_.="\n"x4' <br />#Expand single blank lines into 4 consecutive blank lines<br /><br />perl -pe '$_ = "$. $_"'<br />#Number all lines in a file<br /><br />perl -pe '$_ = ++$a." $_" if /./' <br />#Number only non-empty lines in a file<br /><br />perl -ne 'print ++$a." $_" if /./' <br />#Number and print only non-empty lines in a file<br /><br />perl -pe '$_ = ++$a." $_" if /regex/' <br />#Number only lines that match a pattern<br /><br />perl -ne 'print ++$a." $_" if /regex/' <br />#Number and print only lines that match a pattern<br /><br />perl -ne 'printf "%-5d %s", $., $_ if /regex/' <br />#Left align lines with 5 white spaces if matches a pattern (perl -ne 'printf "%-5d %s", $., $_' : for all the lines)<br /><br />perl -le 'print scalar(grep{/./}&lt;&gt;)' <br />#prints the total number of non-empty lines in a file<br /><br />perl -lne '$a++ if /regex/; END {print $a+0}' <br />#print the total number of lines that matches the pattern<br /><br />perl -alne 'print scalar @F' <br />#print the total number fields(words) in each line.<br /><br />perl -alne '$t += @F; END { print $t}' <br />#Find total number of words in the file<br /><br />perl -alne 'map { /regex/ &amp;&amp; $t++ } @F; END { print $t }' <br />#find total number of fields that match the pattern<br /><br />perl -lne '/regex/ &amp;&amp; $t++; END { print $t }' <br />#Find total number of lines that match a pattern<br /><br />perl -le '$n = 20; $m = 35; ($m,$n) = ($n,$m%$n) while $n; print $m' <br />#will calculate the GCD of two numbers.<br /><br />perl -le '$a = $n = 20; $b = $m = 35; ($m,$n) = ($n,$m%$n) while $n; print $a*$b/$m' <br />#will calculate lcd of 20 and 35.<br /><br />perl -le '$n=10; $min=5; $max=15; $, = " "; print map { int(rand($max-$min))+$min } 1..$n' <br />#Generates 10 random numbers between 5 and 15.<br /><br />perl -le 'print map { ("a".."z",&rdquo;0&rdquo;..&rdquo;9&rdquo;)[rand 36] } 1..8'<br />#Generates a 8 character password from a to z and number 0 &ndash; 9.<br /><br />perl -le 'print map { ("a",&rdquo;t&rdquo;,&rdquo;g&rdquo;,&rdquo;c&rdquo;)[rand 4] } 1..20'<br />#Generates a 20 nucleotide long random residue.<br /><br />perl -le 'print "a"x50'<br />#generate a string of &lsquo;x&rsquo; 50 character long<br /><br />perl -le 'print join ", ", map { ord } split //, "hello world"'<br />#Will print the ascii value of the string hello world.<br /><br />perl -le '@ascii = (99, 111, 100, 105, 110, 103); print pack("C*", @ascii)'<br />#converts ascii values into character strings.<br /><br />perl -le '@odd = grep {$_ % 2 == 1} 1..100; print "@odd"'<br />#Generates an array of odd numbers.<br /><br />perl -le '@even = grep {$_ % 2 == 0} 1..100; print "@even"'<br />#Generate an array of even numbers<br /><br />perl -lpe 'y/A-Za-z/N-ZA-Mn-za-m/' file <br />#Convert the entire file into 13 characters offset(ROT13)<br /><br />perl -nle 'print uc' <br />#Convert all text to uppercase:<br /><br />perl -nle 'print lc' <br />#Convert text to lowercase:<br /><br />perl -nle 'print ucfirst lc' <br />#Convert only first letter of first word to uppercas<br /><br />perl -ple 'y/A-Za-z/a-zA-Z/' <br />#Convert upper case to lower case and vice versa<br /><br />perl -ple 's/(\w+)/\u$1/g' <br />#Camel Casing<br /><br />perl -pe 's|\n|\r\n|' <br />#Convert unix new lines into DOS new lines:<br /><br />perl -pe 's|\r\n|\n|' <br />#Convert DOS newlines into unix new line<br /><br />perl -pe 's|\n|\r|' <br />#Convert unix newlines into MAC newlines:<br /><br />perl -pe '/regexp/ &amp;&amp; s/foo/bar/' <br />#Substitute a foo with a bar in a line with a regexp.</p><p>Reference/Sources:</p><p>http://genomics-array.blogspot.in/2010/11/some-unixperl-oneliners-for.html</p><p><a href="http://genomespot.blogspot.com/2013/08/a-selection-of-useful-bash-one-liners.html">http://genomespot.blogspot.com/2013/08/a-selection-of-useful-bash-one-liners.html</a></p><p><a href="http://biowize.wordpress.com/2012/06/15/command-line-magic-for-your-gene-annotations/">http://biowize.wordpress.com/2012/06/15/command-line-magic-for-your-gene-annotations/</a></p><p><a href="http://genomics-array.blogspot.com/2010/11/some-unixperl-oneliners-for.html">http://genomics-array.blogspot.com/2010/11/some-unixperl-oneliners-for.html</a></p><p><a href="http://bioexpressblog.wordpress.com/2013/04/05/split-multi-fasta-sequence-file/">http://bioexpressblog.wordpress.com/2013/04/05/split-multi-fasta-sequence-file/</a></p>]]></description>
	<dc:creator>Abhimanyu Singh</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/43254/quasr-quantification-and-annotation-of-short-reads-in-r</guid>
	<pubDate>Fri, 13 Aug 2021 07:44:05 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/43254/quasr-quantification-and-annotation-of-short-reads-in-r</link>
	<title><![CDATA[QuasR: Quantification and annotation of short reads in R]]></title>
	<description><![CDATA[<p>The <em><a href="https://bioconductor.org/packages/3.14/QuasR">QuasR</a></em> package (short for <em>Qu</em>antify and <em>a</em>nnotate <em>s</em>hort reads in <em>R</em>) integrates the functionality of several <strong>R</strong> packages (such as <em><a href="https://bioconductor.org/packages/3.14/IRanges">IRanges</a></em> <span>(Lawrence et al. 2013)</span> and <em><a href="https://bioconductor.org/packages/3.14/Rsamtools">Rsamtools</a></em>) and external software (e.g.&nbsp;<code>bowtie</code>, through the <em><a href="https://bioconductor.org/packages/3.14/Rbowtie">Rbowtie</a></em> package, and <code>HISAT2</code>, through the <em><a href="https://bioconductor.org/packages/3.14/Rhisat2">Rhisat2</a></em> package). The package aims to cover the whole analysis workflow of typical high throughput sequencing experiments, starting from the raw sequence reads, over pre-processing and alignment, up to quantification. A single <strong>R</strong> script can contain all steps of a complete analysis, making it simple to document, reproduce or share the workflow containing all relevant details.</p><p>Address of the bookmark: <a href="https://www.bioconductor.org/packages/devel/bioc/vignettes/QuasR/inst/doc/QuasR.html" rel="nofollow">https://www.bioconductor.org/packages/devel/bioc/vignettes/QuasR/inst/doc/QuasR.html</a></p>]]></description>
	<dc:creator>Neel</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/12206/bioinformatics-algorithms-tutorials</guid>
	<pubDate>Tue, 24 Jun 2014 00:10:45 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/12206/bioinformatics-algorithms-tutorials</link>
	<title><![CDATA[Bioinformatics algorithms tutorials]]></title>
	<description><![CDATA[<p>Useful bioinformatics tutorial, such as</p>
<p>De Bruijn Graphs for NGS Assembly<br>Algorithms for PacBio Reads<br>Software and Hardware Concepts for Bioinformatics<br>Finding us in Homolog.us (Search Algorithms)<br>NGS Genome and RNAseq Assembly - a Hands on Primer<br>Introduction to PERL, Python, R and C/C++ for Bioinformatics</p><p>Address of the bookmark: <a href="http://www.homolog.us/Tutorials/" rel="nofollow">http://www.homolog.us/Tutorials/</a></p>]]></description>
	<dc:creator>John Parker</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/12944/orione-%E2%80%93-a-web-based-framework-for-ngs-analysis-in-microbiology</guid>
	<pubDate>Wed, 23 Jul 2014 06:43:03 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/12944/orione-%E2%80%93-a-web-based-framework-for-ngs-analysis-in-microbiology</link>
	<title><![CDATA[Orione – a web-based framework for NGS analysis in microbiology]]></title>
	<description><![CDATA[<p>End-to-end NGS microbiology data analysis requires a diversity of tools covering bacterial resequencing, de novo assembly, scaffolding, bacterial RNA-Seq, gene annotation and metagenomics. However, the construction of computational pipelines that use different software packages is difficult due to a lack of interoperability, reproducibility, and transparency. To overcome these limitations researchers at <a href="http://www.crs4.it/" target="_blank">CRS4</a>, Italy have developed Orione, a Galaxy-based framework consisting of publicly available research software and specifically designed pipelines to build complex, reproducible workflows for NGS microbiology data analysis. Enabling microbiology researchers to conduct their own custom analysis and data manipulation without software installation or programming, Orione provides new opportunities for data-intensive computational analyses in microbiology and metagenomics.</p>
<p>Reference</p>
<p>Cuccuru G1, Orsini M, Pinna A, Sbardellati A, Soranzo N, Travaglione A, Uva P, Zanetti G, Fotia G. (2014)<strong> Orione, a web-based framework for NGS analysis in microbiology.</strong> <em>Bioinformatics</em> [Epub ahead of print]. [<a href="http://bioinformatics.oxfordjournals.org/content/early/2014/03/10/bioinformatics.btu135.long" target="_blank">article</a>]</p><p>Address of the bookmark: <a href="http://orione.crs4.it/" rel="nofollow">http://orione.crs4.it/</a></p>]]></description>
	<dc:creator>Martin Jones</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/news/view/19090/deeptools</guid>
	<pubDate>Sat, 08 Nov 2014 15:02:08 -0600</pubDate>
	<link>https://bioinformaticsonline.com/news/view/19090/deeptools</link>
	<title><![CDATA[deepTools]]></title>
	<description><![CDATA[<p>deepTools addresses the challenge of handling the large amounts of data that are now routinely generated from DNA sequencing centers. To do so, deepTools contains useful modules to process the mapped reads data to create coverage files in standard bedGraph and bigWig file formats. By doing so, deepTools allows the creation of normalized coverage files or the comparison between two files (for example, treatment and control). Finally, using such normalized and standardized files, multiple visualizations can be created to identify enrichments with functional annotations of the genome.<br /><br />Publicaton: http://nar.oxfordjournals.org/content/early/2014/05/05/nar.gku365.full<br /><br />Source Code and Wiki: https://github.com/fidelram/deepTools/wiki<br /><br />Galaxy Tool Shed repository: http://toolshed.g2.bx.psu.edu/view/bgruening/deeptools<br /><br />and example Galaxy workflows: http://toolshed.g2.bx.psu.edu/view/bgruening/deeptools_workflows</p>]]></description>
	<dc:creator>Martin Jones</dc:creator>
</item>

</channel>
</rss>