<?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/23160?offset=920</link>
	<atom:link href="https://bioinformaticsonline.com/related/23160?offset=920" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/44200/dashboard-designing-tutorial</guid>
	<pubDate>Thu, 02 Mar 2023 06:48:43 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/44200/dashboard-designing-tutorial</link>
	<title><![CDATA[Dashboard designing tutorial !]]></title>
	<description><![CDATA[<p>Dashboard Design Tutorial</p><p>Address of the bookmark: <a href="https://github.com/dthill196/SARS-2-Dashboard-Tutorial" rel="nofollow">https://github.com/dthill196/SARS-2-Dashboard-Tutorial</a></p>]]></description>
	<dc:creator>BioStar</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/34463/single-cell-rnaseq-data-analysis-tutorial</guid>
	<pubDate>Mon, 27 Nov 2017 16:24:29 -0600</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/34463/single-cell-rnaseq-data-analysis-tutorial</link>
	<title><![CDATA[Single Cell RNAseq data analysis tutorial !!]]></title>
	<description><![CDATA[<ul>
<li>A major breakthrough (replaced microarrays) in the late 00&rsquo;s and has been widely used since</li>
<li>Measures the&nbsp;average expression level&nbsp;for each gene across a large population of input cells</li>
<li>Useful for comparative transcriptomics, e.g.&nbsp;samples of the same tissue from different species</li>
<li>Useful for quantifying expression signatures from ensembles, e.g.&nbsp;in disease studies</li>
<li>Insufficient&nbsp;for studying heterogeneous systems, e.g.&nbsp;early development studies, complex tissues (brain)</li>
<li>Does&nbsp;not&nbsp;provide insights into the stochastic nature of gene expression</li>
</ul><p>Following are the useful links:</p><p><a href="http://hemberg-lab.github.io/scRNA.seq.course/scRNA-seq-course.pdf" target="_blank">Single Cell RNAseq data analysis Tutorial</a></p><p><a href="https://f1000research.com/articles/5-2122/v2" target="_blank">A step-by-step workflow for low-level analysis of single-cell RNA-seq data</a></p><p><a href="https://www.bioconductor.org/help/workflows/simpleSingleCell/" target="_blank">A step-by-step workflow for low-level analysis of single-cell RNA-seq data with Bioconductor</a></p><p>SCell: single-cell RNA-seq analysis software</p><p><a href="https://github.com/diazlab/SCell">https://github.com/diazlab/SCell</a></p><p>Beta-Poisson model for single-cell RNA-seq data analyses</p><p><a href="https://github.com/nghiavtr/BPSC">https://github.com/nghiavtr/BPSC</a></p><p>Sincera: A Computational Pipeline for Single Cell RNA-Seq Profiling Analysis</p><p><a href="https://research.cchmc.org/pbge/sincera.html">https://research.cchmc.org/pbge/sincera.html</a></p><p>SC3 &ndash; consensus clustering of single-cell RNA-Seq data</p><p><a href="http://biorxiv.org/content/early/2016/09/02/036558">http://biorxiv.org/content/early/2016/09/02/036558</a></p><p>Citrus: A toolkit for single cell sequencing analysis</p><p><a href="http://biorxiv.org/content/early/2016/09/14/045070">http://biorxiv.org/content/early/2016/09/14/045070</a></p><p>Single-Cell Resolution of Temporal Gene Expression during Heart Development</p><p><a href="http://www.cell.com/developmental-cell/fulltext/S1534-5807%2816%2930682-7">http://www.cell.com/developmental-cell/fulltext/S1534-5807(16)30682-7</a></p><p>Scalable latent-factor models applied to single-cell RNA-seq data separate biological drivers from confounding effects</p><p><a href="http://biorxiv.org/content/early/2016/11/15/087775">http://biorxiv.org/content/early/2016/11/15/087775</a></p><p>Single cell transcriptomes identify human islet cell signatures and reveal cell-type-specific expression changes in type 2 diabetes</p><p><a href="http://genome.cshlp.org/content/early/2016/11/18/gr.212720.116.abstract">http://genome.cshlp.org/content/early/2016/11/18/gr.212720.116.abstract</a></p><p>SCODE: An efficient regulatory network inference algorithm from single-cell RNA-Seq during differentiation</p><p><a href="http://biorxiv.org/content/early/2016/11/21/088856">http://biorxiv.org/content/early/2016/11/21/088856</a></p><p>SCOUP is a probabilistic model to analyze single-cell expression data during differentiation</p><p><a href="https://github.com/hmatsu1226/SCOUP">https://github.com/hmatsu1226/SCOUP</a></p><p>scLVM is a modelling framework for single-cell RNA-seq data</p><p><a href="https://github.com/PMBio/scLVM">https://github.com/PMBio/scLVM</a></p><p>Selective Locally linear Inference of Cellular Expression Relationships (SLICER) algorithm for inferring cell trajectories</p><p><a href="https://github.com/jw156605/SLICER">https://github.com/jw156605/SLICER</a></p><p>SinQC: A Method and Tool to Control Single-cell RNA-seq Data Quality</p><p><a href="http://www.morgridge.net/SinQC.html">http://www.morgridge.net/SinQC.html</a></p><p>TSCAN: Pseudo-time reconstruction and evaluation in single-cell RNA-seq analysis</p><p><a href="https://github.com/zji90/TSCAN">https://github.com/zji90/TSCAN</a></p><p>Visualization and cellular hierarchy inference of single-cell data using SPADE</p><p><a href="http://www.nature.com/nprot/journal/v11/n7/full/nprot.2016.066.html">http://www.nature.com/nprot/journal/v11/n7/full/nprot.2016.066.html</a></p><p>OEFinder: Identify ordering effect genes in single cell RNA-seq data</p><p><a href="https://github.com/lengning/OEFinder">https://github.com/lengning/OEFinder</a></p>]]></description>
	<dc:creator>Robert M Willioms</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/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/17926/orange-bioinformatics-2534</guid>
	<pubDate>Mon, 06 Oct 2014 12:51:37 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/17926/orange-bioinformatics-2534</link>
	<title><![CDATA[Orange-Bioinformatics 2.5.34]]></title>
	<description><![CDATA[<p>Orange Bioinformatics extends <a href="http://orange.biolab.si/">Orange</a>, a data mining software package, with common functionality for bioinformatics. The provided functionality can be accessed as a Python library or through a visual programming interface (Orange Canvas). The latter is also suitable for non-programmers.</p>
<p>Orange Bioinformatics provides access to publicly available data, like GEO data sets, Biomart, GO, KEGG, Atlas, ArrayExpress, and PIPAx database. As for the analytics, there is gene selection, quality control, scoring distances between experiments with multiple factors. All features can be combined with powerful visualization, network exploration and data mining techniques from the Orange data mining framework.</p><p>Address of the bookmark: <a href="https://pypi.python.org/pypi/Orange-Bioinformatics/2.5.34" rel="nofollow">https://pypi.python.org/pypi/Orange-Bioinformatics/2.5.34</a></p>]]></description>
	<dc:creator>Robert M Willioms</dc:creator>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/opportunity/view/18380/jrfsrf-at-university-of-hyderabad</guid>
  <pubDate>Fri, 17 Oct 2014 01:55:44 -0500</pubDate>
  <link></link>
  <title><![CDATA[JRF/SRF at University of Hyderabad]]></title>
  <description><![CDATA[
<p>Applications are invited for the following post of Junior Research Fellow (temporary position coterminous with the project) under DBT funded research project on ““Understanding the functions of α1β1γ1/α2β1γ1 selective AMPK Modulators in dissecting the pharmacological role of these isozymes in metabolic diseases”</p>

<p>Qualified and interested candidates can send their curriculum vitae by e-mail to hr@drils.org on or before 27th October 2014 mention in the subject line of the mail the following code: AMPK-Biology.</p>

<p>Selected candidates will be called for a personal interview to Dr. Reddy’s Institute of Life Sciences, University of Hyderabad Campus, Gachibowli, Hyderabad. The selected candidate is expected to report within two weeks from the date of selection to start work on the project.</p>

<p>Junior Research Fellowship (Molecular Modeling/Biology) for two years and Senior Research fellowship for one year</p>

<p>Junior Research Fellowship: Rs. 15,600/- (consolidated) per month for first two years.<br />Senior Research Fellowship: Rs. 18,200/-(consolidated) per month for the 3rd year.</p>

<p>Duration: The duration of the fellowship is for three years. However, the performance of the candidate will be reviewed after the completion of every year and the fellowship will be renewed only upon satisfactory performance.</p>

<p>Responsibilities:</p>

<p>1) Literature search.<br />2) Design, plan and execute experiments under the supervision of the scientist.<br />3) Provide scientific support to the scientist in his/her research activities.<br />4) Book keeping and maintenance of stocks and consumables.</p>

<p>Essential Qualifications:</p>

<p>Required: M.Sc. in Microbiology/Biotechnology/Bioinformatics or any other related branch of basic Sciences from a recognized university/institute with a consistent academic record of minimum 60% aggregate in all qualifying examinations. The candidate should be NET qualified for lectureship. The candidate should be motivated to work with dedication.</p>

<p>Desirable: expertise/experience in both Molecular Modeling and Molecular Biology.</p>

<p>Experience: 0-2 years in the areas of Molecular Modeling and/or Molecular Biology and cell biology and Biochemistry.</p>

<p>Preferable: Relevant research experience as evident from thesis/dissertation/project work.</p>

<p>Advertisement: http://www.ilsresearch.org/userfiles/Junior%20REsearch%20Fellowship%20-%20AMPK(Biology).pdf</p>
]]></description>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/opportunity/view/18385/biinformamatics-lead-at-google-life-sciences</guid>
  <pubDate>Fri, 17 Oct 2014 02:24:55 -0500</pubDate>
  <link></link>
  <title><![CDATA[Biinformamatics Lead at Google Life Sciences]]></title>
  <description><![CDATA[
<p>Google Life Sciences is recruiting a technical lead with experience in bioinformatics and clinical bioinformatics, including for biomarker discovery projects such as the Baseline study.</p>

<p>Responsibilities</p>

<p>Lead teams of scientists in structuring, prototyping, and executing large-scale bioinformatic and other analysis.<br />Develop novel bioinformatics, statistical, data processing, pathway, data mining and other algorithms to identify biological signals and their clinical correlates in broad kinds of individual and population data.<br />Develop novel platform-level analytical tools for sequence-based assays (assembly, annotation, variant calling and interpretation, phasing, genome structure, etc.), expression assays (RNAseq and microarray), proteomics, and metabolomics.<br />Develop statistical models that robustly correlate complex laboratory-derived information with phenotypic and clinical information.<br />Create scientifically rigorous visualizations, communications, and presentations of results.</p>

<p>Reference @ https://www.google.com/about/careers/search#!t=jo&amp;jid=62095001</p>
]]></description>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/33617/list-of-universities-offering-bachelor-or-master-bioinformatics-degree-in-pakistan</guid>
	<pubDate>Wed, 21 Jun 2017 04:20:43 -0500</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/33617/list-of-universities-offering-bachelor-or-master-bioinformatics-degree-in-pakistan</link>
	<title><![CDATA[List of universities offering Bachelor or Master bioinformatics degree in Pakistan]]></title>
	<description><![CDATA[<p>There are a lot of universities offering Bachelor or Master degree in Pakistan. Following are the list of few intitute/universities</p><p>Bachelor/ BS Bioinformatics at<br />1. Al-khair University, Bhimber<br />2. Government College University, Faisalabad<br />3. University Of Agriculture, Faisalabad<br />4. Comsats Institute Of Information Technology [isb], Islamabad<br />5. International Islamic University, Islamabad<br />6. Quaid-e-azam University, Islamabad<br />7. Khushal Khan Khattak University, Karak<br />8. Virtual University Of Pakistan, Lahore<br />9. Virtual University Of Pakistan, Lahore<br />10. Hazara University, Mansehra<br />11. Shaheed Benazir Bhutto Women University, Peshawar<br />12. Comsats Institute Of Information Technology, Sahiwal<br />13. Capital University Of Science And Technology, Islamabad<br />14. Foundation University, Islamabad<br />15. Baqai Medical University/hospital, Karachi<br />16. Institute Of Business And Technology(main Campus), Karachi<br />17. Sir Syed University Of Engineering &amp; Technology, Karachi<br />18. Forman Christian College, Lahore<br />19. Qarshi University (lhr), Lahore<br />20. The Superior University, Lahore<br />21. University Of Management And Technology, Lahore<br />22. Federal Institute Of Health Sciences, Lahore<br />23. Shaheed Benazir Bhutto Women University Peshawar, Sub Campus, Swabi<br />24. Government Postgraduate College ( Mandian), Abbottabad<br />25. Federal Institute Of Health Sciences, Multan<br />26. Fedral Institute Of Health Sciences, Muzaffarabad<br />27. The Limit Institution Of Health Sciences, Sahiwal</p><p><br />Master/ MS Bioinformatics cources at<br />1. Government College University, Faisalabad<br />2. Comsats Institute Of Information Technology [isb], Islamabad<br />3. International Islamic University, Islamabad<br />4. National University Of Science &amp; Technology, Islamabad<br />5. Quaid-e-azam University, Islamabad<br />6. University Of Sindh, Jamshoro<br />7. Virtual University Of Pakistan, Lahore<br />8. Hazara University, Mansehra<br />9. Shaheed Benazir Bhutto Women University, Peshawar<br />10. Capital University Of Science And Technology, Islamabad<br />11. Cecos University Of Information Tech. &amp; Emerging Sciences, Peshawar</p><p>The real bioinformatics scope lies if there are research labs which work in this field. One has to take account of that. If so then try to get information of those labs and visit them to get a hang of the work they pursue.</p><p>There is a huge buzz of precision medicine in light of genomics all around the world. One should also try to see how genomics infrastructure is built up or standing in Pakistan. If research labs having collaboration with hospitals employ genomics then one must also visit such labs. This will bring new avenues in healthcare advances. Not only it opens up the wealth of knowledge one can make out of genomics study but will also advance the critical thinking of therapies.</p><p>So I would encourage to target research labs working in the fields and also get information of hospitals employing genomics, this will give you an overall understanding of the fields demand in your country.</p>]]></description>
	<dc:creator>Reshma Khatun</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/33629/list-of-universities-offering-bachelor-master-or-phd-bioinformatics-degree-in-malaysia</guid>
	<pubDate>Thu, 22 Jun 2017 01:34:02 -0500</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/33629/list-of-universities-offering-bachelor-master-or-phd-bioinformatics-degree-in-malaysia</link>
	<title><![CDATA[List of universities offering Bachelor,  Master or PhD bioinformatics degree in Malaysia]]></title>
	<description><![CDATA[<p>Bioinformatics is a newly emerging interdisciplinary research area, which may be defined as the ―interface between biological and computational sciences. Most of the Bioinformatics work that is done can be described as analyzing biological data, although a growing number of projects deal with the organization of biological information. The global Bioinformatics industry has grown at a double-digit growth rate in the past and is expected to follow the same pattern in the next four years. US remains the largest market in the world, but Asia-Pacific countries, particularly India and China, are witnessing the fastest growth and are anticipated to emerge as the dominating forces in future. The Comparison of Bioinformatics Industry between Malaysia, India and other countries&nbsp;are discussed in this&nbsp;<span>http://ijbssnet.com/journals/Vol.%202_No._10;_June_2011/11.pdf paper.</span></p><p>Bioinformatics is full of opportunities. The sector is poised to open new avenues for the other related sectors also. But the biggest opportunity area in the Bioinformatics market will be in the drug discovery sector. Reduction of both the cost and time taken to discover a new drug due to fast development in the Bioinformatics tools and software zone is also making drug discovery an attractive field to venture in. Malaysian bioinformatics growth and future are discuss in this https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2723929/ paper.&nbsp;Keeping all such inportance in mind, following universities in Malaysia offering bioinformatics cources:</p><p><strong>3 program(s) at AIMST University<strong>, Malaysia</strong></strong></p><p>Master of Science in Biotechnology (MSc) - Bioinformatics by Research</p><p>Master of Science (M.Sc) in Medical Microbiology (Bioinformatics) by Research</p><p>Doctor of Philosophy in Biotechnology (PhD) - Bioinformatics by Research</p><p>&nbsp;</p><p><strong>1 program(s) at INTI International University and Colleges<strong>, Malaysia</strong></strong></p><p>American Degree Transfer Program (Biosciences) in Bioinformatics</p><p>&nbsp;</p><p><strong>3 program(s) at Management and Science University (MSU)<strong>, Malaysia</strong></strong></p><p>Master in Bioinformatics (By Research)</p><p>PhD in Bioinformatics</p><p>Bachelor in Bioinformatics (Hons)</p><p>&nbsp;</p><p><strong>1 program(s) at Multimedia University (MMU)<strong>, Malaysia</strong></strong></p><p>Bachelor of Science (Honours) Bioinformatics</p><p>&nbsp;</p><p><strong>1 program(s) at Universiti Industri Selangor (UNISEL) Bestari Jaya Campus<strong>, Malaysia</strong></strong></p><p>Bachelor of Bioinformatics (Hons)</p><p>&nbsp;</p><p><strong>2 program(s) at Universiti Malaysia Sabah (UMS)<strong>, Malaysia</strong></strong></p><p>PhD - Doctor of Philosophy in Bioinformatics (By Research)</p><p>MSc - Master of Science in Bioinformatics (By Research)</p><p>&nbsp;</p><p><strong>6 program(s) at Universiti Putra Malaysia (UPM)<strong>, Malaysia</strong></strong></p><p>MSc - Master of Science in Bioinformatics by Research</p><p>Master of Science in Bioinformatics and System Biology by Research</p><p>Master of Science (M.Sc) in Bioinformatics and Systems Biology (With Thesis)</p><p>PhD - Doctor of Philosophy in Bioinformatics by Research</p><p>PhD - Doctor of Philosophy in Bioinformatics and Systems Biology (With Thesis)</p><p>PhD - Doctor of Philosophy in Bioinformatics and System Biology by Research</p><p>&nbsp;</p><p><strong>1 program(s) at Universiti Selangor (UNISEL)<strong>, Malaysia</strong></strong></p><p>Bachelor of Bioinformatics (Hons)</p><p>&nbsp;</p><p><strong>3 program(s) at Universiti Teknologi Malaysia (UTM)<strong>, Malaysia</strong></strong></p><p>M.Sc - Master of Science (Bioscience) in Bioinformatics Research Group (BIRG) By Research</p><p>PhD - Doctor of Philosophy (Bioscience) in Bioinformatics Research Group (BIRG) By Research</p><p>Bachelor of Computer Science (BioInformatics)</p><p>&nbsp;</p><p><strong>4 program(s) at University of Malaya (UM)<strong>, Malaysia</strong></strong></p><p>MSc - Master of Science in Bioinformatics by Research</p><p>Master in Bioinformatics by Coursework</p><p>PhD - Doctor of Philosophy in Bioinformatics by Research</p><p>Bachelor of Science (BSc) in Bioinformatics</p><p>&nbsp;</p><p><strong>3 program(s) at Perdana University<strong>, Malaysia</strong></strong></p><p>Master in Bioinformatics (By Research)</p><p>PhD in Bioinformatics</p><p>Bachelor in Bioinformatics (Hons)</p><p>&nbsp;</p><p><strong>3 program(s) at&nbsp;Monash University, Malaysia</strong></p><p>Master in Bioinformatics (By Research)</p><p>PhD in Bioinformatics</p><p>Bachelor in Bioinformatics (Hons)</p><p>&nbsp;</p><p><span>The real bioinformatics scope lies if there are research labs which work in this field. One has to take account of that. If so then try to get information of those labs and visit them to get a hang of the work they pursue. For detail Bioinformatics in Malaysia: Hope, Initiative, Effort, Reality, and Challenges are discussed in&nbsp;<span>https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2723929/ paper.</span></span></p>]]></description>
	<dc:creator>sahabuddin</dc:creator>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/opportunity/view/21685/uiar-short-term-trainingfinal-year-dissertation-project-in-life-sciencesbioinformaticsbiotech</guid>
  <pubDate>Mon, 16 Mar 2015 23:56:25 -0500</pubDate>
  <link></link>
  <title><![CDATA[UIAR Short-Term Training/Final Year Dissertation Project in Life Sciences/Bioinformatics/Biotech]]></title>
  <description><![CDATA[
<p>Short-term training/Final year dissertation project</p>

<p>Candidates desirous of doing a short-term training / final year dissertation project for MSc (Life Sciences/Bioinformatics/Biotechnology or any science discipline) at UIAR Biophysics and Bioinformatics department may please drop an email atanju@iiar.res.in along with their resume.</p>

<p>Selected candidates will be further intimated. There will be a fees charged for doing the project at UIAR. The projects will be experimental or computational or involve both.</p>

<p>The training scope will be in the following areas but not limited to:</p>

<p>Bioinformatics analysis, Docking and Virtual screening, Molecular Dynamics simulation, Cloning, expression and purification of proteins, Biophysical and Biochemical characterisation of proteins, Crystallization and Structural Studies.</p>

<p>Advertisement: www.iiar.res.in/?q=node/450</p>
]]></description>
</item>

</channel>
</rss>