<?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/33955?offset=10</link>
	<atom:link href="https://bioinformaticsonline.com/related/33955?offset=10" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/35041/seal-sequence-alignment-evaluation-suite</guid>
	<pubDate>Wed, 03 Jan 2018 05:05:46 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/35041/seal-sequence-alignment-evaluation-suite</link>
	<title><![CDATA[Seal: SEquence ALignment evaluation suite]]></title>
	<description><![CDATA[<p><span>Seal</span>&nbsp;is a comprehensive sequencing simulation and alignment tool evaluation suite. This software (implemented in Java) provides several utilities that can be used to evaluate alignment algorithms, including:</p>
<ul>
<li>Reading a pre-existing reference genome from one or more FASTA files.</li>
<li>Alternatively, generating an artificial reference genome based on input parameters (length, repeat count, repeat length, repeat variability rate).</li>
<li>Simulating reads from random locations in the genome based on input parameters of read length, coverage, sequencing error rate, and indel rate.</li>
<li>Applying alignment tools to the genome and the reads through a standardized interface.</li>
<li>Parsing the output of the alignment tool and calculating the number of reads that were correctly or incorrectly mapped.</li>
<li>Computing run times and measures of accuracy.</li>
</ul>
<p><span>Seal</span>&nbsp;has interfaces to evaluate the following software packages:</p>
<ul>
<li>Bowtie</li>
<li>BWA</li>
<li>MAQ</li>
<li>mrFAST</li>
<li>mrsFAST</li>
<li>Novoalign</li>
<li>SHRiMP</li>
<li>SOAPv2</li>
</ul><p>Address of the bookmark: <a href="http://compbio.case.edu/seal/" rel="nofollow">http://compbio.case.edu/seal/</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/36921/breakpointer-using-local-mapping-artifacts-to-support-sequence-breakpoint-discovery-from-single-end-reads</guid>
	<pubDate>Tue, 12 Jun 2018 12:41:10 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/36921/breakpointer-using-local-mapping-artifacts-to-support-sequence-breakpoint-discovery-from-single-end-reads</link>
	<title><![CDATA[Breakpointer: using local mapping artifacts to support sequence breakpoint discovery from single-end reads]]></title>
	<description><![CDATA[Breakpointer is a fast tool for locating sequence breakpoints from the alignment of single end reads (SE) produced by next generation sequencing (NGS). It adopts a heuristic method in searching for local mapping signatures created by insertion/deletions (indels) or more complex structural variants(SVs).<p>Address of the bookmark: <a href="https://github.com/ruping/Breakpointer" rel="nofollow">https://github.com/ruping/Breakpointer</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/videolist/watch/2759/dynamic-programming-alignment</guid>
	<pubDate>Thu, 22 Aug 2013 09:38:28 -0500</pubDate>
	<link>https://bioinformaticsonline.com/videolist/watch/2759/dynamic-programming-alignment</link>
	<title><![CDATA[Dynamic Programming Alignment]]></title>
	<description><![CDATA[<iframe width="" height="" src="https://www.youtube-nocookie.com/embed/EWJnDMKBEv0" frameborder="0" allowfullscreen></iframe>lecture 9, Chem. C100, Spring 2013, UCLA]]></description>
	
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/44616/basics-of-blast-programs</guid>
	<pubDate>Fri, 26 Jul 2024 06:04:26 -0500</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/44616/basics-of-blast-programs</link>
	<title><![CDATA[Basics of BLAST Programs !]]></title>
	<description><![CDATA[<p>The Basic Local Alignment Search Tool (BLAST) is a powerful bioinformatics program used to compare an input sequence (such as DNA, RNA, or protein sequences) against a database of sequences to find regions of similarity. Developed by the National Center for Biotechnology Information (NCBI), BLAST is widely used for identifying species, finding functional and evolutionary relationships between sequences, and predicting the function of novel sequences.</p><p>Key Features of BLAST:<br />1. Sequence Comparison: BLAST searches for local alignments between the query sequence and sequences in a database. It identifies regions of similarity, which can help infer functional and evolutionary relationships.</p><p>2. Speed and Efficiency: BLAST uses heuristic algorithms, making it faster than exhaustive search methods, suitable for large-scale database searches.</p><p>3. Versatility: There are several versions of BLAST for different types of sequence comparisons:<br /> - blastn: Compares a nucleotide query sequence against a nucleotide sequence database.<br /> - blastp: Compares a protein query sequence against a protein sequence database.<br /> - blastx: Compares a nucleotide query sequence translated in all reading frames against a protein sequence database.<br /> - tblastn: Compares a protein query sequence against a nucleotide sequence database translated in all reading frames.<br /> - tblastx: Compares the six-frame translations of a nucleotide query sequence against the six-frame translations of a nucleotide sequence database.</p><p>4. Scoring and E-value: BLAST results are scored based on the quality and length of the alignments. The E-value (expect value) indicates the number of alignments one can expect to find by chance, with lower E-values representing more significant matches.</p><p>5. Output Formats: BLAST provides results in various formats, including plain text, HTML, XML, and JSON, making it adaptable for different types of analyses and integrations with other tools.</p><p>Applications of BLAST:<br />- Genomic Research: Identifying genes, understanding genetic diversity, and mapping genome sequences.<br />- Protein Function Prediction: Inferring the function of unknown proteins by comparing them to known protein sequences.<br />- Evolutionary Studies: Exploring evolutionary relationships between organisms by comparing their genetic material.<br />- Medical Research: Identifying pathogens, understanding disease mechanisms, and developing treatments by comparing sequences of interest.</p><p>Overall, BLAST is an essential tool in bioinformatics, offering a reliable and efficient way to analyze and interpret biological sequence data.</p>]]></description>
	<dc:creator>BioStar</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/44508/a-web-based-tool-for-sequence-alignment-statistics-and-innovative-visualization</guid>
	<pubDate>Thu, 04 Apr 2024 01:44:50 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/44508/a-web-based-tool-for-sequence-alignment-statistics-and-innovative-visualization</link>
	<title><![CDATA[A web-based tool for sequence alignment statistics and innovative visualization]]></title>
	<description><![CDATA[<p>AlignStatPlot, a new R package and online tool that is well-documented and easy-to usefor MSA and post-MSA analysis. This tool performs both traditional and cutting-edge analy-ses on sequencing data and generates new visualisation methods for MSA results. Whencompared to currently available tools, AlignStatPlot provides a robust ability to handle andvisualise diversity data, while the online version will save time and encourage researchersto focus on explaining their findings. It is a simple tool that can be used in conjunction withpopulation genetics software (PDF) AlignStatPlot: An R package and online tool for robust sequence alignment statistics and innovative visualization of big data.</p><p>Address of the bookmark: <a href="https://bioinformatics.um6p.ma/AlignStatPlot/" rel="nofollow">https://bioinformatics.um6p.ma/AlignStatPlot/</a></p>]]></description>
	<dc:creator>BioStar</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/33306/ancestral-sequence-reconstruction-asr-or-ancestral-genesequence-reconstructionresurrection-tools-to-study-molecular-evolution</guid>
	<pubDate>Tue, 30 May 2017 04:20:05 -0500</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/33306/ancestral-sequence-reconstruction-asr-or-ancestral-genesequence-reconstructionresurrection-tools-to-study-molecular-evolution</link>
	<title><![CDATA[Ancestral sequence reconstruction (ASR) or ancestral gene/sequence reconstruction/resurrection tools to study molecular evolution]]></title>
	<description><![CDATA[<p><span><strong>Ancestral sequence reconstruction</strong><span>&nbsp;(</span><strong>ASR</strong><span>) &ndash; also known as&nbsp;</span><strong>ancestral gene</strong><span>/</span><strong>sequence reconstruction</strong><span>/</span><strong>resurrection</strong><span>&nbsp;&ndash; is a technique used in the study of&nbsp;</span>molecular evolution<span>. The method consists of the synthesis of an ancestral&nbsp;</span>gene<span>&nbsp;and expression of the corresponding ancestral&nbsp;</span>protein<span>.&nbsp;</span><sup id="cite_ref-thornton_1-0"><a href="https://en.wikipedia.org/wiki/Ancestral_sequence_reconstruction#cite_note-thornton-1"></a></sup><span>The idea of protein 'resurrection' was suggested in 1963 by Pauling and Zuckerkandl.</span><sup id="cite_ref-2"><a href="https://en.wikipedia.org/wiki/Ancestral_sequence_reconstruction#cite_note-2"></a></sup><span>&nbsp;Some early efforts were made in the eighties-nineties, led by the laboratory of&nbsp;</span>Steven A. Benner<span>, showing the potential of this technique &ndash; one that only started to be fulfilled in the post-genomic era.</span><sup id="cite_ref-3"><a href="https://en.wikipedia.org/wiki/Ancestral_sequence_reconstruction#cite_note-3"></a></sup><span>&nbsp;Thanks to the improvement of algorithms and of better sequencing and synthesis techniques, the method was developed further in the early 2000s to allow the resurrection of a greater variety of and much more ancient genes.</span><sup id="cite_ref-4"><a href="https://en.wikipedia.org/wiki/Ancestral_sequence_reconstruction#cite_note-4"></a></sup><span>&nbsp;Over the last decade, ancestral protein resurrection has developed as a strategy to reveal the mechanisms and dynamics of protein evolution.&nbsp;</span></span></p><p><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e4/ASR_phylogeny.png/510px-ASR_phylogeny.png" alt="image" width="610" height="435" style="border: 0px; border: 0px;"></p><p><span>Following are the list of&nbsp;</span><strong style="font-size: 12.8px;">Ancestral /sequence/ reconstruction</strong><span>&nbsp;(</span><strong style="font-size: 12.8px;">ASR</strong><span>) tools:&nbsp;</span></p><p><a href="http://www.bx.psu.edu/miller_lab/car/" target="_blank" title="To inferCars official website"><span>inferCars</span></a></p><p><span><span><span><span><span>Reconstructs contiguous regions of an ancestral genome. Given information about adjacencies between conserved segments in each modern species, our goal is to infer segment order in the ancestral genome. To get a clean and precise statement of the problem, we formalize it using graph theory. We develop an algorithm that identifies a most parsimonious scenario for the history of each individual adjacency, although the whole-genome prediction is not guaranteed to optimize traditional measures like the number of breakpoints. We introduce weights to the graph edges to model the reliability of each adjacency.</span></span></span></span></span></p><p><span><span><a href="http://paleogenomics.irmacs.sfu.ca/ANGES/" target="_blank" title="To ANGES official website">ANGES</a>:</span><a href="http://paleogenomics.irmacs.sfu.ca/ANGES/" target="_blank" title="To ANGES official website">reconstructing ANcestral GEnomeS maps</a></span></p><p><span><span><span><span><span><span>A suite of Python programs that allows reconstructing ancestral genome maps from the comparison of the organization of extant-related genomes. ANGES can reconstruct ancestral genome maps for multichromosomal linear genomes and unichromosomal circular genomes. It implements methods inspired from techniques developed to compute physical maps of extant genomes.</span></span></span></span></span></span></p><p><a href="http://virulence.molgen.mpg.de/cocos/" target="_blank" title="To Cocos official website"><span>Cocos</span></a></p><p><span><span><span><span><span><span><span>Constructs phylogenies of multi-domain proteins. With a given species tree and domain phylogenies, the procedure infers the composition of ancestral multi-domain proteins. Cocos implements and extend a suggested algorithmic approach by Behzadi and Vingron in an easy-to-use program. Such method could be applied to reconstruction of partial homologous units such as bacterial operons or protein complexes.</span></span></span></span></span></span></span></p><p><a href="https://github.com/msrosenberg/MySSP" target="_blank" title="To MySSP official website"><span>MySSP</span></a></p><p><span><span><span><span><span><span><span><span>Constructs an initial DNA sequence at the root of the tree and simulates evolution across the tree using a variety of common models of DNA evolution. MySSP is a program for the simulation of DNA sequence evolution across a phylogenetic tree. It is designed for large-scale studies, including simulation of multiple replicates and outputs sequences into NEXUS, MEGA, or FASTA formats. MySSP has a fairly simple graphical user interface (GUI) for basic use, but also has a specialized batch script interpreter to allow for more complicated or large-scale simulations.</span></span></span></span></span></span></span></span></p><p><span><span><a href="http://www.cs.cmu.edu/~ckingsf/software/parana/" target="_blank" title="To PARANA official website">PARANA</a>:&nbsp;</span><a href="http://www.cs.cmu.edu/~ckingsf/software/parana/" target="_blank" title="To PARANA official website">Parsimonious Ancestral Reconstruction And Network Analysis</a></span></p><p><span><span><span><span><span><span><span><span><span>Performs parsimony based inference of ancestral biological networks. Given multiple extant networks and phylogenetic information relating extant nodes, PARANA finds a parsimonious set of ancestral interaction events (edge gains and losses) which explain the extant networks. The framework adopted by PARANA is able to represent network evolution under models that support gene duplication and loss and independent interaction gain and loss. The method works on both directed and undirected networks and can incorporate asymmetric interaction gain and loss costs. In contrast to previous approaches, PARANA does not require knowing the relative ordering of unrelated duplication events and thus, works on phylogenetic trees even where branch lengths are not provided.</span></span></span></span></span></span></span></span></span></p><p><span><span><a href="http://www-labs.iro.umontreal.ca/~mabrouk/" target="_blank" title="To GapAdj official website">GapAdj</a>:&nbsp;</span><a href="http://www-labs.iro.umontreal.ca/~mabrouk/" target="_blank" title="To GapAdj official website">Gapped Adjacencies</a></span></p><p><span><span><span><span><span><span><span><span><span><span>A synteny-based method that is flexible enough to handle a model of evolution involving whole genome duplication events, in addition to rearrangements, gene insertions, and losses. Ancestral relationships between markers are defined in term of Gapped Adjacencies, i.e. pairs of markers separated by up to a given number of markers. It improves on a previous restricted to direct adjacencies, which revealed a high accuracy for adjacency prediction, but with the drawback of being overly conservative, i.e. of generating a large number of contiguous ancestral regions (CARs).</span></span></span></span></span></span></span></span></span></span></p><p><a href="http://ancestors.bioinfo.uqam.ca/"><span><span><span><span><span><span><span><span><span><span>ANCESTOR</span></span></span></span></span></span></span></span></span></span></a></p><p><span><span><span><span><span><span><span><span><span><span><span>A web server allowing one to easily and quickly perform the last three steps of the ancestral genome reconstruction procedure. Ancestors implements several alignment algorithms, an indel maximum likelihood solver and a context-dependent maximum likelihood substitution inference algorithm. The results presented by the server include the posterior probabilities for the last two steps of the ancestral genome reconstruction and the expected error rate of each ancestral base prediction.</span></span></span></span></span></span></span></span></span></span></span></p><p><a href="http://bioinfo.lifl.fr/procars/" target="_blank" title="To ProCARs official website"><span>ProCARs</span></a></p><p>Reconstructs ancestral gene orders as contiguous ancestral regions (CARs) with a progressive homology-based method. ProCARs runs from a phylogeny tree (without branch lengths needed) with a marked ancestor and a block file. This homology-based method is based on iteratively detecting and assembling ancestral adjacencies, while allowing some micro-rearrangements of synteny blocks at the extremities of the progressively assembled CARs. The method starts with a set of blocks as the initial set of CARs, and detects iteratively the potential ancestral adjacencies between extremities of CARs, while building up the CARs progressively by adding, at each step, new non-conflicting adjacencies that induce the less homoplasy phenomenon. The species tree is used, in some additional internal steps, to compute a score for the remaining conflicting adjacencies, and to detect other reliable adjacencies, in order to reach completely assembled ancestral genomes.</p><p><a href="http://fastml.tau.ac.il/" target="_blank" title="To FastML official website"><span>FastML</span></a></p><p>A user-friendly tool for the reconstruction of ancestral sequences. FastML implements various novel features that differentiate it from existing tools: (i) FastML uses an indel-coding method, in which each gap, possibly spanning multiples sites, is coded as binary data. FastML then reconstructs ancestral indel states assuming a continuous time Markov process. FastML provides the most likely ancestral sequences, integrating both indels and characters; (ii) FastML accounts for uncertainty in ancestral states: it provides not only the posterior probabilities for each character and indel at each sequence position, but also a sample of ancestral sequences from this posterior distribution, and a list of the k-most likely ancestral sequences; (iii) FastML implements a large array of evolutionary models, which makes it generic and applicable for nucleotide, protein and codon sequences; and (iv) a graphical representation of the results is provided, including, for example, a graphical logo of the inferred ancestral sequences.</p><p><a href="http://rth.dk/resources/maxAlike/" target="_blank" title="To maxAlike official website"><span>maxAlike</span></a></p><p>Reconstructs a genomic sequence for a specific taxon based on sequence homologs in other species. The input is a multiple sequence alignment and a phylogenetic tree that also contains the target species. For this target species, the algorithm computes nucleotide probabilities at each sequence position. Consensus sequences are then reconstructed based on a certain confidence level.</p><p><span><span><a href="http://www.geneorder.org/server.php" target="_blank" title="To MLGO official website">MLGO</a>:&nbsp;</span><a href="http://www.geneorder.org/server.php" target="_blank" title="To MLGO official website">Maximum Likelihood for Gene Order Analysis</a></span></p><p>A web tool for the reconstruction of phylogeny and/or ancestral genomes from gene-order data. MLGO was designed for analysis of large-scale genomic changes including not only rearrangements but also gene insertions, deletions and duplications. MLGO can be used to infer a phylogeny from genome rearrangement and gene order data, and can also obtain an estimation of ancestral genomes, given an input tree. MLGO takes the advantage of binary encoding on gene-order data, supports a fairly general model of genomic evolution (rearrangements plus duplications, insertions, and losses of genomic regions), and successfully accommodates itself into the framework of maximized likelihood.</p><p>Image Reference : Wiki</p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/30831/fsa-fast-statistical-alignment</guid>
	<pubDate>Mon, 06 Feb 2017 04:26:01 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/30831/fsa-fast-statistical-alignment</link>
	<title><![CDATA[FSA: Fast Statistical Alignment]]></title>
	<description><![CDATA[<p><span>FSA is a probabilistic multiple sequence alignment algorithm which uses a "distance-based" approach to aligning homologous protein, RNA or DNA sequences. Much as distance-based phylogenetic reconstruction methods like Neighbor-Joining build a phylogeny using only pairwise divergence estimates, FSA builds a multiple alignment using only pairwise estimations of homology. This is made possible by the sequence annealing technique for constructing a multiple alignment from pairwise comparisons, developed by Ariel Schwartz in&nbsp;</span><a href="http://www.eecs.berkeley.edu/Pubs/TechRpts/2007/EECS-2007-39.html">"Posterior Decoding Methods for Optimization and Control of Multiple Alignments</a><span>."</span></p>
<p>FSA brings the high accuracies previously available only for small-scale analyses of proteins or RNAs to large-scale problems such as aligning thousands of sequences or megabase-long sequences. FSA introduces several novel methods for constructing better alignments:</p>
<ul>
<li>FSA uses machine-learning techniques to estimate gap and substitution parameters on the fly for each set of input sequences. This "query-specific learning" alignment method makes FSA very robust: it can produce superior alignments of sets of homologous sequences which are subject to very different evolutionary constraints.</li>
<li>FSA is capable of aligning hundreds or even thousands of sequences using a randomized inference algorithm to reduce the computational cost of multiple alignment. This randomized inference can be over ten times faster than a direct approach with little loss of accuracy.</li>
<li>FSA can quickly align very long sequences using the "anchor annealing" technique for resolving anchors and projecting them with transitive anchoring. It then stitches together the alignment between the anchors using the methods described above.</li>
<li>The included GUI, MAD (Multiple Alignment Display), can display the intermediate alignments produced by FSA, where each character is colored according to the probability that it is correctly aligned (see the picture and&nbsp;<a href="http://fsa.sourceforge.net/images/Suchard_SIV.fsa.mov">movie</a>&nbsp;at the top of the page).</li>
</ul>
<p><span>You can see more information on the&nbsp;</span><a href="http://fsa.sourceforge.net/FAQ.html">FAQ</a><span>.&nbsp;</span></p>
<p>&nbsp;</p><p>Address of the bookmark: <a href="http://fsa.sourceforge.net/" rel="nofollow">http://fsa.sourceforge.net/</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/34565/fogsaa-fast-optimal-global-sequence-alignment-algorithm</guid>
	<pubDate>Fri, 08 Dec 2017 14:41:08 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/34565/fogsaa-fast-optimal-global-sequence-alignment-algorithm</link>
	<title><![CDATA[FOGSAA: Fast Optimal Global Sequence Alignment Algorithm]]></title>
	<description><![CDATA[<p>Sequence alignment algorithms are widely used to infer similarirty and the point of differences between pair of sequences. FOGSAA is a fast Global alignment algorithm. It is basically a branch and bound approach which starts branch expansion in a greedy way taking the symbols from the given pair of sequences (protein or nucleotide) and results in an optimal alignment faster than conventional dymanic programming techniques. It is also better than the heuristic methods with respect to alignment quality.</p><p>Address of the bookmark: <a href="http://www.isical.ac.in/~bioinfo_miu/FOGSAA.htm" rel="nofollow">http://www.isical.ac.in/~bioinfo_miu/FOGSAA.htm</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/40212/kalign-fast-multiple-sequence-alignment-program-for-biological-sequences</guid>
	<pubDate>Fri, 01 Nov 2019 00:20:41 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/40212/kalign-fast-multiple-sequence-alignment-program-for-biological-sequences</link>
	<title><![CDATA[Kalign: fast multiple sequence alignment program for biological sequences.]]></title>
	<description><![CDATA[<p><span>Kalign is a fast multiple sequence alignment program for biological sequences.</span></p>
<p>Align sequences and output the alignment in MSF format:</p>
<pre><code>kalign -i BB11001.tfa -f msf  -o out.msf
</code></pre>
<p>Align sequences and output the alignment in clustal format:</p>
<pre><code>kalign -i BB11001.tfa -f clu -o out.clu
</code></pre>
<p>Re-align sequences in an existing alignment:</p>
<pre><code>kalign -i BB11001.msf  -o out.afa
</code></pre>
<p>Reformat existing alignment:</p>
<pre><code>kalign -i BB11001.msf -r afa -o out.afa</code></pre><p>Address of the bookmark: <a href="https://github.com/TimoLassmann/kalign" rel="nofollow">https://github.com/TimoLassmann/kalign</a></p>]]></description>
	<dc:creator>BioStar</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/920/bioinformatics-algorithms</guid>
	<pubDate>Tue, 16 Jul 2013 03:35:15 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/920/bioinformatics-algorithms</link>
	<title><![CDATA[Bioinformatics Algorithms]]></title>
	<description><![CDATA[<p>An algorithm is a computable set of steps to achieve a desired result.</p><p>We use algorithms every day. For example, a recipe for baking a cake is an algorithm. Most programs, with the exception of some artificial intelligence applications, consist of algorithms. Inventing elegant algorithms -- algorithms that are simple and require the fewest steps possible -- is one of the principal challenges in programming. An algorithm is a description of a procedure which terminates with a result. In other words an algorithm is a set of instructions, sometimes called a procedure or a function, that is used to perform a certain task. This can be a simple process, such as adding two numbers together, or a complex function, such as adding effects to an image. For example, in order to sharpen a digital photo, the algorithm would need to process each pixel in the image and determine which ones to change and how much to change them in order to make the image look sharper.</p><p>In mathematics, computer science, and related subjects, an algorithm is an effective method for solving a problem using a finite sequence of instructions. Algorithms are used for calculation, data processing, and many other fields.<br />Each algorithm is a list of well-defined instructions for completing a task. Starting from an initial state, the instructions describe a computation that proceeds through a well-defined series of successive states, eventually terminating in a final ending state. The transition from one state to the next is not necessarily deterministic; some algorithms, known as randomized algorithms, incorporate randomness.</p><p><strong>History</strong></p><p>The origin of the term comes from the ancients. The concept becomes more precise with the use of variables in mathematics. Algorithm in the sense of what is now used by computers appeared as soon as first mechanical engines were invented.<br />The word algorithm comes from the name of the 9th century Persian Muslim mathematician Abu Abdullah Muhammad ibn Musa Al-Khwarizmi. The word algorism originally referred only to the rules of performing arithmetic using Hindu-Arabic numerals but evolved via European Latin translation of Al-Khwarizmi's name into algorithm by the 18th century. The use of the word evolved to include all definite procedures for solving problems or performing tasks.<br />The algorithm of Archimedes gives an approximation of the Pi number.<br />Eratosthenes has defined an algorithim for retrieving prime numbers.<br />Averro&egrave;s (1126-1198) was using algorithmic methods for calculations.<br />Adelard de Bath (12 th) introduces the algorismus term, from Al-Khwarizmi.<br />During the 1800's up to the mid-1900's:<br /><br />- George Boole (1847) has invented the binary algebra, the basis of computers. Actually he has unified logic and calculation in a common symbolism.<br /><br />- Gottlob Frege (1879) formula language's, that is a lingua characterica, a language written with special symbols, "for pure thought", that is free from rhetorical embellishments... constructed from specific symbols that are manipulated according to definite rules.<br /><br />- Giuseppe Peano (1888) It's The principles of arithmetic, presented by a new method was the first attempt at an axiomatization of mathematics in a symbolic language.<br /><br />- Alfred North Whitehead and Bertrand Russell in their Principia Mathematica (1910-1913) has further simplified and amplified the work of Frege.<br /><br />- Kurt Go&euml;del (1931) cites the paradox of the liar that completely reduces rules of recursion to numbers.<br /><br />The concept of algorithm was formalized in 1936 through Alan Turing's Turing machines and Alonzo Church's lambda calculus, which in turn formed the foundation of computer science.<br />Stephen C. Kleene (1943) defined his now-famous thesis known as the "Church-Turing Thesis". In this context:<br /><br />" Algorithmic theories... In setting up a complete algorithmic theory, what we do is to describe a procedure, performable for each set of values of the independent variables, which procedure necessarily terminates and in such manner that from the outcome we can read a definite answer, "yes" or "no," to the question, "is the predicate value true?"</p><p><strong>Classification</strong></p><p><strong>Classification by purpose</strong></p><p>Each algorithm has a goal, for example, the purpose of the Quick Sort algorithm is to sort data in ascending or descending order. But the number of goals is infinite, and we have to group them by kind of purposes:</p><p><strong>Classification by implementation</strong></p><p>An algorithm may be implemeted according to different basical principles.</p><ul>
<li>Recursive or iterative</li>
</ul><p>A recursive algorithm is one that calls itself repeatedly until a certain condition matches. It is a method common to functional programming.&nbsp;<br />Iterative algorithms use repetitive constructs like loops.<br />Some problems are better suited for one implementation or the other. For example, the towers of hanoi problem is well understood in recursive implementation. Every recursive version has an iterative equivalent iterative, and vice versa.</p><ul>
<li>Logical or procedural</li>
</ul><p>An algorithm may be viewed as controlled logical deduction.&nbsp;<br />A logic component expresses the axioms which may be used in the computation and a control component determines the way in which deduction is applied to the axioms.&nbsp;<br />This is the basis of the logic programming. In pure logic programming languages the control component is fixed and algorithms are specified by supplying only the logic component.</p><ul>
<li>Serial or parallel</li>
</ul><p>Algorithms are usually discussed with the assumption that computers execute one instruction of an algorithm at a time. This is a serial algorithm, as opposed to parallel algorithms, which take advantage of computer architectures to process several instructions at once. They divide the problem into sub-problems and pass them to several processors. Iterative algorithms are generally parallelizable. Sorting algorithms can be parallelized efficiently.</p><ul>
<li>Deterministic or non-deterministic</li>
</ul><p>Deterministic algorithms solve the problem with a predefined process whereas non-deterministic algorithm must perform guesses of best solution at each step through the use of heuristics.<br /><br /><strong>Classification by design paradigm</strong></p><p>A design paradigm is a domain in research or class of problems that requires a dedicated kind of algorithm:</p><ul>
<li>Divide and conquer</li>
</ul><p>A divide and conquer algorithm repeatedly reduces an instance of a problem to one or more smaller instances of the same problem (usually recursively), until the instances are small enough to solve easily. One such example of divide and conquer is merge sorting. Sorting can be done on each segment of data after dividing data into segments and sorting of entire data can be obtained in conquer phase by merging them.<br />The binary search algorithm is an example of a variant of divide and conquer called decrease and conquer algorithm, that solves an identical subproblem and uses the solution of this subproblem to solve the bigger problem.</p><ul>
<li>Dynamic programming</li>
</ul><p>The shortest path in a weighted graph can be found by using the shortest path to the goal from all adjacent vertices.&nbsp;<br />When the optimal solution to a problem can be constructed from optimal solutions to subproblems, using dynamic programming avoids recomputing solutions that have already been computed.&nbsp;<br />- The main difference with the "divide and conquer" approach is, subproblems are independent in divide and conquer, where as the overlap of subproblems occur in dynamic programming.&nbsp;<br />- Dynamic programming and memoization go together. The difference with straightforward recursion is in caching or memoization of recursive calls. Where subproblems are independent, this is useless. By using memoization or maintaining a table of subproblems already solved, dynamic programming reduces the exponential nature of many problems to polynomial complexity.</p><ul>
<li>The greedy method</li>
</ul><p>A greedy algorithm is similar to a dynamic programming algorithm, but the difference is that solutions to the subproblems do not have to be known at each stage. Instead a "greedy" choice can be made of what looks the best solution for the moment.&nbsp;<br />The most popular greedy algorithm is finding the minimal spanning tree as given by Kruskal.</p><ul>
<li>Linear programming</li>
</ul><p>The problem is expressed as a set of linear inequalities and then an attempt is made to maximize or minimize the inputs. This can solve many problems such as the maximum flow for directed graphs, notably by using the simplex algorithm.&nbsp;<br />A complex variant of linear programming is called integer programming, where the solution space is restricted to all integers.</p><ul>
<li>Reduction also called transform and conquer</li>
</ul><p>Solve a problem by transforming it into another problem. A simple example: finding the median in an unsorted list is first translating this problem into sorting problem and finding the middle element in sorted list. The main goal of reduction is finding the simplest transformation possible.</p><ul>
<li>Using graphs</li>
</ul><p>Many problems, such as playing chess, can be modeled as problems on graphs. A graph exploration algorithms are used.&nbsp;<br />This category also includes the search algorithms and backtracking.<br /><br /><strong>The probabilistic and heuristic paradigm</strong></p><ul>
<li>Probabilistic</li>
</ul><p>Those that make some choices randomly.</p><ul>
<li>Genetic</li>
</ul><p>Attempt to find solutions to problems by mimicking biological evolutionary processes, with a cycle of random mutations yielding successive generations of "solutions". Thus, they emulate reproduction and "survival of the fittest".</p><ul>
<li>Heuristic</li>
</ul><p>Whose general purpose is not to find an optimal solution, but an approximate solution where the time or resources to find a perfect solution are not practical.</p><p><strong>Classification by complexity</strong></p><p>Some algorithms complete in linear time, and some complete in exponential amount of time, and some never complete.</p><p><strong>Algorithms resources on net.</strong></p><p><a href="http://www.cs.uga.edu/~cai/courses/compbio/2008fall/bookchapters/Chapter08/Ch08_GraphsDNAseq.pdf">Graph Algorithms in Bioinformatics</a></p><p><a href="http://zikuladevs.com/notes/Part%20II%20Revision/Bio_Alg_Descriptions[1].pdf">Bioinformatics Algorithms Description</a></p><p><a href="http://users.aims.ac.za/~marshall/BioinformaticsCourse.html">Bioinformatics Algorithms Course Page</a></p><p><a href="http://www.cybertory.org/downloads/bae/BioinformaticsAlgorithmsExcelDoc.pdf">Bioinformatics Algorithm Demonstrations</a></p><p><a href="http://www.cse.sc.edu/~maxal/csce590b/Lect01-02.pdf">Introduction to Bioinformatics Algorithms Lectures 1-2 by Dr. Max Alekseyev USC, 2009</a></p><p><a href="http://lectures.molgen.mpg.de/online_lectures.html">Online Lectures on Bioinformatics</a></p><p><a href="http://www.ks.uiuc.edu/Training/Tutorials/science/bioinformatics-tutorial/bioinformatics.pdf.bak">Sequence Alignment Algorithms</a></p><p><a href="http://www.avatar.se/molbioinfo2001/seqali-dyn.html">Algorithm for sequence alignment: dynamic programming</a></p><p><a href="http://www.4tphi.net/~awalters/PI/pi.pdf">Network Protocol Analysis using Bioinformatics Algorithms</a></p><p><strong>Bioinformatics Algorithms Links</strong></p><p><strong>Dynamic Programming</strong></p><p>Particularly good sites...</p><p>&bull;<a href="http://www.cis.upenn.edu/~sahuguet/MSA/">http://www.cis.upenn.edu/~sahuguet/MSA/</a><br />&bull;<a href="http://www.blc.arizona.edu/courses/bioinformatics/align.html">http://www.blc.arizona.edu/courses/bioinformatics/align.html</a><br />&bull;<a href="http://www.cs.monash.edu.au/~lloyd/tildeStrings/Notes/DPA.html">http://www.cs.monash.edu.au/~lloyd/tildeStrings/Notes/DPA.html</a><br />&bull;<a href="http://www.cs.orst.edu/~schut/cs325/dynamic.htm">http://www.cs.orst.edu/~schut/cs325/dynamic.htm</a><br />&bull;<a href="http://www.catalase.com/dprog.htm">http://www.catalase.com/dprog.htm</a><br />&bull;<a href="http://bioweb.ncsa.uiuc.edu/~bioph490/BIOPH2.html#SEQUENCE_COMP">http://bioweb.ncsa.uiuc.edu/~bioph490/BIOPH2.html#SEQUENCE_COMP</a><br />&bull;<a href="http://www.qucis.queensu.ca/home/cisc365/javascript/dp1/index.html">http://www.qucis.queensu.ca/home/cisc365/javascript/dp1/index.html</a><br />Other sites...<br />&bull;<a href="http://bioweb.ncsa.uiuc.edu/~bioph490/dynamic_programming_demo.html">http://bioweb.ncsa.uiuc.edu/~bioph490/dynamic_programming_demo.html</a><br />&bull;<a href="http://www.qucis.queensu.ca/home/cisc365/365overheads.html">http://www.qucis.queensu.ca/home/cisc365/365overheads.html</a><br />&bull;<a href="http://www.qucis.queensu.ca/home/cisc365/dp/dp.p01.html">http://www.qucis.queensu.ca/home/cisc365/dp/dp.p01.html</a><br />&bull;<a href="http://www.dgp.toronto.edu/csc270/tut_dp.html">http://www.dgp.toronto.edu/csc270/tut_dp.html</a><br />&bull;<a href="http://queue.ieor.berkeley.edu/~jshu/knapsack/DP/dp.html">http://queue.ieor.berkeley.edu/~jshu/knapsack/DP/dp.html</a><br />&bull;<a href="http://mat.gsia.cmu.edu/classes/dynamic/dynamic.html">http://mat.gsia.cmu.edu/classes/dynamic/dynamic.html</a><br />&bull;<a href="http://www.cs.sandia.gov/~scistra/class_3">http://www.cs.sandia.gov/~scistra/class_3</a><br />&bull;<a href="http://levine.sscnet.ucla.edu/Econ101/dynamic.htm">http://levine.sscnet.ucla.edu/Econ101/dynamic.htm</a><br />&bull;<a href="http://mat.gsia.cmu.edu/classes/stoch_dynamic/stoch_dynamic.html">http://mat.gsia.cmu.edu/classes/stoch_dynamic/stoch_dynamic.html</a><br />&bull;<a href="http://mat.gsia.cmu.edu/classes/dynamic/node8.html">http://mat.gsia.cmu.edu/classes/dynamic/node8.html</a><br />&bull;<a href="http://www.maths.mu.oz.au/~moshe/dp/bibl/bibliography.html">http://www.maths.mu.oz.au/~moshe/dp/bibl/bibliography.html</a><br />&bull;<a href="http://cartan.gmd.de/PAPER/ismb95/ismb_html.html">http://cartan.gmd.de/PAPER/ismb95/ismb_html.html</a><br />&bull;<a href="http://screwdriver.bu.edu/bibliography/dynamic_programming.htm">http://screwdriver.bu.edu/bibliography/dynamic_programming.htm</a><br />&bull;<a href="http://www.norvig.com/design-patterns/">http://www.norvig.com/design-patterns/</a><br />&bull;<a href="http://tome.cbs.univ-montp1.fr/htmltxt/Doc/manual/node137.html">http://tome.cbs.univ-montp1.fr/htmltxt/Doc/manual/node137.html</a><br />&bull;<a href="http://poem.princeton.edu/~verdu/dynamic.html">http://poem.princeton.edu/~verdu/dynamic.html</a><br />&bull;<a href="http://www.orca1.com/opushelpweb/opusDynamic_Programming.html">http://www.orca1.com/opushelpweb/opusDynamic_Programming.html</a><br />&bull;<a href="http://screwdriver.bu.edu/cn760-lectures/l7/index.htm">http://screwdriver.bu.edu/cn760-lectures/l7/index.htm</a><br />&bull;<a href="http://www.ms.unimelb.edu.au/~moshe/dp/dp.html">http://www.ms.unimelb.edu.au/~moshe/dp/dp.html</a><br />&bull;<a href="http://mat.gsia.cmu.edu/ORCS/0255.html">http://mat.gsia.cmu.edu/ORCS/0255.html</a><br />&bull;<a href="http://aae.wisc.edu/e703/notes/a13dynpr.htm">http://aae.wisc.edu/e703/notes/a13dynpr.htm</a><br />&bull;<a href="http://bioweb.pasteur.fr/docs/modeller/node137.html">http://bioweb.pasteur.fr/docs/modeller/node137.html</a><br />&bull;<a href="http://www2.uwindsor.ca/~lama/my470/ddynamic.htm">http://www2.uwindsor.ca/~lama/my470/ddynamic.htm</a><br />&bull;<a href="http://students.ceid.upatras.gr/~papagel/project/ex5_6_1.htm">http://students.ceid.upatras.gr/~papagel/project/ex5_6_1.htm</a><br />&bull;<a href="http://www.cs.sunysb.edu/~algorith/lectures-good/node12.html">http://www.cs.sunysb.edu/~algorith/lectures-good/node12.html</a><br />&bull;<a href="http://www.cs.sunysb.edu/~algorith/lectures-good/node12.html">http://www.cs.sunysb.edu/~algorith/lectures-good/node12.html</a><br />&bull;<a href="http://www.utdallas.edu/~scniu/documents/7315.htm">http://www.utdallas.edu/~scniu/documents/7315.htm</a><br />&bull;<a href="http://www.ii.uib.no/~pinar/seminar/larry.html">http://www.ii.uib.no/~pinar/seminar/larry.html</a><br />&bull;<a href="http://www.deakin.edu.au/~gecole/books.html">http://www.deakin.edu.au/~gecole/books.html</a><br />&bull;<a href="http://www.cseg.engr.uark.edu/~wessels/algs/notes/dynamic.html">http://www.cseg.engr.uark.edu/~wessels/algs/notes/dynamic.html</a><br />&bull;<a href="http://www.csc.liv.ac.uk/~ped/teachadmin/algor/dyprog.html">http://www.csc.liv.ac.uk/~ped/teachadmin/algor/dyprog.html</a><br />&bull;<a href="http://www.eli.sdsu.edu/courses/fall96/cs660/notes/dynamicProg/dynamicProg.html">http://www.eli.sdsu.edu/courses/fall96/cs660/notes/dynamicProg/dynamicProg.html</a><br />&bull;<a href="http://www.cs.indiana.edu/l/www/ftp/techreports/TR514.html">http://www.cs.indiana.edu/l/www/ftp/techreports/TR514.html</a><br />&bull;<a href="http://www.cs.brandeis.edu/~mairson/poems/node3.html">http://www.cs.brandeis.edu/~mairson/poems/node3.html</a><br />&bull;<a href="http://www.cis.tu-graz.ac.at/igi/oaich/animations/Dynamic2.html">http://www.cis.tu-graz.ac.at/igi/oaich/animations/Dynamic2.html</a><br />&bull;<a href="http://bioweb.ncsa.uiuc.edu/~workshop/">http://bioweb.ncsa.uiuc.edu/~workshop/</a></p><p><br />Smith Waterman<br />&bull;<a href="http://genome-www.stanford.edu/Saccharomyces/help/sw_alignment.html">http://genome-www.stanford.edu/Saccharomyces/help/sw_alignment.html</a><br />&bull;<a href="http://genome-www.stanford.edu/Saccharomyces/help/sw_details.html">http://genome-www.stanford.edu/Saccharomyces/help/sw_details.html</a><br />&bull;<a href="http://www.stanford.edu/~sntaylor/bioc218/final.htm">http://www.stanford.edu/~sntaylor/bioc218/final.htm</a><br />&bull;<a href="http://www.maths.tcd.ie/~lily/pres2/sld009.htm">http://www.maths.tcd.ie/~lily/pres2/sld009.htm</a><br />&bull;<a href="http://bioweb.ncsa.uiuc.edu/~workshop/Lab_3/Smith-Waterman.htm">http://bioweb.ncsa.uiuc.edu/~workshop/Lab_3/Smith-Waterman.htm</a><br />&bull;<a href="http://www.tigem.it/LOCAL/SW/threshold.html">http://www.tigem.it/LOCAL/SW/threshold.html</a><br />&bull;<a href="http://sgbcd.weizmann.ac.il/genweb/help/smith-waterman.html">http://sgbcd.weizmann.ac.il/genweb/help/smith-waterman.html</a><br />&bull;<a href="http://cbrg.ethz.ch/ServerBooklet/section2_3_5.html">http://cbrg.ethz.ch/ServerBooklet/section2_3_5.html</a><br />Needleman &amp; Wunsch<br />&bull;<a href="http://www.maths.tcd.ie/~lily/pres2/sld003.htm">http://www.maths.tcd.ie/~lily/pres2/sld003.htm</a><br />&bull;<a href="http://acer.gen.tcd.ie/~amclysag/nwswat.html">http://acer.gen.tcd.ie/~amclysag/nwswat.html</a><br />&bull;<a href="http://www.nada.kth.se/~erikw/thesis/chapter2_3.html">http://www.nada.kth.se/~erikw/thesis/chapter2_3.html</a><br />&bull;<a href="http://www.irbm.it/irbm-course95/gb/docs/amps/subsection3_6_1.html">http://www.irbm.it/irbm-course95/gb/docs/amps/subsection3_6_1.html</a><br />&bull;<a href="http://www.ibc.wustl.edu/~zuker/Bio-5495/align-html/node3.html">http://www.ibc.wustl.edu/~zuker/Bio-5495/align-html/node3.html</a></p><p><strong>General (NW vs. SW vs. HMM, etc.)</strong></p><p>&bull;<a href="http://www.maths.tcd.ie/~lily/pres2/">http://www.maths.tcd.ie/~lily/pres2/</a><br />&bull;<a href="http://acer.gen.tcd.ie/~amclysag/nwswat.html">http://acer.gen.tcd.ie/~amclysag/nwswat.html</a><br />&bull;<a href="http://laguerre.psc.edu/biomed/TUTORIALS/SEQUENCE/MULTIPLE/tutorial.html">http://laguerre.psc.edu/biomed/TUTORIALS/SEQUENCE/MULTIPLE/tutorial.html</a><br />&bull;<a href="http://www.cse.ucsc.edu/research/compbio/">http://www.cse.ucsc.edu/research/compbio/</a></p><p><strong>Hmms</strong></p><p>&bull;<a href="http://www.medmicro.mds.qmw.ac.uk/HMMER/main.html">http://www.medmicro.mds.qmw.ac.uk/HMMER/main.html</a><br />&bull;<a href="http://alfredo.wustl.edu/ismb96/abs/p02.html">http://alfredo.wustl.edu/ismb96/abs/p02.html</a><br />&bull;<a href="http://www.cse.ucsc.edu/research/compbio/html_format_papers/hughkrogh96/cabios.html">http://www.cse.ucsc.edu/research/compbio/html_format_papers/hughkrogh96/cabios.html</a><br />&bull;<a href="http://wwwsyseng.anu.edu.au/~jason/hmmlinks.html">http://wwwsyseng.anu.edu.au/~jason/hmmlinks.html</a><br />&bull;<a href="http://www.breadfan.com/markov.html">http://www.breadfan.com/markov.html</a><br />&bull;<a href="http://cslu.cse.ogi.edu/HLTsurvey/ch1node34.html">http://cslu.cse.ogi.edu/HLTsurvey/ch1node34.html</a><br />&bull;<a href="http://www.ibc.wustl.edu/service/hmmalign/glocal.html">http://www.ibc.wustl.edu/service/hmmalign/glocal.html</a><br />&bull;<a href="http://www.cse.ucsc.edu/research/compbio/html_format_papers/ismb94/node5.html">http://www.cse.ucsc.edu/research/compbio/html_format_papers/ismb94/node5.html</a><br />&bull;<a href="http://www.iscs.nus.edu.sg/~luakt/ic3222/lecture/nlp18new/index.htm">http://www.iscs.nus.edu.sg/~luakt/ic3222/lecture/nlp18new/index.htm</a><br />&bull;<a href="http://www.cse.ucsc.edu/research/compbio/sam.html">http://www.cse.ucsc.edu/research/compbio/sam.html</a>&nbsp;SAM Software for HMMs</p><p><strong>Genetic Algorithms</strong><br /><br />&bull;<a href="http://www.staff.uiuc.edu/~carroll/ga.html">http://www.staff.uiuc.edu/~carroll/ga.html</a><br />&bull;<a href="http://kal-el.ugr.es/gags.html">http://kal-el.ugr.es/gags.html</a><br />&bull;<a href="http://kal-el.ugr.es/~jmerelo/GAJS.html">http://kal-el.ugr.es/~jmerelo/GAJS.html</a><br />&bull;<a href="http://www.genetic-programming.org/">http://www.genetic-programming.org/</a><br />&bull;<a href="http://www.iitk.ac.in/kangal/deb_tut.shtml">http://www.iitk.ac.in/kangal/deb_tut.shtml</a></p>]]></description>
	<dc:creator>Jitendra Narayan</dc:creator>
</item>

</channel>
</rss>