<?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/36960?offset=210</link>
	<atom:link href="https://bioinformaticsonline.com/related/36960?offset=210" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<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>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/43863/snakemake-tutorials</guid>
	<pubDate>Mon, 09 May 2022 05:20:41 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/43863/snakemake-tutorials</link>
	<title><![CDATA[Snakemake Tutorials !]]></title>
	<description><![CDATA[<p>A lesson introducing the Snakemake workflow system for bioinformatics analysis.</p>
<blockquote>
<h2 id="prerequisites">Prerequisites<a href="https://carpentries-incubator.github.io/snakemake-novice-bioinformatics/index.html#prerequisites"></a></h2>
<p>This is an intermediate lesson and assumes learners have already done some bioinformatics:</p>
<ul>
<li>Familiarity with the BASH command shell, including concepts like pipes, variables and loops.</li>
<li>Knowledge of bioinformatics fundamentals like the FASTQ file format and transcriptome sequencing, in order to understand the example workflow.</li>
</ul>
<p>No previous knowledge of Snakemake or workflow systems is required.</p>
<p>https://carpentries-incubator.github.io/snakemake-novice-bioinformatics/index.html</p>
</blockquote><p>Address of the bookmark: <a href="https://carpentries-incubator.github.io/snakemake-novice-bioinformatics/aio/index.html" rel="nofollow">https://carpentries-incubator.github.io/snakemake-novice-bioinformatics/aio/index.html</a></p>]]></description>
	<dc:creator>Rahul Nayak</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/783/perl-module-installation</guid>
	<pubDate>Fri, 12 Jul 2013 11:19:41 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/783/perl-module-installation</link>
	<title><![CDATA[Perl Module Installation]]></title>
	<description><![CDATA[<p>Nice step wide information on perl module installation.</p><p>Address of the bookmark: <a href="http://bioinformaticsonline.com/blog/view/710/how-to-install-perl-modules-manually-using-cpan-command-and-other-quick-ways" rel="nofollow">http://bioinformaticsonline.com/blog/view/710/how-to-install-perl-modules-manually-using-cpan-command-and-other-quick-ways</a></p>]]></description>
	<dc:creator>Jitendra Narayan</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/fun/view/2053/perl-poem-parse-it-in-both-perl-and-english</guid>
	<pubDate>Mon, 12 Aug 2013 19:00:55 -0500</pubDate>
	<link>https://bioinformaticsonline.com/fun/view/2053/perl-poem-parse-it-in-both-perl-and-english</link>
	<title><![CDATA[Perl Poem: Parse it in both Perl and English!]]></title>
	<description><![CDATA[<p>Larry's, er, corpus has fortunately been overshadowed by that of the reigning Perl Poet, Sharon Hopkins. She has written quite a few Perl poems, as well as a paper on Perl poetry that she presented at the Usenix Winter 1992 Technical Conference, entitled "Camels and Needles: Computer Poetry Meets the Perl Programming Language". (The paper is available as misc/<a href="http://poetry.ps/" target="_blank">poetry.ps</a>&nbsp;on CPAN.) Besides being the most prolific Perl poet, Sharon is also the most widely published, having had the following poem published in both the Economist and the Guardian:</p><p>#!/usr/bin/perl</p><p>APPEAL:</p><p>listen (please, please);</p><p>open yourself, wide;<br />join (you, me),<br />connect (us,together),</p><p>tell me.</p><p>do something if distressed;</p><p>@dawn, dance;<br />@evening, sing;<br />read (books,$poems,stories) until peaceful;<br />study if able;</p><p>write me if-you-please;</p><p>sort your feelings, reset goals, seek (friends, family, anyone);</p><p>do*not*die (like this)<br />if sin abounds;</p><p>keys (hidden), open (locks, doors), tell secrets;<br />do not, I-beg-you, close them, yet.</p><p>accept (yourself, changes),<br />bind (grief, despair);</p><p>require truth, goodness if-you-will, each moment;</p><p>select (always), length(of-days)</p><p># listen (a perl poem)<br /># Sharon Hopkins<br /># rev. June 19, 1995</p>]]></description>
	<dc:creator>Rahul Agarwal</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/videolist/watch/4193/bioinformatics-101-running-blast</guid>
	<pubDate>Tue, 03 Sep 2013 14:59:50 -0500</pubDate>
	<link>https://bioinformaticsonline.com/videolist/watch/4193/bioinformatics-101-running-blast</link>
	<title><![CDATA[Bioinformatics 101 -  Running BLAST]]></title>
	<description><![CDATA[<iframe width="" height="" src="https://www.youtube-nocookie.com/embed/CYnjROfGXv8" frameborder="0" allowfullscreen></iframe>How to format the database for BLAST, run the command, view the output file, and use BioPerl and Perl to parse the output. By David Francis, Ohio State University. Delivered live at the Tomato Disease Workshop 2010. For more information, please visit http://www.extension.org/pages/32521/bioinformatics-101-video.]]></description>
	
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/20471/bioinformatics-scripts</guid>
	<pubDate>Thu, 22 Jan 2015 22:29:39 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/20471/bioinformatics-scripts</link>
	<title><![CDATA[Bioinformatics Scripts]]></title>
	<description><![CDATA[<p>Some of the useful bioinformatics scripts.</p>
<p>For example ... contig-stats.pl is a Perl script that will automatically describe features of a sequence assembly.</p>
<p>http://milkweedgenome.org/?q=scripts</p><p>Address of the bookmark: <a href="http://milkweedgenome.org/?q=scripts" rel="nofollow">http://milkweedgenome.org/?q=scripts</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/22571/pattern-matching-problem-solution-with-perl</guid>
	<pubDate>Tue, 09 Jun 2015 23:58:45 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/22571/pattern-matching-problem-solution-with-perl</link>
	<title><![CDATA[Pattern Matching Problem Solution with Perl]]></title>
	<description><![CDATA[<p>Problem at http://rosalind.info/problems/1c/</p><p>#Find all occurrences of a pattern in a string.<br />#Given: Strings Pattern and Genome.<br />#Return: All starting positions in Genome where Pattern appears as a substring. Use 0-based indexing.<br /><br />use strict;<br />use warnings;<br /><br />my $string="GATATATGCATATACTT";<br />my $subStr="ATAT";<br />my $kmer=length($subStr);<br /><br />kmerMatch ($string, $subStr, $kmer);<br /><br />sub kmerMatch { #Check the exact matching kmers with sliding window<br />my ($string, $myStr, $kmer)=@_;<br />for (my $aa=0; $aa&lt;=(length($string)-$kmer); $aa++) {<br />&nbsp;&nbsp;&nbsp; my $myWin=substr&nbsp; $string, $aa,$kmer;<br />&nbsp;&nbsp;&nbsp; if ($myWin eq $myStr) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #print "$myWin eq $myStr\n";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print $aa;<br />&nbsp;&nbsp;&nbsp; }<br />}<br />}</p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/22961/bioscripts</guid>
	<pubDate>Sun, 28 Jun 2015 07:46:14 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/22961/bioscripts</link>
	<title><![CDATA[BioScripts]]></title>
	<description><![CDATA[<p>You are requested to please bookmark collection of bioinformatics tools, scripts, codes that can be pieced together in a very easy and flexible manner to perform both simple and complex bioinformatics tasks.</p>
<p>The next-generation sequencing included whole genome sequencing(WGS), transcriptome sequencing (whole cDNA sequencing, RNA-seq), digital gene expression sequencing (Tag-Seq), ChIP-Seq, and so on. And there are many sequencing platform to generate sequece, as well know Sanger/ABi(the frist generation), Solexa/illumina, SOLiD/ABi, 454/Roche. But thier sequence format is different, also they have different error type. High quality data is very important for further analysis or data mining. There are many pipeline for raw sequence quality analysis and control with few of process for reporting reads quality statistical details, trimming, filtering, and error correction. Please bookmarks them for the benefits of bioinformatics community.</p>
<p>https://code.google.com/p/biowiki/</p>
<p>https://code.google.com/p/ngs-pipeline/source/browse/#svn%2Ftrunk</p>
<p>NGSand Perl scripts https://code.google.com/hosting/search?q=NGS+perl&amp;projectsearch=Search+projects</p>
<p>NGS and Python scripts https://code.google.com/hosting/search?q=NGS+Python&amp;projectsearch=Search+projects</p><p>Address of the bookmark: <a href="https://code.google.com/hosting/search?q=bioinformatics&amp;sa=Search" rel="nofollow">https://code.google.com/hosting/search?q=bioinformatics&amp;sa=Search</a></p>]]></description>
	<dc:creator>Rahul Nayak</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/29479/how-to-install-perl-modules-on-mac-os-x-in-easy-steps</guid>
	<pubDate>Thu, 20 Oct 2016 07:26:29 -0500</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/29479/how-to-install-perl-modules-on-mac-os-x-in-easy-steps</link>
	<title><![CDATA[How to install Perl modules on Mac OS X in easy steps !!]]></title>
	<description><![CDATA[<p>Today at work, I learned how to install Perl modules using&nbsp;<a href="http://en.wikipedia.org/wiki/CPAN">CPAN</a>. It&rsquo;s a lot easier than I thought.</p><p>You see, for the past couple of years, I&rsquo;ve been a bit frustrated because OS X does not come with a whole lot of Perl modules pre-installed, and for all I googled, I couldn&rsquo;t find an &ldquo;idiot&rsquo;s&rdquo; guide for moderately-savvy-but-not-expert users like myself to install modules and dependencies on demand.</p><p>The only instructions I could find point to&nbsp;<a href="http://fink.sourceforge.net/">Fink</a>, which basically installs modules in a path that isn&rsquo;t included in the Perl @INC variable, meaning you have to manually specify the full path to the modules in every script &mdash; which is not a lot of fun if you&rsquo;re developing on OS X and deploying on Red Hat, for instance.</p><p>Moreover, Fink doesn&rsquo;t seem to make every module available, and it&rsquo;s not very easy to determine which Fink package you need to install if you need a particular module.</p><p>So, with a script that called on several apparently unavailable modules, and a deadline looming, I finally decided to suck it up and figure out how to use CPAN to install them:</p><h4>1) Make sure you have the Apple Developer Tools (XCode) installed.</h4><p>These are on one of your install discs, or available as a huge but free download from the&nbsp;<a href="https://developer.apple.com/xcode/">Apple Developer Connection</a>&nbsp;[free registration required] or the Mac App Store. I thought I had them, but apparently when we upgraded that computer to Tiger, they went missing.</p><p>If you don&rsquo;t have this stuff installed, your installation will fail with errors about unavailable commands.</p><h4>1.5) Install Command Line Tools (Recent XCode versions only)</h4><p>(Thank you to Tom Marchioro for informing me about this step.)</p><p>Older versions of XCode installed the command line tools (which are required to properly install CPAN modules) by default, but apparently newer ones do not. To check whether you have the command line tools already installed, run the following from the Terminal:</p><p><code>$ which make</code></p><p>This command checks the system for the &ldquo;<code>make</code>&rdquo; tool. If it spits out something like&nbsp;<code>/usr/bin/make</code>&nbsp;you&rsquo;re golden and can skip ahead to Step 2. If you just get a new prompt and no output, you&rsquo;ll need to install the tools:</p><ol>
<li>Launch XCode and bring up the Preferences panel.</li>
<li>Click on the Downloads tab</li>
<li>Click to install the Command Line Tools</li>
</ol><p>If you like, you can run&nbsp;<code>which make</code>&nbsp;again to confirm that everything&rsquo;s installed correctly.</p><h4>2) Configure CPAN.</h4><p><code>$ sudo perl -MCPAN -e shell</code></p><p><code>perl&gt; o conf init</code></p><p>This will prompt you for some settings. You can accept the defaults for almost everything (just hit &ldquo;return&rdquo;). The two things you must fill in are the path to&nbsp;<code>make</code>&nbsp;(which should be&nbsp;<code>/usr/bin/make</code>&nbsp;or the value returned when you run&nbsp;<code>which make</code>&nbsp;from the command line) and your choice of CPAN mirrors (which you actually choose don&rsquo;t really matter, but it won&rsquo;t let you finish until you select at least one). If you use a proxy or a very restrictive firewall, you may have to configure those settings as well.</p><p>If you skip Step 2, you may get errors about&nbsp;<code>make</code>&nbsp;being unavailable.</p><h4>3) Upgrade CPAN</h4><p><code>$ sudo perl -MCPAN -e 'install Bundle::CPAN'</code></p><p>Don&rsquo;t forget the&nbsp;<code>sudo</code>, or it&rsquo;ll fail with permissions errors, probably when doing something relatively unimportant like installing&nbsp;<code>man</code>&nbsp;files.</p><p>This will spend a long time downloading, testing, and compiling various files and dependencies. Bear with it. It will prompt you a few times about dependencies. You probably want to enter &ldquo;yes&rdquo;. I agreed to everything it asked me, and everything turned out fine. YMMV of course. If everything installs properly, it&rsquo;ll give you an &ldquo;OK&rdquo; at the end.</p><h4>4) Install your modules. For each module&hellip;.</h4><p><code>$ sudo perl -MCPAN -e 'install Bundle::Name'</code></p><p>or</p><p><code>$ sudo perl -MCPAN -e 'install Module::Name'</code></p><p>This will install the module&nbsp;<em>and</em>&nbsp;its dependencies. Nice, eh? Again, don&rsquo;t forget the&nbsp;<code>sudo</code>.</p><p>The first time you run this after upgrading CPAN, it may prompt you to configure again (see Step 2). If you accept its offer to try to configure itself automatically, it may just run through everything without a problem.</p><p>There are a couple of potential pitfalls with specific modules (such as the<code>LWP::UserAgent</code>&nbsp;/&nbsp;<code>HEAD</code>&nbsp;issue), but most have workarounds, and I haven&rsquo;t run into anything that wasn&rsquo;t easily recoverable.</p><p>And that&rsquo;s it!</p><p>Did you find this useful? Is there anything I missed?</p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/33586/genetic-mapper-svg-genetic-map-drawer</guid>
	<pubDate>Sun, 18 Jun 2017 14:11:10 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/33586/genetic-mapper-svg-genetic-map-drawer</link>
	<title><![CDATA[Genetic-mapper: SVG Genetic Map Drawer]]></title>
	<description><![CDATA[<p><span>Genetic-mapper is a perl script able to draw publication-ready vectorial genetic maps.</span></p>
<p>Perl script for creating a publication-ready vectorial genetic/linkage map in Scalable Vector Graphics (SVG) format. The resulting file can either be submitted for publication and edited with any vectorial drawing software like&nbsp;<a href="https://inkscape.org/">Inkscape</a>&nbsp;and&nbsp;<a href="http://www.adobe.com/uk/products/illustrator.html">Abobe Illustrator(R)</a>.</p>
<p>The input file must be a text file with at least the marker name (ID), linkage group (LG) and the position (POS) separeted by tabulations. Additionally a logarithm of odds (LOD score) can be provided. Any extra parameter will be ignored.</p>
<pre><code>map.tsv

ID&lt;tab&gt;LG&lt;tab&gt;POS&lt;tab&gt;LOD
13519  12     0       0.250840894
2718   12     1.0     0.250840893
11040  12     1.6     0.252843341
...</code></pre>
<p>https://github.com/pseudogene/genetic-mapper</p><p>Address of the bookmark: <a href="https://github.com/pseudogene/genetic-mapper" rel="nofollow">https://github.com/pseudogene/genetic-mapper</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>

</channel>
</rss>