<?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/27971?offset=820</link>
	<atom:link href="https://bioinformaticsonline.com/related/27971?offset=820" 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/opportunity/view/19695/china-university-of-macau-phd-position-2015-in-bioinformatics-computer-science</guid>
  <pubDate>Mon, 22 Dec 2014 00:12:49 -0600</pubDate>
  <link></link>
  <title><![CDATA[China University of Macau PhD Position 2015 in Bioinformatics, Computer Science]]></title>
  <description><![CDATA[
<p>The Computational Biology and Bioinformatics Group at the University of Macau is inviting applications for PhD Position. Applicants will work on a research project focusing on the flexible receptor protein-ligand docking algorithms for computer-aided drug design.  The candidate will be working as part of a team in developing novel metaheuristic algorithms and scoring functions for large-scale, highly flexible protein-ligand docking problems. The duration of this PhD position is 2-3 years, starting in August 2015. Remuneration paid to candidate is MOP 11000-14000/month (~USD 1375-1750/month). The applications should be submitted before March 2015.</p>

<p>Study Subject(s): PhD position is award in the field of Bioinformatics/Computer Science.<br />Course Level: Position is available for pursuing PhD degree level at the University of Macau.<br />Scholarship Provider: University of Macau<br />Scholarship can be taken at: China</p>

<p>Eligibility: The ideal candidate would be a master degree holder in Bioinformatics or related disciplines with knowledge in Medical sciences or Life sciences (with GPA of at least 3.0 on a 4-point scale or equivalent) . Knowledge in programming (C and C++) and Linux scripting are necessary; experience in molecular docking, molecular dynamics simulations or molecular modeling is an advantage. The candidate should be fluent in spoken and written English; preference will be given to applicants with good publication records in relevant areas.</p>

<p>Scholarship Open for International Students: Researchers from China can apply for this PhD position.</p>

<p>Scholarship Description:</p>

<p>The Computational Biology and Bioinformatics Group at the University of Macau is looking for a motivated PhD student in Bioinformatics or Computer Science to work on a research project focusing on the flexible receptor protein-ligand docking algorithms for computer-aided drug design.  The candidate will be working as part of a team in developing novel metaheuristic algorithms and scoring functions for large-scale, highly flexible protein-ligand docking problems.</p>

<p>Number of award(s): There is only one PhD position available.</p>

<p>Duration of award(s): The duration of this PhD position is 2-3 years.</p>

<p>What does it cover? Remuneration paid to candidate is  MOP 11000-14000/month (~USD 1375-1750/month).</p>

<p>Selection Criteria: Not Known</p>

<p>Notification: Not Known</p>

<p>How to Apply: Send your current CV, your academic transcripts, a letter of motivation and research interests, two letters of recommendations from academic faculty to Dr. Shirley Siu at shirleysiu[at]umac.mo before March 2015.</p>

<p>Scholarship Application Deadline: The applications should be submitted before March 2015.</p>
]]></description>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/34413/coursera-genome-assembly-tutorial</guid>
	<pubDate>Sat, 25 Nov 2017 08:57:25 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/34413/coursera-genome-assembly-tutorial</link>
	<title><![CDATA[coursera genome assembly tutorial]]></title>
	<description><![CDATA[<p><span>Solutions to Coursera Genome Sequencing (Bioinformatics II)</span></p><p>Address of the bookmark: <a href="https://github.com/iansealy/coursera-assembly" rel="nofollow">https://github.com/iansealy/coursera-assembly</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/opportunity/view/19811/jnu-neurosciencesystems-biologymathematical-modeling-jrf-vacancies</guid>
  <pubDate>Fri, 26 Dec 2014 11:22:20 -0600</pubDate>
  <link></link>
  <title><![CDATA[JNU Neuroscience/Systems Biology/Mathematical modeling JRF Vacancies]]></title>
  <description><![CDATA[
<p>School of Computational and Integrative Sciences<br />Jawaharlal Nehru University<br />New Delhi 110067</p>

<p>Recruitment for Project</p>

<p>Applications were invited from the citizens of India for filling up the following temporary position for the CSIR sponsored Fellowship in the School of Computational and Integrative Sciences, Jawaharlal Nehru University, New Delhi 110067. This position is temporary for a period of two and half years or tenable only for the duration of the project. The requisite qualifications &amp; experience are given below.</p>

<p>Project Title : "Understanding Complex dynamics and Information processing in Brain Networks"<br />Funding Agency : CSIR</p>

<p>Principal Investigator : Dr. R.K. Brojen Singh</p>

<p>Position : Junior Research Fellow(One post)</p>

<p>Salary : As per CSIR rules and guidelines for JRF.</p>

<p>Qualifications &amp; Experience : M.Sc. in Physics/Mathematics/Biology/B.Tech. In Eng. Physics/Comp. Sc. and desirable CSIR-UGC NET Qualified. Candidates should also have at least one years research experience after M. Sc./B.Tech. in works related to Neuroscience/Mathematical modeling.</p>

<p>Candidates possessing requisite qualifications may apply either on plain paper stating the project title along with CV and send to the following address or send as email attachment (pdf or word format) so as to reach on or before 8 January, 2014.</p>

<p>Dr. R.K. Brojen Singh<br />School of Computational and Integrative Sciences<br />Jawharlal Nehru University<br />New Delhi 110067<br />Email: brojen@jnu.ac.in, brojen@mail.jnu.ac.in</p>
]]></description>
</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/news/view/20015/illumina-smartphone-chip</guid>
	<pubDate>Tue, 30 Dec 2014 23:19:54 -0600</pubDate>
	<link>https://bioinformaticsonline.com/news/view/20015/illumina-smartphone-chip</link>
	<title><![CDATA[Illumina Smartphone Chip !!!]]></title>
	<description><![CDATA[<p>Illumina, the company that claims it brought human genome sequencing down to $1000 prices, has now turned its attention to a consumer product - a chip that you can plug into your smartphone and have it read your genetic information.<br /><br />The biggest challenge ahead of Illumina is simplifying the process of genetic sequencing. Currently, Illumina&rsquo;s DNA sequencers are gigantic machines that use techinques like colorimetry to work, but while the core technology is computational, it takes some 30 steps to extract genetic data and run it through. This process will likely have to be hugely simplified on mobile devices, given the fact that some studies require extracting 10 mililiters of blood. Illumina researchers are also working on finding the optimal technology for this on-chip DNA sequencing - be it electrical, optical, or other.<br /><br />Illumina is one of the most prominent names in genetics, often said to be the Intel of genetic sequencing, as just like Intel it provides the algorithms, the processing brain that runs a DNA reading task.<br /><br />In other recent smartphone-related biotech news, drug company Pfizer launched its REMOTE project, a new type of clinical trial that does not require going to a hospital for checks - targeted at patients with overactive bladder problems, the FDA-approved REMOTE project allowed to gather data from patients from over 10 states remotely, via mobile devices.<br /><br /></p><p>This is indeed the Illumina answer to Apple's Health app, HealthBook, Google HealthFit.</p>]]></description>
	<dc:creator>Robert M Willioms</dc:creator>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/opportunity/view/20449/walk-in-interview-for-the-post-of-jrf-and-project-assistant-cift</guid>
  <pubDate>Tue, 20 Jan 2015 23:03:20 -0600</pubDate>
  <link></link>
  <title><![CDATA[WALK-IN-INTERVIEW for the post of JRF and Project Assistant @ CIFT]]></title>
  <description><![CDATA[
<p>Eligible candidates are invited to attend a walk-in-Interview with all relevant documents for the following positions of Project Fellows (on contractual basis) to work in the Project “ Genetic Diversity of Clostridium botulinum in seafood and Development of Lateral Flow Immuno Assay (LFIA) for toxinotyping  funded by Department of Biotechnology.   The duration of the project is 3 years / co-terminus with the scheme.</p>

<p>Jr. Research Fellow – 2 posts</p>

<p>    Fellowship    :   Rs. 25000/- + 20% HRA pm  for Ist &amp; 2nd year and Rs.28000/- + HRA on 3rd year</p>

<p>    Qualification :    Ist class Masters Degree in Microbiology/Fishery Microbiology/Bio-technology.</p>

<p>    Desirable        :  </p>

<p>    1. CSIR/UGC NET/JRF qualified</p>

<p>    2. Excellent analytical skills and computer documentation</p>

<p>    3. Prior experience in handling microbial cultures and molecular techniques</p>

<p>Project Assistant – 1 post</p>

<p>Fellowship    :    Rs.8000/- p.m (consolidated)</p>

<p>Qualification:   Masters degree in Microbiology/Biotechnology with skill in Bioinformatics</p>

<p>Desirable:   Excellent analytical skills in Bioinformatics and computer documentation</p>

<p>Terms &amp; Conditions:</p>

<p>Registration will begin at 8.30 a.m and will close at 11.00 am<br />Age limit (as on 29.1.2015):  Below 35 years for men and 40 years for women.<br />Age relaxation of 3 year for OBC candidates and 5 years for SC/ST candidates is permissible.<br />Candidates are required to submit self-attested copies of all the Certificates in support of their claims    regarding age, educational qualifications, scheduled caste/scheduled tribe/OBC etc.  The original certificates shall be produced for verification before the interview.<br />Candidates should bring detailed bio-data (in the enclosed format)  affixing a recent passport size photograph.<br />The selected candidate will be recruited on contract basis under ICAR norms.  The post is purely temporary and is co-terminus with the project.<br />The candidates attending the interview should ensure that they fulfil all the eligibility conditions.  No correspondence will be entertained from the candidates for selection/test/appointment.<br />No TA/DA will be paid to attend the interview.<br />Canvassing in any form will render the candidate disqualified for the post.<br />The Director’s decision will be final and binding in all aspects regarding the selection to the post.</p>

<p>Venue: CIFT, Matsyapuri.P.O, Cochin                  Date of interview:  29.01.2015          Time:  10.00 am</p>

<p>http://www.cift.res.in/uploads/userfiles/file/file/srf%20appn.doc</p>
]]></description>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/opportunity/view/20387/walk-in-interview-for-project-assistant-bharathidasan-university</guid>
  <pubDate>Mon, 12 Jan 2015 21:54:10 -0600</pubDate>
  <link></link>
  <title><![CDATA[WALK-IN-INTERVIEW FOR PROJECT ASSISTANT @ BHARATHIDASAN UNIVERSITY]]></title>
  <description><![CDATA[
<p>BHARATHIDASAN UNIVERSITY<br />DEPARTMENT OF BIOINFORMATICS, SCHOOL OF LIFE SCIENCES, TIRUCHIRAPPALLI – 620024</p>

<p>Project title: “Genome-scale metabolic modeling and simulation of rumen methanogens An in silico attempt to methane attenuation”</p>

<p>Funding Agency: University Grants Commission, New Delhi</p>

<p>Tenure of the project: Two years or till the end of the project period.</p>

<p>Position: Project Assistant (1 no.)</p>

<p>Essential qualification: First class M.Sc. in Bioinformatics/Microbiology/ Biotechnology and other related discipline.</p>

<p>Desirable qualification: Experience in an area relevant (Molecular Systems Engineering) to the project.</p>

<p>Fellowship: Rs. 5000 per month as per the UGC norms.</p>

<p>Upper age limit: 28 years</p>

<p>Date of Venue of interview: 22.01.2015, Department of Bioinformatics, School of Life Sciences, Bharathidasan University, Tiruchirappalli -620 024, Tamil Nadu</p>

<p>The above post is purely temporary and will be terminated with three month notice.</p>

<p>The Terms and the condition of the appointment shall be governed according to UGC, Govt. of India. The eligible candidates will bring their original certificates and documents at the time of interview. No TA/DA will be paid for attending the interview.</p>

<p>Dr. P. CHELLAPANDI<br />UGC-Research Awardee,<br />Department of Bioinformatics,<br />School of Life Sciences,<br />Bharathidasan University,<br />Tiruchirappalli -620 024, Tamil Nadu</p>

<p>Advertisement: www.bdu.ac.in/adv/PA_UGC_Bioinformatics.pdf</p>
]]></description>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/news/view/20440/linux-operating-system-aimed-at-scientists</guid>
	<pubDate>Mon, 19 Jan 2015 08:30:49 -0600</pubDate>
	<link>https://bioinformaticsonline.com/news/view/20440/linux-operating-system-aimed-at-scientists</link>
	<title><![CDATA[Linux operating system aimed at scientists]]></title>
	<description><![CDATA[<p>The Bio-Linux operating system is based on Ubuntu 14.04 LTS (Trusty Tahr), and the previous version was using Ubuntu 12.04 LTS. The developers only use LTS releases and that means that upgrades for this distro don't come along all that often.<br /> <br /> This Linux distribution is aimed at scientists and it comes with more than 250 bioinformatics packages, 50 graphical applications and several hundred command line tools. And this is just skimming the surface of what the OS can do. Users have access to even more apps from the official repositories.</p><h3>Bio-Linux is using an Ubuntu LTS version as its base</h3><p>The fact that it uses Ubuntu LTS versions for the base is a good thing because it means its users won't have to worry about the support. Ubuntu 14.04 LTS is supported until 2019, so people who are using Bio-Linux shouldn't have a problem.<br /> <br /> "An updated Bio-Linux 8 version is now on the website in ISO and OVA versions. As usual, there is no need to download this version if you are an existing user. All updates to existing packages will be applied to your system through the update manager and new packages are all available via apt-get or Synaptic," reads the <a href="http://nebclists.nerc.ac.uk/pipermail/bio-linux-announce/2015-January/000020.html" target="_blank">announcement</a>.<br /> <br /> The changelog also states that a problem that was preventing the desktop to not start on VirtualBox has been fixed, the QIIME and Bowtie-Bio tools have been upgraded, the pandaseq paired end assembler has been added, and the beginners tutorial specific to Bio-Linux 8 has been improved.<br /> <br /> Check out the official announcement for a complete list of changes and updates. You can <a href="http://linux.softpedia.com/get/System/Operating-Systems/Linux-Distributions/Bio-Linux-45495.shtml" target="_blank"><strong>download Bio-Linux 8.0.5</strong></a> right now from Softpedia and give it a spin. It has the Unity desktop and now it runs very well in virtual environments.</p><p>Reference @ http://news.softpedia.com/news/Bioinformatics-Distro-Bio-Linux-8-0-5-Now-Available-for-Download-469867.shtml</p>]]></description>
	<dc:creator>Pranjali Yadav</dc:creator>
</item>

</channel>
</rss>