<?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/37627?offset=60</link>
	<atom:link href="https://bioinformaticsonline.com/related/37627?offset=60" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/27965/cheatsheet-for-linux</guid>
	<pubDate>Wed, 22 Jun 2016 07:55:06 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/27965/cheatsheet-for-linux</link>
	<title><![CDATA[Cheatsheet for Linux !!]]></title>
	<description><![CDATA[<p>Linux Commands Cheat Sheet<br /><br />&nbsp;&nbsp;&nbsp; File System<br /><br />&nbsp;&nbsp;&nbsp; ls &mdash; list items in current directory<br /><br />&nbsp;&nbsp;&nbsp; ls -l &mdash; list items in current directory and show in long format to see perimissions, size, an modification date<br /><br />&nbsp;&nbsp;&nbsp; ls -a &mdash; list all items in current directory, including hidden files<br /><br />&nbsp;&nbsp;&nbsp; ls -F &mdash; list all items in current directory and show directories with a slash and executables with a star<br /><br />&nbsp;&nbsp;&nbsp; ls dir &mdash; list all items in directory dir<br /><br />&nbsp;&nbsp;&nbsp; cd dir &mdash; change directory to dir<br /><br />&nbsp;&nbsp;&nbsp; cd .. &mdash; go up one directory<br /><br />&nbsp;&nbsp;&nbsp; cd / &mdash; go to the root directory<br /><br />&nbsp;&nbsp;&nbsp; cd ~ &mdash; go to to your home directory<br /><br />&nbsp;&nbsp;&nbsp; cd - &mdash; go to the last directory you were just in<br /><br />&nbsp;&nbsp;&nbsp; pwd &mdash; show present working directory<br /><br />&nbsp;&nbsp;&nbsp; mkdir dir &mdash; make directory dir<br /><br />&nbsp;&nbsp;&nbsp; rm file &mdash; remove file<br /><br />&nbsp;&nbsp;&nbsp; rm -r dir &mdash; remove directory dir recursively<br /><br />&nbsp;&nbsp;&nbsp; cp file1 file2 &mdash; copy file1 to file2<br /><br />&nbsp;&nbsp;&nbsp; cp -r dir1 dir2 &mdash; copy directory dir1 to dir2 recursively<br /><br />&nbsp;&nbsp;&nbsp; mv file1 file2 &mdash; move (rename) file1 to file2<br /><br />&nbsp;&nbsp;&nbsp; ln -s file link &mdash; create symbolic link to file<br /><br />&nbsp;&nbsp;&nbsp; touch file &mdash; create or update file<br /><br />&nbsp;&nbsp;&nbsp; cat file &mdash; output the contents of file<br /><br />&nbsp;&nbsp;&nbsp; less file &mdash; view file with page navigation<br /><br />&nbsp;&nbsp;&nbsp; head file &mdash; output the first 10 lines of file<br /><br />&nbsp;&nbsp;&nbsp; tail file &mdash; output the last 10 lines of file<br /><br />&nbsp;&nbsp;&nbsp; tail -f file &mdash; output the contents of file as it grows, starting with the last 10 lines<br /><br />&nbsp;&nbsp;&nbsp; vim file &mdash; edit file<br /><br />&nbsp;&nbsp;&nbsp; alias name 'command' &mdash; create an alias for a command<br />&nbsp;&nbsp;&nbsp; System<br /><br />&nbsp;&nbsp;&nbsp; shutdown &mdash; shut down machine<br /><br />&nbsp;&nbsp;&nbsp; reboot &mdash; restart machine<br /><br />&nbsp;&nbsp;&nbsp; date &mdash; show the current date and time<br /><br />&nbsp;&nbsp;&nbsp; whoami &mdash; who you are logged in as<br /><br />&nbsp;&nbsp;&nbsp; finger user &mdash; display information about user<br /><br />&nbsp;&nbsp;&nbsp; man command &mdash; show the manual for command<br /><br />&nbsp;&nbsp;&nbsp; df &mdash; show disk usage<br /><br />&nbsp;&nbsp;&nbsp; du &mdash; show directory space usage<br /><br />&nbsp;&nbsp;&nbsp; free &mdash; show memory and swap usage<br /><br />&nbsp;&nbsp;&nbsp; whereis app &mdash; show possible locations of app<br /><br />&nbsp;&nbsp;&nbsp; which app &mdash; show which app will be run by default<br />&nbsp;&nbsp;&nbsp; Process Management<br /><br />&nbsp;&nbsp;&nbsp; ps &mdash; display your currently active processes<br /><br />&nbsp;&nbsp;&nbsp; top &mdash; display all running processes<br /><br />&nbsp;&nbsp;&nbsp; kill pid &mdash; kill process id pid<br /><br />&nbsp;&nbsp;&nbsp; kill -9 pid &mdash; force kill process id pid<br />&nbsp;&nbsp;&nbsp; Permissions<br /><br />&nbsp;&nbsp;&nbsp; ls -l &mdash; list items in current directory and show permissions<br /><br />&nbsp;&nbsp;&nbsp; chmod ugo file &mdash; change permissions of file to ugo - u is the user's permissions, g is the group's permissions, and o is everyone else's permissions. The values of u, g, and o can be any number between 0 and 7.<br /><br />&nbsp;&nbsp;&nbsp; 7 &mdash; full permissions<br /><br />&nbsp;&nbsp;&nbsp; 6 &mdash; read and write only<br /><br />&nbsp;&nbsp;&nbsp; 5 &mdash; read and execute only<br /><br />&nbsp;&nbsp;&nbsp; 4 &mdash; read only<br /><br />&nbsp;&nbsp;&nbsp; 3 &mdash; write and execute only<br /><br />&nbsp;&nbsp;&nbsp; 2 &mdash; write only<br /><br />&nbsp;&nbsp;&nbsp; 1 &mdash; execute only<br /><br />&nbsp;&nbsp;&nbsp; 0 &mdash; no permissions<br /><br />&nbsp;&nbsp;&nbsp; chmod 600 file &mdash; you can read and write - good for files<br /><br />&nbsp;&nbsp;&nbsp; chmod 700 file &mdash; you can read, write, and execute - good for scripts<br /><br />&nbsp;&nbsp;&nbsp; chmod 644 file &mdash; you can read and write, and everyone else can only read - good for web pages<br /><br />&nbsp;&nbsp;&nbsp; chmod 755 file &mdash; you can read, write, and execute, and everyone else can read and execute - good for programs that you want to share<br />&nbsp;&nbsp;&nbsp; Networking<br /><br />&nbsp;&nbsp;&nbsp; wget file &mdash; download a file<br /><br />&nbsp;&nbsp;&nbsp; curl file &mdash; download a file<br /><br />&nbsp;&nbsp;&nbsp; scp user@host:file dir &mdash; secure copy a file from remote server to the dir directory on your machine<br /><br />&nbsp;&nbsp;&nbsp; scp file user@host:dir &mdash; secure copy a file from your machine to the dir directory on a remote server<br /><br />&nbsp;&nbsp;&nbsp; scp -r user@host:dir dir &mdash; secure copy the directory dir from remote server to the directory dir on your machine<br /><br />&nbsp;&nbsp;&nbsp; ssh user@host &mdash; connect to host as user<br /><br />&nbsp;&nbsp;&nbsp; ssh -p port user@host &mdash; connect to host on port as user<br /><br />&nbsp;&nbsp;&nbsp; ssh-copy-id user@host &mdash; add your key to host for user to enable a keyed or passwordless login<br /><br />&nbsp;&nbsp;&nbsp; ping host &mdash; ping host and output results<br /><br />&nbsp;&nbsp;&nbsp; whois domain &mdash; get information for domain<br /><br />&nbsp;&nbsp;&nbsp; dig domain &mdash; get DNS information for domain<br /><br />&nbsp;&nbsp;&nbsp; dig -x host &mdash; reverse lookup host<br /><br />&nbsp;&nbsp;&nbsp; lsof -i tcp:1337 &mdash; list all processes running on port 1337<br />&nbsp;&nbsp;&nbsp; Searching<br /><br />&nbsp;&nbsp;&nbsp; grep pattern files &mdash; search for pattern in files<br /><br />&nbsp;&nbsp;&nbsp; grep -r pattern dir &mdash; search recursively for pattern in dir<br /><br />&nbsp;&nbsp;&nbsp; grep -rn pattern dir &mdash; search recursively for pattern in dir and show the line number found<br /><br />&nbsp;&nbsp;&nbsp; grep -r pattern dir --include='*.ext &mdash; search recursively for pattern in dir and only search in files with .ext extension<br /><br />&nbsp;&nbsp;&nbsp; command | grep pattern &mdash; search for pattern in the output of command<br /><br />&nbsp;&nbsp;&nbsp; find file &mdash; find all instances of file in real system<br /><br />&nbsp;&nbsp;&nbsp; locate file &mdash; find all instances of file using indexed database built from the updatedb command. Much faster than find<br /><br />&nbsp;&nbsp;&nbsp; sed -i 's/day/night/g' file &mdash; find all occurrences of day in a file and replace them with night - s means substitude and g means global - sed also supports regular expressions<br />&nbsp;&nbsp;&nbsp; Compression<br /><br />&nbsp;&nbsp;&nbsp; tar cf file.tar files &mdash; create a tar named file.tar containing files<br /><br />&nbsp;&nbsp;&nbsp; tar xf file.tar &mdash; extract the files from file.tar<br /><br />&nbsp;&nbsp;&nbsp; tar czf file.tar.gz files &mdash; create a tar with Gzip compression<br /><br />&nbsp;&nbsp;&nbsp; tar xzf file.tar.gz &mdash; extract a tar using Gzip<br /><br />&nbsp;&nbsp;&nbsp; gzip file &mdash; compresses file and renames it to file.gz<br /><br />&nbsp;&nbsp;&nbsp; gzip -d file.gz &mdash; decompresses file.gz back to file<br />&nbsp;&nbsp;&nbsp; Shortcuts<br /><br />&nbsp;&nbsp;&nbsp; ctrl+a &mdash; move cursor to beginning of line<br /><br />&nbsp;&nbsp;&nbsp; ctrl+f &mdash; move cursor to end of line<br /><br />&nbsp;&nbsp;&nbsp; alt+f &mdash; move cursor forward 1 word<br /><br />&nbsp;&nbsp;&nbsp; alt+b &mdash; move cursor backward 1 word</p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/40768/linux-advantages</guid>
	<pubDate>Thu, 30 Jan 2020 06:27:29 -0600</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/40768/linux-advantages</link>
	<title><![CDATA[Linux advantages]]></title>
	<description><![CDATA[<p>https://www.forbes.com/sites/jasonevangelho/2018/07/30/ditching-windows-heres-how-ubuntu-updates-your-pc-and-why-its-better/#7aa6fa5f7c23</p><p>https://www.forbes.com/sites/jasonevangelho/2018/07/23/5-reasons-you-should-switch-from-windows-to-linux-right-now/#70c74923777b</p>]]></description>
	<dc:creator>Rahul Agarwal</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/43911/slurm-commands</guid>
	<pubDate>Wed, 06 Jul 2022 07:40:07 -0500</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/43911/slurm-commands</link>
	<title><![CDATA[SLURM Commands]]></title>
	<description><![CDATA[<h3>SLURM commands</h3><p>The following table shows SLURM commands on the SOE cluster.</p><table border="1">
<thead>
<tr><th>Command</th><th>Description</th></tr>
</thead>
<tbody>
<tr>
<td><strong>sbatch</strong></td>
<td>Submit batch scripts to the cluster</td>
</tr>
<tr>
<td><strong>scancel</strong></td>
<td>Signal jobs or job steps that are under the control of Slurm.</td>
</tr>
<tr>
<td><strong>sinfo</strong></td>
<td>View information about SLURM nodes and partitions.</td>
</tr>
<tr>
<td><strong>squeue</strong></td>
<td>View information about jobs located in the SLURM scheduling queue</td>
</tr>
<tr>
<td><strong>smap</strong></td>
<td>Graphically view information about SLURM jobs, partitions, and set configurations parameters</td>
</tr>
<tr>
<td><strong>sqlog</strong></td>
<td>View information about running and finished jobs</td>
</tr>
<tr>
<td><strong>sacct</strong></td>
<td>View resource accounting information for finished and running jobs</td>
</tr>
<tr>
<td><strong>sstat</strong></td>
<td>View resource accounting information for running jobs</td>
</tr>
</tbody>
</table><p><span>For more information, run&nbsp;</span><strong>man</strong><span>&nbsp;on the commands above. See some examples below.</span><br /><br /><span style="font-size: large;"><strong>1. Info about the partitions and nodes</strong></span><span></span><br /><span>List all the partitions available to you and the nodes therein:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>sinfo
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>Nodes in state&nbsp;</span><tt>idle</tt><span>&nbsp;can accept new jobs.</span><br /><br /><span>Show a partition configuratuin, for example,&nbsp;</span><tt>SOE_main</tt><span></span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>scontrol show partition=SOE_main
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>Show current info about a specific node:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>scontrol show node=&lt;nodename&gt;
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>You can also specify a group of nodes in the command above. For example, if your MPI job is running across soenode05,06,35,36, you can execute the command below to get the info on the nodes you are interested in:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>scontrol show node=soenode[05-06,35-36]
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>An informative parameter in the output to look at would be CPULoad. It allows you to see how your application utilizes the CPUs on the running nodes.</span><br /><br /><span style="font-size: large;"><strong>2. Submit scripts</strong></span><span></span><br /><span>The header in a submit script specifies job name, partition (queue), time limit, memory allocation, number of nodes, number of cores, and files to collect standard output and error at run time, for example</span></p><div><table border="1">
<tbody>
<tr>
<td>
<pre>#!/bin/bash

#SBATCH --job-name=OMP_run     # job name, "OMP_run"
#SBATCH --partition=SOE_main   # partition (queue)
#SBATCH -t 0-2:00              # time limit: (D-HH:MM) 
#SBATCH --mem=32000            # memory per node in MB 
#SBATCH --nodes=1              # number of nodes
#SBATCH --ntasks-per-node=16   # number of cores
#SBATCH --output=slurm.out     # file to collect standard output
#SBATCH --error=slurm.err      # file to collect standard errors
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>If the time limit is not specified in the submit script, SLURM will assign the default run time, 3 days. This means the job will be terminated by SLURM in 72 hrs. The maximum allowed run time is two weeks,&nbsp;</span><tt>14-0:00</tt><span>.</span><br /><span>If the memory limit is not requested, SLURM will assign the default 16 GB. The maximum allowed memory per node is 128 GB. To see how much RAM per node your job is using, you can run commands&nbsp;</span><tt>sacct</tt><span>&nbsp;or&nbsp;</span><tt>sstat</tt><span>&nbsp;to query MaxRSS for the job on the node - see examples below.</span><br /><span>Depending on a type of application you need to run, the submit script may contain commands to create a temporary space on a computational node -&nbsp;</span><a href="http://ecs.rutgers.edu/file_systems.html">see the discussion about using the file systems on the cluster.</a><span></span><br /><span>Then it sets the environment specific to the application and starts the application on one or multiple nodes - see sbatch sample scripts in directory&nbsp;</span><tt>/usr/local/Samples</tt><span>&nbsp;on soemaster1.hpc.rutgers.edu.</span><br /><span>You can submit your job to the cluster with&nbsp;</span><tt>sbatch</tt><span>&nbsp;command:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>sbatch myscript.sh
</pre>
</td>
</tr>
</tbody>
</table></div><p><br /><span style="font-size: large;"><strong>3. Query job information</strong></span><span></span><br /><span>List all currently submitted jobs in running and pending states for a user:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>squeue -u &lt;username&gt;
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>Command&nbsp;</span><tt>squeue</tt><span>&nbsp;can be run with format options to expose specific information, for example, when pending job #706 is scheduled to start running:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>squeue -j 706 --format="%S"
</pre>
</td>
</tr>
</tbody>
</table></div><div><table border="1">
<tbody>
<tr>
<td>
<pre>START_TIME
2015-04-30T09:54:32
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>More info can be shown by placing additional format options, for example:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>squeue -j 706 --format="%i %P %j %u %T %l %C %S"
</pre>
</td>
</tr>
</tbody>
</table></div><div><table border="1">
<tbody>
<tr>
<td>
<pre>JOBID PARTITION   NAME    USER STATE   TIMELIMIT  CPUS START_TIME
706   SOE_main  Par_job_3 mike PENDING 3-00:00:00 64   2015-04-30T09:54:32
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>To see when all the jobs, pending in the queue, are scheduled to start:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>squeue --start 
</pre>
</td>
</tr>
</tbody>
</table></div><p><br /><span>List all running and completed jobs for a user</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>sqlog -u &lt;username&gt;
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>or</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>sqlog -j &lt;JobID&gt;
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>The following appreviations are used for the job states:</span></p><pre>       CA   CANCELLED      Job was cancelled.

       CD   COMPLETED      Job completed normally.

       CG   COMPLETING     Job is in the process of completing.

       F    FAILED         Job termined abnormally.

       NF   NODE_FAIL      Job terminated due to node failure.

       PD   PENDING        Job is pending allocation.

       R    RUNNING        Job currently has an allocation.

       S    SUSPENDED      Job is suspended.

       TO   TIMEOUT        Job terminated upon reaching its time limit.
</pre><p><span>You can specify the fields you would like to see in the output of&nbsp;</span><tt>sqlog</tt><span>:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>sqlog --format=list
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>The command below, for example, provides Job ID, user name, exit state, start date-time, and end date-time for job #2831:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>sqlog -j 2831 --format=jid,user,state,start,end
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>List status info for a currently running job:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>sstat -j &lt;jobid&gt;
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>A formatted output can be used to gain only a specific info, for example, the maximum resident RAM usage on a node:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>sstat --format="JobID,MaxRSS" -j &lt;jobid&gt;
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>To get statistics on completed jobs by jobID:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>sacct --format="JobID,JobName,MaxRSS,Elapsed" -j &lt;jobid&gt;
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>To view the same information for all jobs of a user:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>sacct --format="JobID,JobName,MaxRSS,Elapsed" -u &lt;username&gt;
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>To print a list of fields that can be specified with the&nbsp;</span><tt>--format</tt><span>&nbsp;option:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>sacct --helpformat
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>For example, to get Job ID, Job name, Exit state, start date-time, and end date-time for job #2831:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>sacct -j 2831 --format="JobID,JobName,State,Start,End"
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>Another useful command to gain information about a running job is&nbsp;</span><tt>scontrol</tt><span>:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>scontrol show job=&lt;jobid&gt;
</pre>
</td>
</tr>
</tbody>
</table></div><p><br /><span style="font-size: large;"><strong>4. Cancel a job</strong></span><span></span><br /><span>To cancel one job:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>scancel &lt;jobid&gt;
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>To cancel one job and delete the TMP directory created by the submit script on a node:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>sdel &lt;jobid&gt;
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>To cancel all the jobs for a user:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>scancel -u &lt;username&gt;
</pre>
</td>
</tr>
</tbody>
</table></div><p><span>To cancel one or more jobs by name:</span></p><div><table border="0" style="background-color: #D0D0D0;">
<tbody>
<tr>
<td>
<pre>scancel --name &lt;myJobName&gt;
</pre>
</td>
</tr>
</tbody>
</table></div>]]></description>
	<dc:creator>Shruti Paniwala</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/3013/python-and-biopython-tutorial</guid>
	<pubDate>Fri, 23 Aug 2013 06:47:40 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/3013/python-and-biopython-tutorial</link>
	<title><![CDATA[Python and BioPython Tutorial]]></title>
	<description><![CDATA[<p>A quickstart tutorial that allows to become familiar with the Python language. The exercises expect knowledge of basic concepts of programming. A group of 2nd year computer science students with no previous Python knowledge required 60'-90' to complete the exercises. With about 3 hours time, the exercise is suitable for non-programmers as well.</p><p>Address of the bookmark: <a href="http://www.biotnet.org/training-materials/python-programmers" rel="nofollow">http://www.biotnet.org/training-materials/python-programmers</a></p>]]></description>
	<dc:creator>Manshi Raghubanshi</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/news/view/20331/type-hinting</guid>
	<pubDate>Fri, 09 Jan 2015 22:26:13 -0600</pubDate>
	<link>https://bioinformaticsonline.com/news/view/20331/type-hinting</link>
	<title><![CDATA[Type Hinting]]></title>
	<description><![CDATA[<p>Python creator Guido van Rossum&rsquo;s proposal for static type-checking annotations is inching closer to reality, and the feature has taken on a new name: type hinting.</p><p><img src="http://sdtimes.com/wp-content/uploads/2015/01/0107.sdt-python-typehinting.png" alt="image" width="619" height="219" style="border: 0px; border: 0px;"></p><p>Back in August, van Rossum published a proposal on the Python mailing list recommending type-checking annotations as a valuable feature for the next version of Python to improve the performance of editors and IDEs, linter capabilities, standard notation, and refactoring. Van Rossum&rsquo;s <a href="http://lwn.net/Articles/627558/">latest proposal</a>, posted late last month, outlined plans to publish a Python Enhancement Proposal (PEP) in early January to put the feature now known as type hinting on track for inclusion in Python 3.5, slated for release this September.</p><p>Reference</p><p>https://quip.com/r69HA9GhGa7J</p>]]></description>
	<dc:creator>Pranjali Yadav</dc:creator>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/opportunity/view/26627/scientist-computational-genomics-two-positions</guid>
  <pubDate>Sat, 12 Mar 2016 18:07:56 -0600</pubDate>
  <link></link>
  <title><![CDATA[Scientist - Computational Genomics (Two Positions)]]></title>
  <description><![CDATA[
<p>ICRISAT is a non-profit, non-political organization that conducts agricultural research for development in Asia and sub-Saharan Africa with a wide array of partners throughout the world. Covering 6.5 million square kilometers of land in 55 countries, the semi-arid tropics is home to over 2 billion people, with 650 million of these being the poorest of the poor. ICRISAT and its partners help empower those living in the semi-arid tropics, especially smallholder farmers, to overcome poverty, hunger, malnutrition and a degraded environment through more efficient and profitable agriculture.</p>

<p>ICRISAT is headquartered in Patancheru near Hyderabad, India, with two regional hubs and five country offices in sub-Saharan Africa. ICRISAT, established in 1972, is a member of the CGIAR Consortium. For more details, see www.icrisat.org.</p>

<p>Responsibilities:Design efficient SQL queries for pulling large sequencing projects.<br />Serve as a technical adviser to the project leadership and provide computational perspective on product design and deliverability.<br />Develop and oversee a rapid and incremental software development and release schedule.<br />Design the software architecture, oversee the implementation and evolution of the design on appropriate hardware platforms.<br />Working collaboratively in a team environment to design, code, test, debug, and document programs for an integrated genomic analysis pipeline in a rapid and incremental software development and release schedule.<br />Supervise and review code development and ensure that software products meet project objectives in terms of functionality, scalability, robustness and user experience.<br />Implement and oversee the QA/QC practices to ensure the development team is adhering to quality standards.<br />Work closely with the application specialist to integrate feedbacks from teams in each CGIAR center into software customization and improvement.<br />Assist in training of breeders in the CGIAR centers to use software developed.<br /> Personal Profile:</p>

<p>The applicant should have:</p>

<p>Understanding of genomics data and advanced knowledge of Java, and C/C++ as the programming languages and any of the scripting language like perl and/or Python, SQL<br />High Performance Computing, data architecture, database platforms and QA/QC practices in software engineering.<br />She/he should have solid experience in software development projects, preferably as a senior programmer or in the software project management role, and in projects involving big data.<br />Excellent communication skills are needed to work in this multi-disciplinary, multi-location and multi-cultural team.<br />Ability to mentor colleagues in quality software development practices is desired.<br />Educational Qualification : Ph. D or Masters Degree in Computational Biology / Computational Genomics or Equivalent with Research Experience in Mentioned Areas.</p>

<p>More at http://www.icrisat.org/careers/</p>
]]></description>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/36360/dendropy-a-python-library-for-phylogenetic-computing</guid>
	<pubDate>Mon, 23 Apr 2018 05:49:50 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/36360/dendropy-a-python-library-for-phylogenetic-computing</link>
	<title><![CDATA[DendroPy: a Python library for phylogenetic computing]]></title>
	<description><![CDATA[<p>DendroPy is a Python library for phylogenetic computing. It provides classes and functions for the simulation, processing, and manipulation of phylogenetic trees and character matrices, and supports the reading and writing of phylogenetic data in a range of formats, such as NEXUS, NEWICK, NeXML, Phylip, FASTA, etc. Application scripts for performing some useful phylogenetic operations, such as data conversion and tree posterior distribution summarization, are also distributed and installed as part of the libary. DendroPy can thus function as a stand-alone library for phylogenetics, a component of more complex multi-library phyloinformatic pipelines, or as a scripting &ldquo;glue&rdquo; that assembles and drives such pipelines.</p>
<p>The primary home page for DendroPy, with detailed tutorials and documentation, is at:</p>
<blockquote><div><a href="http://dendropy.org/">http://dendropy.org/</a></div></blockquote>
<p>DendroPy is also hosted in the official Python repository:</p>
<blockquote><div><a href="http://packages.python.org/DendroPy/">http://packages.python.org/DendroPy/</a></div></blockquote>
<div id="requirements-and-installation">
<h2>Requirements and Installation</h2>
<p>DendroPy 4.x runs under Python 3 (all versions &gt; 3.1) and Python 2 (Python 2.7 only).</p>
<p>You can install DendroPy by running:</p>
<pre>&nbsp;</pre>
<p>More information is available here:</p>
<blockquote><div><a href="http://dendropy.org/downloading.html">http://dendropy.org/downloading.html</a></div></blockquote>
</div>
<div id="documentation">
<h2>Documentation</h2>
<p>Full documentation is available here:</p>
<blockquote><div><a href="http://dendropy.org/">http://dendropy.org/</a></div></blockquote>
<p>This includes:</p>
<blockquote>
<ul>
<li><a href="http://dendropy.org/primer/index.html">A comprehensive &ldquo;getting started&rdquo; primer</a>&nbsp;.</li>
<li><a href="http://dendropy.org/library/index.html">API documentation</a>&nbsp;.</li>
<li><a href="http://dendropy.org/schemas/index.html">Descriptions of data formats supported for reading/writing</a>&nbsp;.</li>
</ul>
</blockquote>
<p>and more.</p>
</div><p>Address of the bookmark: <a href="https://pypi.org/project/DendroPy/" rel="nofollow">https://pypi.org/project/DendroPy/</a></p>]]></description>
	<dc:creator>Seema Singh</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/37586/julia-programming-language-a-python-and-r-rival</guid>
	<pubDate>Sat, 25 Aug 2018 04:46:39 -0500</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/37586/julia-programming-language-a-python-and-r-rival</link>
	<title><![CDATA[Julia Programming Language, a Python and R rival]]></title>
	<description><![CDATA[<p>Big data has grown to become one of the most lucrative fields. In fact, data scientists are some of the most sought people. They are usually hired to analyze, control and parse large chunks of data. Implementing these actions using traditional techniques is not a walk in the park. This is why most data scientists prefer using programming languages such as R and Python. However, there is one more programming language that can do the job. That is Julia programming language.</p><p>What Is Julia Language?</p><p>Julia is a programming language that came into the limelight in 2012. It is a general-purpose programming language that was designed for solving scientific computations. Julia was meant to be an alternative to Python, R and other programming languages that were mainly used for manipulating data. This is because it has numerous features that can minimize the complexities of numerical computations.&nbsp;</p><p>Julia optimizes on the best features of Python and R while at the same time overlooks their weaknesses. This explains why it is viewed as an alternative to these programming languages. For instance, it utilizes the readability and simplicity of Python then performs faster.</p><p>Julia is the most preferred programming language for data scientists and mathematicians. This is because its core features are similar to the ones that are used on most data software. Also, the language is ideal for these two subjects because its syntax is similar to the standard mathematical formulas.</p><p>Key Features Of Julia Language<br />Uses JIT Compilation<br />Parallelism<br />Dynamic Typing<br />Simple Syntax<br />Allows Metaprogramming<br />Accessible to Libraries<br />-1-Array Indexing</p><p>Julia Vs Python And R Programming Languages<br />1. Speed<br />Julia is faster than both Python and R. This is a very critical aspect that is given special attention in the big data programming. The high speed of Julia is because of JIT compilers. You will need to install external libraries on Python to achieve similar speed.</p><p>2. Syntax<br />Julia has a math-friendly syntax. The syntax of this programming language is similar to the mathematical formulas hence can be used to perform mathematical and scientific computations. This syntax makes it easier to learn than Python.</p><p>3. Parallelism<br />Although both Python and R use parallelism, Julia uses a top-level parallelism. Julia allows the processor to perform to the optimum level than what Python and R can achieve.</p><p>4. Versatility<br />Julia programming language is more versatile than Python and R. It allows a programmer to move from different codes and functions with ease.</p><p>The only area that Python and R are superior to Julia is in terms of community. Given that Julia is a new programming language, it has a small community as compared to others which have been around for years.</p><p>In overall Julia programming language is a better alternative that you can use to handle Big data projects. Despite having a small community, it is one of those programming languages that you can easily learn.</p>]]></description>
	<dc:creator>Radha Agarkar</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/40834/nucleus-python-and-c-code-for-reading-and-writing-genomics-data</guid>
	<pubDate>Sun, 02 Feb 2020 08:14:19 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/40834/nucleus-python-and-c-code-for-reading-and-writing-genomics-data</link>
	<title><![CDATA[Nucleus: Python and C++ code for reading and writing genomics data.]]></title>
	<description><![CDATA[<p>Nucleus is a library of Python and C++ code designed to make it easy to read, write and analyze data in common genomics file formats like SAM and VCF. In addition, Nucleus enables painless integration with the TensorFlow machine learning framework, as anywhere a genomics file is consumed or produced, a TensorFlow tfrecords file may be used instead.</p><p>Address of the bookmark: <a href="https://github.com/google/nucleus" rel="nofollow">https://github.com/google/nucleus</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/43101/luigi-a-python-package-that-helps-you-build-complex-pipelines-of-batch-jobs</guid>
	<pubDate>Thu, 24 Jun 2021 05:43:31 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/43101/luigi-a-python-package-that-helps-you-build-complex-pipelines-of-batch-jobs</link>
	<title><![CDATA[Luigi: a Python package that helps you build complex pipelines of batch jobs.]]></title>
	<description><![CDATA[<p>Luigi is a Python (3.6, 3.7, 3.8, 3.9 tested) package that helps you build complex pipelines of batch jobs. It handles dependency resolution, workflow management, visualization, handling failures, command line integration, and much more.</p>
<p>Run <code>pip install luigi</code> to install the latest stable version from <a href="https://pypi.python.org/pypi/luigi">PyPI</a>. <a href="https://luigi.readthedocs.io/en/stable/">Documentation for the latest release</a> is hosted on readthedocs.</p>
<p>Run <code>pip install luigi[toml]</code> to install Luigi with <a href="https://luigi.readthedocs.io/en/stable/configuration.html">TOML-based configs</a> support.</p><p>Address of the bookmark: <a href="https://github.com/spotify/luigi" rel="nofollow">https://github.com/spotify/luigi</a></p>]]></description>
	<dc:creator>Neel</dc:creator>
</item>

</channel>
</rss>