<?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/42552?offset=40</link>
	<atom:link href="https://bioinformaticsonline.com/related/42552?offset=40" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/43042/bioinformatics-in-thailand</guid>
	<pubDate>Wed, 28 Apr 2021 02:04:56 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/43042/bioinformatics-in-thailand</link>
	<title><![CDATA[Bioinformatics in Thailand !]]></title>
	<description><![CDATA[<p>Our international PhD and master programs are designed for students who desire focused training in the elements of biology, computer science, and information technology needed for a successful career in the exciting new discipline of Bioinformatics &amp; Systems Biology. Students in our program will receive comprehensive training in omics analysis, database design and management, software engineering and programming (including web-based development), simulation techniques and modeling, and data integration. Each student will apply their skills to a practical project, where they will design and implement a solution to a real-world problem under the guidance of an experienced mentor in industry or academia.</p>
<p><strong>https://bioinformatics.kmutt.ac.th/about.html</strong></p>
<p>Duangrudee Tanramluk (Ajarn Wi) uses computational biology and machine learning to tackle the key to drug design problems via MANORAA webserver.</p>
<p><strong>https://mb.mahidol.ac.th/en/bioinformatics/</strong></p>
<p><strong>https://graduate.mahidol.ac.th/inter/</strong></p>
<p>This&nbsp;international&nbsp;Doctorate programme is designed to further broaden students&rsquo; knowledge in Bioinformatics and Molecular Biology to their maximum capability.&nbsp;</p>
<p><strong>http://www.mbb.psu.ac.th/programmes/phd</strong></p>
<p>Ph.D. program in Bioinformatics and Computational Biology is a joint effort of the Faculty of Science and Faculty of Medicine, Chulalongkorn University. The program has study plans for both applicants who hold a bachelor&rsquo;s degree and applicants who hold a master&rsquo;s degree in any related fields of study.</p>
<p><strong>http://www.bioinfo.sc.chula.ac.th/ph-d-program-specialization/</strong></p>
<p>Additional detail&nbsp;</p>
<p><strong>https://www.biotec.or.th/en/index.php/research/research-units/genome-technology-research-unit</strong></p>
<p><strong>https://tbrcnetwork.org/labtbrc/index.php/bioinformatics-and-chemoinformatics/</strong></p>
<p><strong>https://genomicsthailand.com/Genomic/home</strong></p><p>Address of the bookmark: <a href="https://bioinformatics.kmutt.ac.th/" rel="nofollow">https://bioinformatics.kmutt.ac.th/</a></p>]]></description>
	<dc:creator>Shruti Paniwala</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/44648/modern-statistics-with-r</guid>
	<pubDate>Thu, 22 Aug 2024 04:44:06 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/44648/modern-statistics-with-r</link>
	<title><![CDATA[Modern Statistics with R]]></title>
	<description><![CDATA[<p>This is the online version of the second edition of&nbsp;<em>Modern Statistics with R</em>. It is free to use, and always will be.&nbsp;<a href="https://www.routledge.com/Modern-Statistics-with-R-From-Wrangling-and-Exploring-Data-to-Inference-and-Predictive-Modelling/Thulin/p/book/9781032512440">Printed copies</a>&nbsp;are available from CRC Press.</p>
<p><span>Live&nbsp;<a href="https://statistikakademin.se/in-english-r/">online courses on statistics with R</a></span>&nbsp;based on this book, led by the author, are offered regularly; see&nbsp;<a href="https://statistikakademin.se/in-english-r/">this page</a>&nbsp;for more information and dates.</p>
<p>The past decades have transformed the world of statistical data analysis, with new methods, new types of data, and new computational tools. The aim of&nbsp;<em>Modern Statistics with R</em>&nbsp;is to introduce you to key parts of the modern statistical toolkit. It teaches you:</p>
<ul>
<li><span>Data wrangling</span>&nbsp;- importing, formatting, reshaping, merging, and filtering data in R.</li>
<li><span>Exploratory data analysis</span>&nbsp;- using visualisations and multivariate techniques to explore datasets.</li>
<li><span>Statistical inference</span>&nbsp;- modern methods for testing hypotheses and computing confidence intervals.</li>
<li><span>Predictive modelling</span>&nbsp;- regression models and machine learning methods for prediction, classification, and forecasting.</li>
<li><span>Simulation</span>&nbsp;- using simulation techniques for sample size computations and evaluations of statistical methods.</li>
<li><span>Ethics in statistics</span>&nbsp;- ethical issues and good statistical practice.</li>
<li><span>R programming</span>&nbsp;- writing code that is fast, readable, and (hopefully!) free from bugs.</li>
</ul>
<p>The book includes plenty of examples and more than 200 exercises with worked solutions.&nbsp;<a href="http://www.modernstatisticswithr.com/data.zip">The datasets used for the examples and the exercises can be downloaded here.</a></p><p>Address of the bookmark: <a href="https://www.modernstatisticswithr.com/" rel="nofollow">https://www.modernstatisticswithr.com/</a></p>]]></description>
	<dc:creator>LEGE</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/39307/awk-for-beginners</guid>
	<pubDate>Fri, 26 Apr 2019 16:19:41 -0500</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/39307/awk-for-beginners</link>
	<title><![CDATA[AWK for beginners !]]></title>
	<description><![CDATA[<p>AWK is a standard tool on every POSIX-compliant UNIX system. It&rsquo;s like flex/lex, from the command-line, perfect for text-processing tasks and other scripting needs. It has a C-like syntax, but without mandatory semicolons (although, you should use them anyway, because they are required when you&rsquo;re writing one-liners, something AWK excels at), manual memory management, or static typing. It excels at text processing. You can call to it from a shell script, or you can use it as a stand-alone scripting language.</p><p>Why use AWK instead of Perl? Readability. AWK is easier to read than Perl. For simple text-processing scripts, particularly ones that read files line by line and split on delimiters, AWK is probably the right tool for the job.</p><div><pre><span>#!/usr/bin/awk -f</span>

<span># Comments are like this</span>


<span># AWK programs consist of a collection of patterns and actions.</span>
<span>pattern1</span> <span>{</span> <span>action</span><span>;</span> <span>}</span> <span># just like lex</span>
<span>pattern2</span> <span>{</span> <span>action</span><span>;</span> <span>}</span>

<span># There is an implied loop and AWK automatically reads and parses each</span>
<span># record of each file supplied. Each record is split by the FS delimiter,</span>
<span># which defaults to white-space (multiple spaces,tabs count as one)</span>
<span># You can assign FS either on the command line (-F C) or in your BEGIN</span>
<span># pattern</span>

<span># One of the special patterns is BEGIN. The BEGIN pattern is true</span>
<span># BEFORE any of the files are read. The END pattern is true after</span>
<span># an End-of-file from the last file (or standard-in if no files specified)</span>
<span># There is also an output field separator (OFS) that you can assign, which</span>
<span># defaults to a single space</span>

<span>BEGIN</span> <span>{</span>

    <span># BEGIN will run at the beginning of the program. It's where you put all</span>
    <span># the preliminary set-up code, before you process any text files. If you</span>
    <span># have no text files, then think of BEGIN as the main entry point.</span>

    <span># Variables are global. Just set them or use them, no need to declare..</span>
    <span>count</span> <span>=</span> <span>0</span><span>;</span>

    <span># Operators just like in C and friends</span>
    <span>a</span> <span>=</span> <span>count</span> <span>+</span> <span>1</span><span>;</span>
    <span>b</span> <span>=</span> <span>count</span> <span>-</span> <span>1</span><span>;</span>
    <span>c</span> <span>=</span> <span>count</span> <span>*</span> <span>1</span><span>;</span>
    <span>d</span> <span>=</span> <span>count</span> <span>/</span> <span>1</span><span>;</span> <span># integer division</span>
    <span>e</span> <span>=</span> <span>count</span> <span>%</span> <span>1</span><span>;</span> <span># modulus</span>
    <span>f</span> <span>=</span> <span>count</span> <span>^</span> <span>1</span><span>;</span> <span># exponentiation</span>

    <span>a</span> <span>+=</span> <span>1</span><span>;</span>
    <span>b</span> <span>-=</span> <span>1</span><span>;</span>
    <span>c</span> <span>*=</span> <span>1</span><span>;</span>
    <span>d</span> <span>/=</span> <span>1</span><span>;</span>
    <span>e</span> <span>%=</span> <span>1</span><span>;</span>
    <span>f</span> <span>^=</span> <span>1</span><span>;</span>

    <span># Incrementing and decrementing by one</span>
    <span>a</span><span>++</span><span>;</span>
    <span>b</span><span>--</span><span>;</span>

    <span># As a prefix operator, it returns the incremented value</span>
    <span>++</span><span>a</span><span>;</span>
    <span>--</span><span>b</span><span>;</span>

    <span># Notice, also, no punctuation such as semicolons to terminate statements</span>

    <span># Control statements</span>
    <span>if</span> <span>(</span><span>count</span> <span>==</span> <span>0</span><span>)</span>
        <span>print</span> <span>"Starting with count of 0"</span><span>;</span>
    <span>else</span>
        <span>print</span> <span>"Huh?"</span><span>;</span>

    <span># Or you could use the ternary operator</span>
    <span>print</span> <span>(</span><span>count</span> <span>==</span> <span>0</span><span>)</span> <span>?</span> <span>"Starting with count of 0"</span> <span>:</span> <span>"Huh?"</span><span>;</span>

    <span># Blocks consisting of multiple lines use braces</span>
    <span>while</span> <span>(</span><span>a</span> <span>&lt;</span> <span>10</span><span>)</span> <span>{</span>
        <span>print</span> <span>"String concatenation is done"</span> <span>" with a series"</span> <span>" of"</span>
            <span>" space-separated strings"</span><span>;</span>
        <span>print</span> <span>a</span><span>;</span>

        <span>a</span><span>++</span><span>;</span>
    <span>}</span>

    <span>for</span> <span>(</span><span>i</span> <span>=</span> <span>0</span><span>;</span> <span>i</span> <span>&lt;</span> <span>10</span><span>;</span> <span>i</span><span>++</span><span>)</span>
        <span>print</span> <span>"Good ol' for loop"</span><span>;</span>

    <span># As for comparisons, they're the standards:</span>
    <span># a &lt; b   # Less than</span>
    <span># a &lt;= b  # Less than or equal</span>
    <span># a != b  # Not equal</span>
    <span># a == b  # Equal</span>
    <span># a &gt; b   # Greater than</span>
    <span># a &gt;= b  # Greater than or equal</span>

    <span># Logical operators as well</span>
    <span># a &amp;&amp; b  # AND</span>
    <span># a || b  # OR</span>

    <span># In addition, there's the super useful regular expression match</span>
    <span>if</span> <span>(</span><span>"foo"</span> <span>~</span> <span>"^fo+$"</span><span>)</span>
        <span>print</span> <span>"Fooey!"</span><span>;</span>
    <span>if</span> <span>(</span><span>"boo"</span> <span>!~</span> <span>"^fo+$"</span><span>)</span>
        <span>print</span> <span>"Boo!"</span><span>;</span>

    <span># Arrays</span>
    <span>arr</span><span>[</span><span>0</span><span>]</span> <span>=</span> <span>"foo"</span><span>;</span>
    <span>arr</span><span>[</span><span>1</span><span>]</span> <span>=</span> <span>"bar"</span><span>;</span>

    <span># You can also initialize an array with the built-in function split()</span>

    <span>n</span> <span>=</span> <span>split</span><span>(</span><span>"foo:bar:baz"</span><span>,</span> <span>arr</span><span>,</span> <span>":"</span><span>);</span>

    <span># You also have associative arrays (actually, they're all associative arrays)</span>
    <span>assoc</span><span>[</span><span>"foo"</span><span>]</span> <span>=</span> <span>"bar"</span><span>;</span>
    <span>assoc</span><span>[</span><span>"bar"</span><span>]</span> <span>=</span> <span>"baz"</span><span>;</span>

    <span># And multi-dimensional arrays, with some limitations I won't mention here</span>
    <span>multidim</span><span>[</span><span>0</span><span>,</span><span>0</span><span>]</span> <span>=</span> <span>"foo"</span><span>;</span>
    <span>multidim</span><span>[</span><span>0</span><span>,</span><span>1</span><span>]</span> <span>=</span> <span>"bar"</span><span>;</span>
    <span>multidim</span><span>[</span><span>1</span><span>,</span><span>0</span><span>]</span> <span>=</span> <span>"baz"</span><span>;</span>
    <span>multidim</span><span>[</span><span>1</span><span>,</span><span>1</span><span>]</span> <span>=</span> <span>"boo"</span><span>;</span>

    <span># You can test for array membership</span>
    <span>if</span> <span>(</span><span>"foo"</span> <span>in</span> <span>assoc</span><span>)</span>
        <span>print</span> <span>"Fooey!"</span><span>;</span>

    <span># You can also use the 'in' operator to traverse the keys of an array</span>
    <span>for</span> <span>(</span><span>key</span> <span>in</span> <span>assoc</span><span>)</span>
        <span>print</span> <span>assoc</span><span>[</span><span>key</span><span>];</span>

    <span># The command line is in a special array called ARGV</span>
    <span>for</span> <span>(</span><span>argnum</span> <span>in</span> <span>ARGV</span><span>)</span>
        <span>print</span> <span>ARGV</span><span>[</span><span>argnum</span><span>];</span>

    <span># You can remove elements of an array</span>
    <span># This is particularly useful to prevent AWK from assuming the arguments</span>
    <span># are files for it to process</span>
    <span>delete</span> <span>ARGV</span><span>[</span><span>1</span><span>];</span>

    <span># The number of command line arguments is in a variable called ARGC</span>
    <span>print</span> <span>ARGC</span><span>;</span>

    <span># AWK has several built-in functions. They fall into three categories. I'll</span>
    <span># demonstrate each of them in their own functions, defined later.</span>

    <span>return_value</span> <span>=</span> <span>arithmetic_functions</span><span>(</span><span>a</span><span>,</span> <span>b</span><span>,</span> <span>c</span><span>);</span>
    <span>string_functions</span><span>();</span>
    <span>io_functions</span><span>();</span>
<span>}</span>

<span># Here's how you define a function</span>
<span>function</span> <span>arithmetic_functions</span><span>(</span><span>a</span><span>,</span> <span>b</span><span>,</span> <span>c</span><span>,</span>     <span>d</span><span>)</span> <span>{</span>

    <span># Probably the most annoying part of AWK is that there are no local</span>
    <span># variables. Everything is global. For short scripts, this is fine, even</span>
    <span># useful, but for longer scripts, this can be a problem.</span>

    <span># There is a work-around (ahem, hack). Function arguments are local to the</span>
    <span># function, and AWK allows you to define more function arguments than it</span>
    <span># needs. So just stick local variable in the function declaration, like I</span>
    <span># did above. As a convention, stick in some extra whitespace to distinguish</span>
    <span># between actual function parameters and local variables. In this example,</span>
    <span># a, b, and c are actual parameters, while d is merely a local variable.</span>

    <span># Now, to demonstrate the arithmetic functions</span>

    <span># Most AWK implementations have some standard trig functions</span>
    <span>localvar</span> <span>=</span> <span>sin</span><span>(</span><span>a</span><span>);</span>
    <span>localvar</span> <span>=</span> <span>cos</span><span>(</span><span>a</span><span>);</span>
    <span>localvar</span> <span>=</span> <span>atan2</span><span>(</span><span>b</span><span>,</span> <span>a</span><span>);</span> <span># arc tangent of b / a</span>

    <span># And logarithmic stuff</span>
    <span>localvar</span> <span>=</span> <span>exp</span><span>(</span><span>a</span><span>);</span>
    <span>localvar</span> <span>=</span> <span>log</span><span>(</span><span>a</span><span>);</span>

    <span># Square root</span>
    <span>localvar</span> <span>=</span> <span>sqrt</span><span>(</span><span>a</span><span>);</span>

    <span># Truncate floating point to integer</span>
    <span>localvar</span> <span>=</span> <span>int</span><span>(</span><span>5.34</span><span>);</span> <span># localvar =&gt; 5</span>

    <span># Random numbers</span>
    <span>srand</span><span>();</span> <span># Supply a seed as an argument. By default, it uses the time of day</span>
    <span>localvar</span> <span>=</span> <span>rand</span><span>();</span> <span># Random number between 0 and 1.</span>

    <span># Here's how to return a value</span>
    <span>return</span> <span>localvar</span><span>;</span>
<span>}</span>

<span>function</span> <span>string_functions</span><span>(</span>    <span>localvar</span><span>,</span> <span>arr</span><span>)</span> <span>{</span>

    <span># AWK, being a string-processing language, has several string-related</span>
    <span># functions, many of which rely heavily on regular expressions.</span>

    <span># Search and replace, first instance (sub) or all instances (gsub)</span>
    <span># Both return number of matches replaced</span>
    <span>localvar</span> <span>=</span> <span>"fooooobar"</span><span>;</span>
    <span>sub</span><span>(</span><span>"fo+"</span><span>,</span> <span>"Meet me at the "</span><span>,</span> <span>localvar</span><span>);</span> <span># localvar =&gt; "Meet me at the bar"</span>
    <span>gsub</span><span>(</span><span>"e+"</span><span>,</span> <span>"."</span><span>,</span> <span>localvar</span><span>);</span> <span># localvar =&gt; "m..t m. at th. bar"</span>

    <span># Search for a string that matches a regular expression</span>
    <span># index() does the same thing, but doesn't allow a regular expression</span>
    <span>match</span><span>(</span><span>localvar</span><span>,</span> <span>"t"</span><span>);</span> <span># =&gt; 4, since the 't' is the fourth character</span>

    <span># Split on a delimiter</span>
    <span>n</span> <span>=</span> <span>split</span><span>(</span><span>"foo-bar-baz"</span><span>,</span> <span>arr</span><span>,</span> <span>"-"</span><span>);</span> <span># a[1] = "foo"; a[2] = "bar"; a[3] = "baz"; n = 3</span>

    <span># Other useful stuff</span>
    <span>sprintf</span><span>(</span><span>"%s %d %d %d"</span><span>,</span> <span>"Testing"</span><span>,</span> <span>1</span><span>,</span> <span>2</span><span>,</span> <span>3</span><span>);</span> <span># =&gt; "Testing 1 2 3"</span>
    <span>substr</span><span>(</span><span>"foobar"</span><span>,</span> <span>2</span><span>,</span> <span>3</span><span>);</span> <span># =&gt; "oob"</span>
    <span>substr</span><span>(</span><span>"foobar"</span><span>,</span> <span>4</span><span>);</span> <span># =&gt; "bar"</span>
    <span>length</span><span>(</span><span>"foo"</span><span>);</span> <span># =&gt; 3</span>
    <span>tolower</span><span>(</span><span>"FOO"</span><span>);</span> <span># =&gt; "foo"</span>
    <span>toupper</span><span>(</span><span>"foo"</span><span>);</span> <span># =&gt; "FOO"</span>
<span>}</span>

<span>function</span> <span>io_functions</span><span>(</span>    <span>localvar</span><span>)</span> <span>{</span>

    <span># You've already seen print</span>
    <span>print</span> <span>"Hello world"</span><span>;</span>

    <span># There's also printf</span>
    <span>printf</span><span>(</span><span>"%s %d %d %d\n"</span><span>,</span> <span>"Testing"</span><span>,</span> <span>1</span><span>,</span> <span>2</span><span>,</span> <span>3</span><span>);</span>

    <span># AWK doesn't have file handles, per se. It will automatically open a file</span>
    <span># handle for you when you use something that needs one. The string you used</span>
    <span># for this can be treated as a file handle, for purposes of I/O. This makes</span>
    <span># it feel sort of like shell scripting, but to get the same output, the string</span>
    <span># must match exactly, so use a variable:</span>

    <span>outfile</span> <span>=</span> <span>"/tmp/foobar.txt"</span><span>;</span>

    <span>print</span> <span>"foobar"</span> <span>&gt;</span> <span>outfile</span><span>;</span>

    <span># Now the string outfile is a file handle. You can close it:</span>
    <span>close</span><span>(</span><span>outfile</span><span>);</span>

    <span># Here's how you run something in the shell</span>
    <span>system</span><span>(</span><span>"echo foobar"</span><span>);</span> <span># =&gt; prints foobar</span>

    <span># Reads a line from standard input and stores in localvar</span>
    <span>getline</span> <span>localvar</span><span>;</span>

    <span># Reads a line from a pipe (again, use a string so you close it properly)</span>
    <span>cmd</span> <span>=</span> <span>"echo foobar"</span><span>;</span>
    <span>cmd</span> <span>|</span> <span>getline</span> <span>localvar</span><span>;</span> <span># localvar =&gt; "foobar"</span>
    <span>close</span><span>(</span><span>cmd</span><span>);</span>

    <span># Reads a line from a file and stores in localvar</span>
    <span>infile</span> <span>=</span> <span>"/tmp/foobar.txt"</span><span>;</span>
    <span>getline</span> <span>localvar</span> <span>&lt;</span> <span>infile</span><span>;</span> 
    <span>close</span><span>(</span><span>infile</span><span>);</span>
<span>}</span>

<span># As I said at the beginning, AWK programs consist of a collection of patterns</span>
<span># and actions. You've already seen the BEGIN pattern. Other</span>
<span># patterns are used only if you're processing lines from files or standard</span>
<span># input.</span>
<span>#</span>
<span># When you pass arguments to AWK, they are treated as file names to process.</span>
<span># It will process them all, in order. Think of it like an implicit for loop,</span>
<span># iterating over the lines in these files. these patterns and actions are like</span>
<span># switch statements inside the loop. </span>

<span>/^fo+bar$/</span> <span>{</span>

    <span># This action will execute for every line that matches the regular</span>
    <span># expression, /^fo+bar$/, and will be skipped for any line that fails to</span>
    <span># match it. Let's just print the line:</span>

    <span>print</span><span>;</span>

    <span># Whoa, no argument! That's because print has a default argument: $0.</span>
    <span># $0 is the name of the current line being processed. It is created</span>
    <span># automatically for you.</span>

    <span># You can probably guess there are other $ variables. Every line is</span>
    <span># implicitly split before every action is called, much like the shell</span>
    <span># does. And, like the shell, each field can be access with a dollar sign</span>

    <span># This will print the second and fourth fields in the line</span>
    <span>print</span> <span>$</span><span>2</span><span>,</span> <span>$</span><span>4</span><span>;</span>

    <span># AWK automatically defines many other variables to help you inspect and</span>
    <span># process each line. The most important one is NF</span>

    <span># Prints the number of fields on this line</span>
    <span>print</span> <span>NF</span><span>;</span>

    <span># Print the last field on this line</span>
    <span>print</span> <span>$</span><span>NF</span><span>;</span>
<span>}</span>

<span># Every pattern is actually a true/false test. The regular expression in the</span>
<span># last pattern is also a true/false test, but part of it was hidden. If you</span>
<span># don't give it a string to test, it will assume $0, the line that it's</span>
<span># currently processing. Thus, the complete version of it is this:</span>

<span>$</span><span>0</span> <span>~</span> <span>/^fo+bar$/</span> <span>{</span>
    <span>print</span> <span>"Equivalent to the last pattern"</span><span>;</span>
<span>}</span>

<span>a</span> <span>&gt;</span> <span>0</span> <span>{</span>
    <span># This will execute once for each line, as long as a is positive</span>
<span>}</span>

<span># You get the idea. Processing text files, reading in a line at a time, and</span>
<span># doing something with it, particularly splitting on a delimiter, is so common</span>
<span># in UNIX that AWK is a scripting language that does all of it for you, without</span>
<span># you needing to ask. All you have to do is write the patterns and actions</span>
<span># based on what you expect of the input, and what you want to do with it.</span>

<span># Here's a quick example of a simple script, the sort of thing AWK is perfect</span>
<span># for. It will read a name from standard input and then will print the average</span>
<span># age of everyone with that first name. Let's say you supply as an argument the</span>
<span># name of a this data file:</span>
<span>#</span>
<span># Bob Jones 32</span>
<span># Jane Doe 22</span>
<span># Steve Stevens 83</span>
<span># Bob Smith 29</span>
<span># Bob Barker 72</span>
<span>#</span>
<span># Here's the script:</span>

<span>BEGIN</span> <span>{</span>

    <span># First, ask the user for the name</span>
    <span>print</span> <span>"What name would you like the average age for?"</span><span>;</span>

    <span># Get a line from standard input, not from files on the command line</span>
    <span>getline</span> <span>name</span> <span>&lt;</span> <span>"/dev/stdin"</span><span>;</span>
<span>}</span>

<span># Now, match every line whose first field is the given name</span>
<span>$</span><span>1</span> <span>==</span> <span>name</span> <span>{</span>

    <span># Inside here, we have access to a number of useful variables, already</span>
    <span># pre-loaded for us:</span>
    <span># $0 is the entire line</span>
    <span># $3 is the third field, the age, which is what we're interested in here</span>
    <span># NF is the number of fields, which should be 3</span>
    <span># NR is the number of records (lines) seen so far</span>
    <span># FILENAME is the name of the file being processed</span>
    <span># FS is the field separator being used, which is " " here</span>
    <span># ...etc. There are plenty more, documented in the man page.</span>

    <span># Keep track of a running total and how many lines matched</span>
    <span>sum</span> <span>+=</span> <span>$</span><span>3</span><span>;</span>
    <span>nlines</span><span>++</span><span>;</span>
<span>}</span>

<span># Another special pattern is called END. It will run after processing all the</span>
<span># text files. Unlike BEGIN, it will only run if you've given it input to</span>
<span># process. It will run after all the files have been read and processed</span>
<span># according to the rules and actions you've provided. The purpose of it is</span>
<span># usually to output some kind of final report, or do something with the</span>
<span># aggregate of the data you've accumulated over the course of the script.</span>

<span>END</span> <span>{</span>
    <span>if</span> <span>(</span><span>nlines</span><span>)</span>
        <span>print</span> <span>"The average age for "</span> <span>name</span> <span>" is "</span> <span>sum</span> <span>/</span> <span>nlines</span><span>;</span>
<span>}</span>
</pre><p><span>&nbsp;</span></p></div>]]></description>
	<dc:creator>BioJoker</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/12206/bioinformatics-algorithms-tutorials</guid>
	<pubDate>Tue, 24 Jun 2014 00:10:45 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/12206/bioinformatics-algorithms-tutorials</link>
	<title><![CDATA[Bioinformatics algorithms tutorials]]></title>
	<description><![CDATA[<p>Useful bioinformatics tutorial, such as</p>
<p>De Bruijn Graphs for NGS Assembly<br>Algorithms for PacBio Reads<br>Software and Hardware Concepts for Bioinformatics<br>Finding us in Homolog.us (Search Algorithms)<br>NGS Genome and RNAseq Assembly - a Hands on Primer<br>Introduction to PERL, Python, R and C/C++ for Bioinformatics</p><p>Address of the bookmark: <a href="http://www.homolog.us/Tutorials/" rel="nofollow">http://www.homolog.us/Tutorials/</a></p>]]></description>
	<dc:creator>John Parker</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/news/view/21312/r-for-microsoft-excel</guid>
	<pubDate>Wed, 18 Feb 2015 00:43:27 -0600</pubDate>
	<link>https://bioinformaticsonline.com/news/view/21312/r-for-microsoft-excel</link>
	<title><![CDATA[R for Microsoft Excel]]></title>
	<description><![CDATA[<div><p>If you currently use a spreadsheet like Microsoft Excel for data analysis, you might be interested in taking a look at this <a href="https://districtdatalabs.silvrback.com/intro-to-r-for-microsoft-excel-users" target="_blank">tutorial on how to transition from Excel to R</a>&nbsp;by Tony Ojeda. The tutorial explains how to use R functions in place of Excel formulas, including tools like =AVERAGE and =VLOOKUP. For the most part, it uses modern R packages to keep the R code clear and concise.</p><p>You'll likely still be using Excel as a data source, though, so you'll also want to check out this <a href="http://www.milanor.net/blog/?p=779" target="_blank">guide to importing data from Excel to R</a> from MilanoR.</p></div><p>Reference http://www.r-bloggers.com/an-r-tutorial-for-microsoft-excel-users/</p>]]></description>
	<dc:creator>Jitendra Narayan</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/21367/a-guide-for-complete-r-beginners-r-syntax</guid>
	<pubDate>Fri, 20 Feb 2015 23:41:03 -0600</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/21367/a-guide-for-complete-r-beginners-r-syntax</link>
	<title><![CDATA[A guide for complete R beginners :- R Syntax]]></title>
	<description><![CDATA[<p>R is a functional based language, the inputs to a function, including options, are in brackets. Note that all dat and options are separated by a comma</p><ul>
<li>Function(data, options)</li>
</ul><p>Even quit is a function</p><ul>
<li>q()</li>
</ul><p>So is help</p><blockquote><p><strong>help(read.table)</strong></p></blockquote><p>Provides the help page for the FUNCTION &lsquo;read.table&rsquo;</p><blockquote><p><strong>help.search(&ldquo;t test&rdquo;)</strong></p></blockquote><p>Searches for help pages that might relate to the phrase &lsquo;t test&rsquo;</p><p><strong>NOTE</strong>: quotes are needed for search strings, they are not needed when referring to data objects or function names.</p><p>There is a short cut for help,</p><p>? shows the help page on a function name, same as <em>help(function)</em></p><blockquote><p><strong>?read.table</strong></p></blockquote><p>?? searches for help pages on functions, same as <em>help.search(&lsquo;phrase&rsquo;)</em></p><blockquote><p><strong>??&ldquo;t test&rdquo;</strong></p></blockquote><p>Information is usually returned from a function, by default this is printed to screen</p><blockquote><p><strong>read.table(&lsquo;data.tsv&rsquo;)</strong></p></blockquote><p>This can always be stored, we call what it is stored in an &lsquo;object&rsquo;</p><p><strong>mydata </strong></p><p>here <strong>mydata</strong> is an object of type <span style="text-decoration: underline;">dataframe</span></p><p><strong>Reminder:</strong></p><ul>
<li>Vector: a list of numbers, equivalent to a column in a table</li>
<li>Data Frame = a collection of vectors. Equivalent to a table</li>
</ul><p><strong>Hint</strong>:</p><ul>
<li>Up/Down arrow keys can be use to cycle through previous commands</li>
</ul>]]></description>
	<dc:creator>Archana Malhotra</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/21703/coding-ground</guid>
	<pubDate>Tue, 17 Mar 2015 00:47:20 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/21703/coding-ground</link>
	<title><![CDATA[Coding Ground]]></title>
	<description><![CDATA[<p>Online coding group for most of the programming languages.</p>
<p>Code in almost all popular languages using Coding Ground.&nbsp;Edit, compile, execute and share your projects, 100% cloud.</p>
<p>http://www.tutorialspoint.com/codingground.htm</p><p>Address of the bookmark: <a href="http://www.tutorialspoint.com/codingground.htm" rel="nofollow">http://www.tutorialspoint.com/codingground.htm</a></p>]]></description>
	<dc:creator>Jitendra Narayan</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/26426/genome-browser-gbrowse</guid>
	<pubDate>Fri, 19 Feb 2016 09:22:43 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/26426/genome-browser-gbrowse</link>
	<title><![CDATA[Genome Browser : GBrowse]]></title>
	<description><![CDATA[<p>Generic Genome Browser Version 2: A Tutorial for Administrators</p>
<p>This is an extensive tutorial to take you through the main features and gotchas of configuring GBrowse as a server. This tutorial assumes that you have successfully set up Perl, GD, BioPerl and the other GBrowse dependencies. If you haven't, please see the <a href="http://gmod.org/wiki/GBrowse_2.0_HOWTO">GBrowse HOWTO</a> During most of the tutorial, we will be using the "in-memory" GBrowse database (no relational database required!) Later we will show how to set up a genome size database using the berkeleydb and MySQL adaptors.</p>
<p>More at http://elp.ucdavis.edu/tutorial/tutorial.html</p><p>Address of the bookmark: <a href="http://elp.ucdavis.edu/tutorial/tutorial.html" rel="nofollow">http://elp.ucdavis.edu/tutorial/tutorial.html</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/26539/scikit-learn</guid>
	<pubDate>Mon, 29 Feb 2016 17:39:24 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/26539/scikit-learn</link>
	<title><![CDATA[scikit-learn]]></title>
	<description><![CDATA[<p>Machine Learning in Python</p>
<p>Simple and efficient tools for data mining and data analysis<br> Accessible to everybody, and reusable in various contexts<br> Built on NumPy, SciPy, and matplotlib<br> Open source, commercially usable - BSD license</p>
<p>More at&nbsp;http://scikit-learn.org/stable/index.html</p>
<p>&nbsp;</p><p>Address of the bookmark: <a href="http://scikit-learn.org/stable/auto_examples/index.html" rel="nofollow">http://scikit-learn.org/stable/auto_examples/index.html</a></p>]]></description>
	<dc:creator>Jitendra Prajapati</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/27078/homer-software-for-motif-discovery-and-next-gen-sequencing-analysis</guid>
	<pubDate>Tue, 26 Apr 2016 03:48:23 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/27078/homer-software-for-motif-discovery-and-next-gen-sequencing-analysis</link>
	<title><![CDATA[HOMER:  Software for motif discovery and next-gen sequencing analysis]]></title>
	<description><![CDATA[<p><span>This tutorial covers topics independently of HOMER, and represents knowledge which is important to know before diving head first into more advanced analysis tools such as HOMER.</span></p>
<ol>
<li><a href="http://homer.salk.edu/homer/basicTutorial/computerSetup.html">Setting up your computing environment</a></li>
<li><a href="http://homer.salk.edu/homer/basicTutorial/retrieveFiles.html">Retrieving and storing sequencing files</a>&nbsp;(your own data or from public sources)</li>
<li><a href="http://homer.salk.edu/homer/basicTutorial/fastqFiles.html">Checking sequence quality, trimming, general sequence manipulation</a></li>
<li><a href="http://homer.salk.edu/homer/basicTutorial/mapping.html">Mapping reads to a reference genome</a></li>
<li><a href="http://homer.salk.edu/homer/basicTutorial/samfiles.html">Manipulating SAM/BAM alignment files</a></li>
<li><a href="http://homer.salk.edu/homer/basicTutorial/genomeBrowsers.html">Visualizing data in a genome browser</a></li>
</ol>
<p><br>RNA-Seq</p>
<ol>
<li><a href="http://homer.salk.edu/homer/basicTutorial/rnaseqCufflinks.html">De novo transcript discovery and differential analysis with Cufflinks</a></li>
<li><a href="http://homer.salk.edu/homer/basicTutorial/rnaseqR.html">Differential expression analysis with R/Bioconductor</a></li>
<li><a href="http://homer.salk.edu/homer/basicTutorial/clustering.html">Clustering of large expression datasets (microarray or RNA-Seq)</a></li>
</ol>
<p><br><span>Microarray</span></p>
<ol>
<li><a href="http://homer.salk.edu/homer/basicTutorial/affymetrix.html">Basic analysis of Affymetrix Gene Expression Arrays using R/Bioconductor</a></li>
</ol>
<p><span>General Tips for Data Analysis</span></p>
<ol>
<li><a href="http://homer.salk.edu/homer/basicTutorial/excelTips.html">Excel workarounds, adding gene annotation, X-Y plots tips, etc.</a></li>
</ol><p>Address of the bookmark: <a href="http://homer.salk.edu/homer/basicTutorial/" rel="nofollow">http://homer.salk.edu/homer/basicTutorial/</a></p>]]></description>
	<dc:creator>Neel</dc:creator>
</item>

</channel>
</rss>