<?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/2422?</link>
	<atom:link href="https://bioinformaticsonline.com/related/2422?" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/11735/search-shell-command-history</guid>
	<pubDate>Thu, 12 Jun 2014 17:43:34 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/11735/search-shell-command-history</link>
	<title><![CDATA[Search Shell Command History]]></title>
	<description><![CDATA[<p>We use couple of hundreads of command in daily basis. Most of them are actually repeated several time. The question remain open how do I search old command history under bash shell and modify or reuse it? <br /><br />Now a days almost all modern shell allows you to search command history if enabled by user. Use history command to display the history list with line numbers. Lines listed with with a * have been modified by user.</p><p><br /><strong>Shell history search command</strong><br /><br />Type history at a shell prompt:<br />$ history</p><p>It will display the list of all used commandline history with an serial number.<br /><br />To search particular command, enter:<br />$ history | grep command-name<br />$ history | egrep -i 'scp|ssh|ftp'<br />Emacs Line-Edit Mode Command History Searching<br /><br />To get previous command containing string, hit [CTRL]+[r] followed by search string:<br /><br />(reverse-i-search): <br /><br />To get previous command, hit [CTRL]+[p]. You can also use up arrow key.<br /><br />CTRL-p<br /><br />To get next command, hit [CTRL]+[n]. You can also use down arrow key.<br /><br />CTRL-n<br /><br /></p><p><strong>fc command</strong></p><p>Apart from hostory command there are fc command to extract the command from history. The fc stands for either "find command" or "fix command.</p><p>For example list last 10 command, enter:<br />$ fc -l 10<br />To list commands 130 through 150, enter:<br />$ fc -l 130 150<br />To list all commands since the last command beginning with ssh, enter:<br />$ fc -l ssh<br />You can edit commands 1 through 5 using vi text editor, enter:<br />$ fc -e vi 1 5</p><p><strong>Delete command history</strong><br /><br />The -c option causes the history list to be cleared by deleting all of the entries:<br />$ history -c</p>]]></description>
	<dc:creator>Rahul Nayak</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/10182/biocodesbioscripts</guid>
	<pubDate>Tue, 22 Apr 2014 20:53:33 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/10182/biocodesbioscripts</link>
	<title><![CDATA[BioCodes/BioScripts]]></title>
	<description><![CDATA[<p>Over the years most bioinformatics people amass a collection of small utility scripts which make their lives easier. Too often they are kept either in private repositories or as part of a public collection to which noone else can contribute. Biocode is a curated repository of general-use utility scripts.</p>
<p>Algorithms scripts @ https://github.com/jschendel/bioinformatics-algorithms-coursera</p><p>Address of the bookmark: <a href="https://github.com/jorvis/biocode" rel="nofollow">https://github.com/jorvis/biocode</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/9639/find-certain-filesdocuments-in-linux-os</guid>
	<pubDate>Sun, 06 Apr 2014 23:56:18 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/9639/find-certain-filesdocuments-in-linux-os</link>
	<title><![CDATA[Find certain files/documents in Linux OS]]></title>
	<description><![CDATA[<p>As bioinformatician I know the fact that we usually handle the large dataset and lost in the huge numbers of files and folders. In order to search the missing file a strong search command is required. The Linux Find Command is one of the most important and much used command in Linux sytems. Find command used to search and locate list of files and directories based on conditions you specify for files that match the arguments. Find can be used in variety of conditions like you can find files by permissions, users, groups, file type, date, size and other possible criteria.<br /><br />Through this article we are sharing our day-to-day Linux find command experience and its usage in the form of examples. In this article we will show you the most used 35 Find Commands examples in Linux. We have divided the section into Five parts from basic to advance usage of find command.</p><p><strong>Part I &ndash; Basic Find Commands for Finding Files with Names</strong><br />1. Find Files Using Name in Current Directory<br /><br />Find all the files whose name is gene.txt in a current working directory.<br /><br /># find . -name gene.txt<br /><br />./gene.txt<br /><br />2. Find Files Under Home Directory<br /><br />Find all the files under /home directory with name gene.txt.<br /><br /># find /home -name gene.txt<br /><br />/home/gene.txt<br /><br />3. Find Files Using Name and Ignoring Case<br /><br />Find all the files whose name is gene.txt and contains both capital and small letters in /home directory.<br /><br /># find /home -iname gene.txt<br /><br />./gene.txt<br />./Gene.txt<br /><br />4. Find Directories Using Name<br /><br />Find all directories whose name is Gene in / directory.<br /><br /># find / -type d -name Gene<br /><br />/Gene<br /><br />5. Find fasta Files Using Name<br /><br />Find all php files whose name is gene.fasta in a current working directory.<br /><br /># find . -type f -name gene.fasta<br /><br />./gene.fasta<br /><br />6. Find all PHP Files in Directory<br /><br />Find all fasta files in a directory.<br /><br /># find . -type f -name "*.fasta"<br /><br />./gene.fasta<br />./cancer.fasta<br />./allgene.fasta<br /><br /><strong>Part II &ndash; Find Files Based on their Permissions</strong><br />7. Find Files With 777 Permissions<br /><br />Find all the files whose permissions are 777.<br /><br /># find . -type f -perm 0777 -print<br /><br />8. Find Files Without 777 Permissions<br /><br />Find all the files without permission 777.<br /><br /># find / -type f ! -perm 777<br /><br />9. Find SGID Files with 644 Permissions<br /><br />Find all the SGID bit files whose permissions set to 644.<br /><br /># find / -perm 2644<br /><br />10. Find Sticky Bit Files with 551 Permissions<br /><br />Find all the Sticky Bit set files whose permission are 551.<br /><br /># find / -perm 1551<br /><br />11. Find SUID Files<br /><br />Find all SUID set files.<br /><br /># find / -perm /u=s<br /><br />12. Find SGID Files<br /><br />Find all SGID set files.<br /><br /># find / -perm /g+s<br /><br />13. Find Read Only Files<br /><br />Find all Read Only files.<br /><br /># find / -perm /u=r<br /><br />14. Find Executable Files<br /><br />Find all Executable files.<br /><br /># find / -perm /a=x<br /><br />15. Find Files with 777 Permissions and Chmod to 644<br /><br />Find all 777 permission files and use chmod command to set permissions to 644.<br /><br /># find / -type f -perm 0777 -print -exec chmod 644 {} \;<br /><br />16. Find Directories with 777 Permissions and Chmod to 755<br /><br />Find all 777 permission directories and use chmod command to set permissions to 755.<br /><br /># find / -type d -perm 777 -print -exec chmod 755 {} \;<br /><br />17. Find and remove single File<br /><br />To find a single file called gene.txt and remove it.<br /><br /># find . -type f -name "gene.txt" -exec rm -f {} \;<br /><br />18. Find and remove Multiple File<br /><br />To find and remove multiple files such as .fa or .gb, then use.<br /><br /># find . -type f -name "*.fa" -exec rm -f {} \;<br /><br />OR<br /><br /># find . -type f -name "*.gb" -exec rm -f {} \;<br /><br />19. Find all Empty Files<br /><br />To file all empty files under certain path.<br /><br /># find /tmp -type f -empty<br /><br />20. Find all Empty Directories<br /><br />To file all empty directories under certain path.<br /><br /># find /tmp -type d -empty<br /><br />21. File all Hidden Files<br /><br />To find all hidden files, use below command.<br /><br /># find /tmp -type f -name ".*"<br /><br /><strong>Part III &ndash; Search Files Based On Owners and Groups</strong><br />22. Find Single File Based on User<br /><br />To find all or single file called gene.txt under / root directory of owner root.<br /><br /># find / -user root -name gene.txt<br /><br />23. Find all Files Based on User<br /><br />To find all files that belongs to user Rahul under /home directory.<br /><br /># find /home -user rahul<br /><br />24. Find all Files Based on Group<br /><br />To find all files that belongs to group Developer under /home directory.<br /><br /># find /home -group developer<br /><br />25. Find Particular Files of User<br /><br />To find all .txt files of user Rahul under /home directory.<br /><br /># find /home -user rahul -iname "*.txt"<br /><br /><strong>Part IV &ndash; Find Files and Directories Based on Date and Time</strong><br />26. Find Last 50 Days Modified Files<br /><br />To find all the files which are modified 50 days back.<br /><br /># find / -mtime 50<br /><br />27. Find Last 50 Days Accessed Files<br /><br />To find all the files which are accessed 50 days back.<br /><br /># find / -atime 50<br /><br />28. Find Last 50-100 Days Modified Files<br /><br />To find all the files which are modified more than 50 days back and less than 100 days.<br /><br /># find / -mtime +50 &ndash;mtime -100<br /><br />29. Find Changed Files in Last 1 Hour<br /><br />To find all the files which are changed in last 1 hour.<br /><br /># find / -cmin -60<br /><br />30. Find Modified Files in Last 1 Hour<br /><br />To find all the files which are modified in last 1 hour.<br /><br /># find / -mmin -60<br /><br />31. Find Accessed Files in Last 1 Hour<br /><br />To find all the files which are accessed in last 1 hour.<br /><br /># find / -amin -60<br /><br /><strong>Part V &ndash; Find Files and Directories Based on Size</strong><br />32. Find 50MB Files<br /><br />To find all 50MB files, use.<br /><br /># find / -size 50M<br /><br />33. Find Size between 50MB &ndash; 100MB<br /><br />To find all the files which are greater than 50MB and less than 100MB.<br /><br /># find / -size +50M -size -100M<br /><br />34. Find and Delete 100MB Files<br /><br />To find all 100MB files and delete them using one single command.<br /><br /># find / -size +100M -exec rm -rf {} \;<br /><br />35. Find Specific Files and Delete<br /><br />Find all .gb files with more than 10MB and delete them using one single command.<br /><br /># find / -type f -name *.gb -size +10M -exec rm {} \;</p>]]></description>
	<dc:creator>Rahul Nayak</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/11030/r-programming-and-jobs-website</guid>
	<pubDate>Sun, 25 May 2014 14:43:57 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/11030/r-programming-and-jobs-website</link>
	<title><![CDATA[R programming and Jobs website]]></title>
	<description><![CDATA[<p>Welcome to the R Jobs section of ProgrammingR.com. If your organization has an R employment opportunity that you would like to have posted here, submit it via the <a href="http://www.programmingr.com/contact" title="contact page">contact page</a>. Prospective employees: use the contact information provided in the position listing to apply or contact the hiring organization.</p><p>Address of the bookmark: <a href="http://www.programmingr.com/category/stype/r-job-listings/" rel="nofollow">http://www.programmingr.com/category/stype/r-job-listings/</a></p>]]></description>
	<dc:creator>Pragati Singh</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/428/five-unique-traits-of-effective-computational-biologist</guid>
	<pubDate>Thu, 11 Jul 2013 13:12:51 -0500</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/428/five-unique-traits-of-effective-computational-biologist</link>
	<title><![CDATA[Five unique traits of effective computational biologist]]></title>
	<description><![CDATA[<p>Bioinformatics research is driven by large set of software, scripts, and tools to analyse gigantic biological data. Being a great biological programmer or bioinformatician involves more than writing code that works. The biological programmers who rise to the top ranks of their profession are not only good programmer but also expert in biological stuff. Moreover, In order to be a good and effective biological programmer, you need to possess a combination of traits that allow your computational as well as biological skill, experience, and knowledge to produce working code. There are some technically skilled biological programmers who will never be effective because they lack the other important traits needed. Here are top five traits that are necessary to become a great biological programmer.</p><p><strong>1. Learn and get updated</strong></p><p>Some of the bad biological programmers only learn new technical or non-technical things when it&rsquo;s absolutely necessary. The good biological programmers learn new technical skills proactively. But great biological programmers not only learn new technical skills on their own but also learn non-technical skills, and have an open mind to sources of knowledge that others may shut out.</p><p>In other concrete term, the bad biological programmer learn Perl's regular expression when they started a project on comparative genomics; the good biological programmer learned it a year before because it looked interesting; and the great biological programmer also read about the BioPerl packages, genomics, DNA string, genomic theories, or some similar course of study so that they could understand the results and explain it biologically.</p><p><strong>2. Not a merely coder!!!</strong></p><p>I often encountered with biological programmer who call themself a hard-core computer programmer and avoid biology. I can almost guarantee that if you are one of them then you are not doing research but merely writing "dry" codes.</p><p>According to my supervisor most of the computational biologist, don't know what they are doing biologically. Even they struggle to explain their own programs output and results. Therefore, It is highly advisable to learn basic of biology which can assist you to explain the result and understand your discovery. Always remember you are a researcher not a coder.</p><p><strong>3. Be Social with biologist</strong></p><p>The computational biologist spends most of the time in from of computers, writing codes. They always think their job is to produce working codes, not technical research perfections. But, they are completely wrong. You should not forget that apart from your computational skills you also need some biologist, other than your supervisor, to explain and make you understand the complex biological mechanism.</p><p>I highly recommend your to interact with biotech researchers and learn how do they explain their one graph (which they generally produce after one year of work) biologically. Remember, the origin of your research project is complex biological phenomenon, which is more complex than that of your limited programming rules.</p><p><strong>4. Do not search, research for answers</strong></p><p>Researching for answers means more than typing several keywords into a search engine or posting a question at Stack Overflow or the BioStars forums. I have entered problems into search engines that generate no results, and every question I posted on Stack Overflow or the BioStars forums never got anything resembling an answer, yet I solved the issues and moved on. I&rsquo;m not a magician &mdash; I just know how to find answers or discover root causes.</p><p>Many problems are situational, and if you depend on search engines and forums, you can waste a lot of time going down a rabbit hole and possibly never getting a solution. Learn to perform root cause analysis, learn enough about the underlying system to look for other clues and solutions, and learn to take a long distance view of an issue before deep diving into it.</p><p><strong>5. Love and defend your research</strong></p><p>You cannot rise to the top in this research profession without loving your work. There are some very good &ldquo;it&rsquo;s just a job&rdquo; biological programmers (I&rsquo;ve been one at times), but if that is your outlook, you won&rsquo;t be willing to do whatever it takes to succeed. This idea gets a lot of folks in a huff, because they feel it is a personal insult. &ldquo;I&rsquo;m a good programmer, but I have other priorities and can&rsquo;t make work my life.&rdquo; I understand completely; I have other priorities too. As much as I hate to say it, when I am passionate about my work, I am willing (though not eager) to abandon my other priorities to finish the job. It is not an insult to say that if you aren&rsquo;t willing to pull out all the stops you can&rsquo;t be the best, it is a fact.</p><p>You must be passionate about more than programming &mdash; you must also be excited about your research, the tools and technology you are using, and so on. I have seen very good and even great biological programmers operating at mediocre levels because something was not a good fit, such as they hated the project or were using a technology they disliked. Therefore, like your research project and get excited about your discoveries. You have not only to discover but also defend your finding with scientific words.</p><p>Thanks to all of you for reading.</p>]]></description>
	<dc:creator>Jitendra Narayan</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>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/news/view/1469/prime-minister%E2%80%99s-100k-genome-project</guid>
	<pubDate>Thu, 08 Aug 2013 09:40:39 -0500</pubDate>
	<link>https://bioinformaticsonline.com/news/view/1469/prime-minister%E2%80%99s-100k-genome-project</link>
	<title><![CDATA[Prime Minister’s 100k Genome Project]]></title>
	<description><![CDATA[<p>Genomics Ebgland is destined to sequence 100,000 patients over the next five year in England.&nbsp; A landmark project by british government.</p><p>Genomics England will play a key role in building on the UK&rsquo;s long track record as leader in medical science advances to push the boundaries by unlocking the power of DNA data. The UK will become the first ever country to introduce this technology in its mainstream health system &ndash; leading the global race for better tests, better drugs and above all better, more personalised care.</p><p>http://www.genomicsengland.co.uk/100k-genome-project/</p>]]></description>
	<dc:creator>Jitendra Narayan</dc:creator>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/opportunity/view/2054/postdoc-positions-mammalian-transcriptome-evolution-at-sib</guid>
  <pubDate>Mon, 12 Aug 2013 19:58:33 -0500</pubDate>
  <link></link>
  <title><![CDATA[Postdoc Positions - Mammalian Transcriptome Evolution at SIB]]></title>
  <description><![CDATA[
<p>BIOINFORMATICS POSTDOC IN FUNCTIONAL EVOLUTIONARY GENOMICS</p>

<p>Center for Integrative Genomics, University of Lausanne, Switzerland</p>

<p>Two postdoctoral positions (2 years with possible extensions up to 5 years) are available immediately in the evolutionary genomics group of Henrik Kaessmann.</p>

<p>We are seeking highly qualified and enthusiastic applicants with strong skills in computational biology/bioinformatics, preferably also with experience in data mining and comparative or evolutionary genome analysis.</p>

<p>We have been interested in a range of topics related to the functional evolution of genomes from primates (e.g., the emergence of new genes and their functions) and other mammals (e.g., the origin and evolution of mammalian sex chromosomes). In the framework of a recently launched series of projects, a large amount of transcriptome and genome (e.g., epigenome) data are being produced by the wet lab unit of the group using next generation sequencing technologies for a unique collection of tissues from representative mammals and outgroup species (e.g., birds). Topics of current projects based on these data include the origins and/or evolution of protein-coding genes, alternative splicing, microRNAs, long noncoding RNAs, and dosage compensation.</p>

<p>The postdoctoral fellow will perform integrated evolutionary/bioinformatics analyses based on data produced in the lab and available genomic data. The specific project will be developed together with the candidate.</p>

<p>The language of the institute is English, and its members form an international group that is rapidly expanding. The institute is located in Lausanne, a beautiful city at Lake Geneva.</p>

<p>For more information on the group and our institute more generally, please refer to our website: http://www.unil.ch/cig/page7858_en.html</p>

<p>Please submit a CV, statement of research interest, and names of three references to: Henrik Kaessmann (Henrik.Kaessmann@unil.ch).</p>

<p>Webpage : http://www.unil.ch/cig/page7858.html</p>
]]></description>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/view/2021</guid>
	<pubDate>Mon, 12 Aug 2013 09:27:57 -0500</pubDate>
	<link>https://bioinformaticsonline.com/view/2021</link>
	<title><![CDATA[What are the difference between BioRuby and BioGem?]]></title>
	<description><![CDATA[<p>I came across two diferent but matching term BioRuby and BioGem. What are the difference between these two term? If both are using same Ruby language for development then why did they develope two different biological packages.</p>]]></description>
	<dc:creator>Neel</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/2461/taverna-workflow-management-system</guid>
	<pubDate>Thu, 15 Aug 2013 19:34:32 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/2461/taverna-workflow-management-system</link>
	<title><![CDATA[Taverna Workflow Management System]]></title>
	<description><![CDATA[<p>Taverna is an open source domain independent Workflow Management System &ndash; a suite of tools used to design and execute scientific workflows. Taverna has been created by the myGrid project and is funded through a range of organisations and projects.</p>
<p>The Taverna suite is written in Java and includes the Taverna Engine(used for enacting workflows) that powers both the Taverna Workbench(the desktop client application) and the Taverna Server (which allows remote execution of workflows). Taverna is also available as a Command Line Tool for a quick execution of workflows from a terminal.</p><p>Address of the bookmark: <a href="http://www.taverna.org.uk/" rel="nofollow">http://www.taverna.org.uk/</a></p>]]></description>
	<dc:creator>Madhvan Reddy</dc:creator>
</item>

</channel>
</rss>