<?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: All site pages]]></title>
	<link>https://bioinformaticsonline.com/pages/all?offset=50</link>
	<atom:link href="https://bioinformaticsonline.com/pages/all?offset=50" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/35525/linux-commands-cheat-sheet-for-bioinformatics-and-computational-biology-professionals</guid>
	<pubDate>Mon, 05 Feb 2018 18:50:41 -0600</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/35525/linux-commands-cheat-sheet-for-bioinformatics-and-computational-biology-professionals</link>
	<title><![CDATA[Linux Commands Cheat Sheet for Bioinformatics and Computational Biology Professionals]]></title>
	<description><![CDATA[<p><span>The purpose of this cheat sheet is to introduce biologist and bioinformatician to the frequently used tools for NGS analysis as well as giving experience in writing one-liners.</span></p><ul>
<li><span></span><span><strong>File System</strong></span><span><strong><br /> </strong></span><span>ls</span><span>&nbsp;&mdash; list items in current directory</span><span><br /> </span><span>ls -l</span><span>&nbsp;&mdash; list items in current directory and show in long format to see perimissions, size, and modification date</span><span><br /> </span><span>ls -a</span><span>&nbsp;&mdash; list all items in current directory, including hidden files</span><span><br /> </span><span>ls -F</span><span>&nbsp;&mdash; list all items in current directory and show directories with a slash and executables with a star</span><span><br /> </span><span>ls dir</span><span>&nbsp;&mdash; list all items in directory dir</span><span><br /> </span><span>cd dir</span><span>&nbsp;&mdash; change directory to dir</span><span><br /> </span><span>cd ..</span><span>&nbsp;&mdash; go up one directory</span><span><br /> </span><span>cd /</span><span>&nbsp;&mdash; go to the root directory</span><span><br /> </span><span>cd ~</span><span>&nbsp;&mdash; go to to your home directory</span><span><br /> </span><span>cd -</span><span>&nbsp;&mdash; go to the last directory you were just in</span><span><br /> </span><span>pwd</span><span>&nbsp;&mdash; show present working directory</span><span><br /> </span><span>mkdir dir</span><span>&nbsp;&mdash; make directory dir</span><span><br /> </span><span>rm file</span><span>&nbsp;&mdash; remove file</span><span><br /> </span><span>rm -r dir</span><span>&nbsp;&mdash; remove directory dir recursively</span><span><br /> </span><span>cp file1 file2</span><span>&nbsp;&mdash; copy file1 to file2</span><span><br /> </span><span>cp -r dir1 dir2</span><span>&nbsp;&mdash; copy directory dir1 to dir2 recursively</span><span><br /> </span><span>mv file1 file2</span><span>&nbsp;&mdash; move (rename) file1 to file2</span><span><br /> </span><span>ln -s file link</span><span>&nbsp;&mdash; create symbolic link to file</span><span><br /> </span><span>touch file</span><span>&nbsp;&mdash; create or update file</span><span><br /> </span><span>cat file</span><span>&nbsp;&mdash; output the contents of file</span><span><br /> </span><span>less file</span><span>&nbsp;&mdash; view file with page navigation</span><span><br /> </span><span>head file</span><span>&nbsp;&mdash; output the first 10 lines of file</span><span><br /> </span><span>tail file</span><span>&nbsp;&mdash; output the last 10 lines of file</span><span><br /> </span><span>tail -f file</span><span>&nbsp;&mdash; output the contents of file as it grows, starting with the last 10 lines</span><span><br /> </span><span>vim file</span><span>&nbsp;&mdash; edit file</span><span><br /> </span><span>alias name 'command'</span><span>&nbsp;&mdash; create an alias for a command</span><span><br /> </span></li>
<li><span></span><span><strong>System</strong></span><span><strong><br /> </strong></span><span>shutdown</span><span>&nbsp;&mdash; shut down machine</span><span><br /> </span><span>reboot</span><span>&nbsp;&mdash; restart machine</span><span><br /> </span><span>date</span><span>&nbsp;&mdash; show the current date and time</span><span><br /> </span><span>whoami</span><span>&nbsp;&mdash; who you are logged in as</span><span><br /> </span><span>finger user</span><span>&nbsp;&mdash; display information about user</span><span><br /> </span><span>man command</span><span>&nbsp;&mdash; show the manual for command</span><span><br /> </span><span>df</span><span>&nbsp;&mdash; show disk usage</span><span><br /> </span><span>du</span><span>&nbsp;&mdash; show directory space usage</span><span><br /> </span><span>free</span><span>&nbsp;&mdash; show memory and swap usage</span><span><br /> </span><span>whereis app</span><span>&nbsp;&mdash; show possible locations of app</span><span><br /> </span><span>which app</span><span>&nbsp;&mdash; show which app will be run by default</span><span><br /> </span></li>
<li><span></span><span><strong>Process Management</strong></span><span><strong><br /> </strong></span><span>ps</span><span>&nbsp;&mdash; display your currently active processes</span><span><br /> </span><span>top</span><span>&nbsp;&mdash; display all running processes</span><span><br /> </span><span>kill pid</span><span>&nbsp;&mdash; kill process id pid</span><span><br /> </span><span>kill -9 pid</span><span>&nbsp;&mdash; force kill process id pid</span><span><br /> </span></li>
<li><span></span><span><strong>Permissions</strong></span><span><strong><br /> </strong></span><span>ls -l</span><span>&nbsp;&mdash; list items in current directory and show permissions</span><span><br /> </span><span>chmod ugo file</span><span>&nbsp;&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.</span><span><br /> </span><span>7</span><span>&nbsp;&mdash; full permissions</span><span><br /> </span><span>6</span><span>&nbsp;&mdash; read and write only</span><span><br /> </span><span>5</span><span>&nbsp;&mdash; read and execute only</span><span><br /> </span><span>4</span><span>&nbsp;&mdash; read only</span><span><br /> </span><span>3</span><span>&nbsp;&mdash; write and execute only</span><span><br /> </span><span>2</span><span>&nbsp;&mdash; write only</span><span><br /> </span><span>1</span><span>&nbsp;&mdash; execute only</span><span><br /> </span><span>0</span><span>&nbsp;&mdash; no permissions</span><span><br /> </span><span>chmod 600 file</span><span>&nbsp;&mdash; you can read and write - good for files</span><span><br /> </span><span>chmod 700 file</span><span>&nbsp;&mdash; you can read, write, and execute - good for scripts</span><span><br /> </span><span>chmod 644 file</span><span>&nbsp;&mdash; you can read and write, and everyone else can only read - good for web pages</span><span><br /> </span><span>chmod 755 file</span><span>&nbsp;&mdash; you can read, write, and execute, and everyone else can read and execute - good for programs that you want to share</span><span><br /> </span></li>
<li><span></span><span><strong>Networking</strong></span><span><strong><br /> </strong></span><span>wget file</span><span>&nbsp;&mdash; download a file</span><span><br /> </span><span>curl file</span><span>&nbsp;&mdash; download a file</span><span><br /> </span><span>scp user@host:file dir</span><span>&nbsp;&mdash; secure copy a file from remote server to the dir directory on your machine</span><span><br /> </span><span>scp file user@host:dir</span><span>&nbsp;&mdash; secure copy a file from your machine to the dir directory on a remote server</span><span><br /> </span><span>scp -r user@host:dir dir</span><span>&nbsp;&mdash; secure copy the directory dir from remote server to the directory dir on your machine</span><span><br /> </span><span>ssh user@host</span><span>&nbsp;&mdash; connect to host as user</span><span><br /> </span><span>ssh -p port user@host</span><span>&nbsp;&mdash; connect to host on port as user</span><span><br /> </span><span>ssh-copy-id user@host</span><span>&nbsp;&mdash; add your key to host for user to enable a keyed or passwordless login</span><span><br /> </span><span>ping host</span><span>&nbsp;&mdash; ping host and output results</span><span><br /> </span><span>whois domain</span><span>&nbsp;&mdash; get information for domain</span><span><br /> </span><span>dig domain</span><span>&nbsp;&mdash; get DNS information for domain</span><span><br /> </span><span>dig -x host</span><span>&nbsp;&mdash; reverse lookup host</span><span><br /> </span><span>lsof -i tcp:1337</span><span>&nbsp;&mdash; list all processes running on port 1337</span><span><br /> </span></li>
<li><span></span><span><strong>Searching</strong></span><span><strong><br /> </strong></span><span>grep pattern files</span><span>&nbsp;&mdash; search for pattern in files</span><span><br /> </span><span>grep -r pattern dir</span><span>&nbsp;&mdash; search recursively for pattern in dir</span><span><br /> </span><span>grep -rn pattern dir</span><span>&nbsp;&mdash; search recursively for pattern in dir and show the line number found</span><span><br /> </span><span>grep -r pattern dir --include='*.ext</span><span>&nbsp;&mdash; search recursively for pattern in dir and only search in files with .ext extension</span><span><br /> </span><span>command | grep pattern</span><span>&nbsp;&mdash; search for pattern in the output of command</span><span><br /> </span><span>find file</span><span>&nbsp;&mdash; find all instances of file in real system</span><span><br /> </span><span>locate file</span><span>&nbsp;&mdash; find all instances of file using indexed database built from the updatedb command. Much faster than find</span><span><br /> </span><span>sed -i 's/day/night/g' file</span><span>&nbsp;&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</span><span><br /> </span></li>
<li><span></span><span><strong>Compression</strong></span><span><strong><br /> </strong></span><span>tar cf file.tar files</span><span>&nbsp;&mdash; create a tar named file.tar containing files</span><span><br /> </span><span>tar xf file.tar</span><span>&nbsp;&mdash; extract the files from file.tar</span><span><br /> </span><span>tar czf file.tar.gz files</span><span>&nbsp;&mdash; create a tar with Gzip compression</span><span><br /> </span><span>tar xzf file.tar.gz</span><span>&nbsp;&mdash; extract a tar using Gzip</span><span><br /> </span><span>gzip file</span><span>&nbsp;&mdash; compresses file and renames it to file.gz</span><span><br /> </span><span>gzip -d file.gz</span><span>&nbsp;&mdash; decompresses file.gz back to file</span><span><br /> </span></li>
<li><span></span><span><strong>Shortcuts</strong></span><span><strong><br /> </strong></span><span>ctrl+a</span><span>&nbsp;&mdash; move cursor to beginning of line</span><span><br /> </span><span>ctrl+f</span><span>&nbsp;&mdash; move cursor to end of line</span><span><br /> </span><span>alt+f</span><span>&nbsp;&mdash; move cursor forward 1 word</span><span><br /> </span><span>alt+b</span><span>&nbsp;&mdash; move cursor backward 1 word</span><span><br /> </span></li>
<li></li>
</ul>]]></description>
	<dc:creator>Rahul Nayak</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/35429/list-of-visualization-tools-for-genome-alignments</guid>
	<pubDate>Fri, 02 Feb 2018 13:25:33 -0600</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/35429/list-of-visualization-tools-for-genome-alignments</link>
	<title><![CDATA[List of visualization tools for genome alignments]]></title>
	<description><![CDATA[<p><span>Genome</span><span>&nbsp;browsers are useful not only for showing final results but also for improving analysis protocols, testing data quality, and generating result drafts. Its integration in analysis pipelines allows the optimization of parameters, which leads to better results. But sometime, we need publication ready figure of genomes. Following are the list of genome alignment visualization tools, which could be useful for analysis and&nbsp;interpretation of results:</span></p><p>ABySS Explorer</p><p>Interactive Java application that uses a novel graph-based representation to display a sequence assembly and associated metadata</p><p>http://www.bcgsc.ca/platform/bioinfo/software/abyss-explorer</p><p>BamView</p><p>Genome browser and annotation tool that allows visualization of sequence features, next-generation sequencing (NGS) data and the results of analyses within the context of the sequence, and also its six-frame translation</p><p>http://www.sanger.ac.uk/resources/software/artemis/</p><p>DNannotator&nbsp;</p><p>Annotation web toolkit for regional genomic sequences</p><p>http://bioapp.psych.uic.edu/DNannotator.htm</p><p>JVM&nbsp;</p><p>Java Visual Mapping tool for NGS reads</p><p>http://www.springer.com/cda/content/document/cda_downloaddocument/9789401792448-c2.pdf?SGWID=0-0-45-1487072-p176815501</p><p>LookSeq&nbsp;</p><p>Web-based visualization of sequences derived from multiple sequencing technologies. Low- or high-depth read pileups and easy visualization of putative single nucleotide and structural variation</p><p>http://lookseq.sourceforge.net</p><p>MagicViewer&nbsp;</p><p>Visualization of short read alignment, identification of genetic variation and association with annotation information of a reference genome</p><p>http://bioinformatics.zj.cn/magicviewer/</p><p>MapView&nbsp;</p><p>Alignments of huge-scale single-end and pair-end short reads</p><p>http://omictools.com/mapview-s1367.html</p><p>MultiPipMaker</p><p>Computes alignments of similar regions in two DNA sequences. The resulting alignments are summarized with a &lsquo;percent identity plot&rsquo; (pip)</p><p>http://pipmaker.bx.psu.edu/pipmaker/</p><p>PileLineGUI&nbsp;</p><p>Handling genome position files in NGS studies</p><p>http://sing.ei.uvigo.es/pileline/pilelinegui.html</p><p>SAMtools tview&nbsp;</p><p>Simple and fast text alignment viewer; NGS compatible</p><p>http://www.htslib.org/</p><p>SEWAL</p><p>Uses a locality-sensitive hashing algorithm to enumerate all unique sequences in an entire Illumina sequencing run</p><p>http://www.sourceforge.net/projects/sewal</p><p>STAR&nbsp;</p><p>A web-based integrated solution to management and visualization of sequencing data</p><p>http://wanglab.ucsd.edu/star/browser</p><p>SVA&nbsp;</p><p>Software for annotating and visualizing sequenced human genomes</p><p>http://www.svaproject.org</p><p>Viewer (IGV)&nbsp;</p><p>Visualization of large heterogeneous datasets, providing a smooth and intuitive user experience at all levels of genome resolution</p><p>https://www.broadinstitute.org/igv/</p><p>ZOOM Lite&nbsp;</p><p>NGS data mapping and visualization software</p><p>http://bioinfor.com/zoom/lite/</p>]]></description>
	<dc:creator>Rahul Nayak</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/35395/comprehensive-list-of-visualization-tools-for-biological-pathways</guid>
	<pubDate>Tue, 30 Jan 2018 06:01:31 -0600</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/35395/comprehensive-list-of-visualization-tools-for-biological-pathways</link>
	<title><![CDATA[Comprehensive list of visualization tools for biological pathways]]></title>
	<description><![CDATA[<p>The study of biological pathways is a key to understand the different processes inside a cell: proteins exert their function not in isolation but in a tightly controlled network of interactions and reactions. Activation of a pathway typically leads to a change of state in the cell. Pathways come in different flavors, depending on their functions in the cell &ndash; the three main types are metabolic pathways, gene regulatory pathways, and signaling pathways. These biological pathways and networks are not only an appropriate approach to visualize molecular reactions. They have also become one leading method in -omics data analysis and visualization.</p><p><img src="https://photos-1.dropbox.com/t/2/AABemz29qAuSTqSzr5mEsQE7JIMxZlU1CBy0E5n0yUVYbA/12/85115969/png/32x32/1/_/1/2/pathway.png/EOfXoUIYrJ8CIAcoBw/01qsT2eykyPvSH-rNpy3cqioDzZPc4i-xULG3BEZvCk?preserve_transparency=1&amp;size=1280x960&amp;size_mode=3" width="800" height="533" alt="image" style="border: 0px;"></p><p>Following are the comprehensive list of visualization tools for biological pathways:</p><p>BiNA</p><p>Drawings of metabolic networks supporting hiding of cofactors and drawing of chemical structures</p><p>http://bina.unipax.info/</p><p>BioTapestry</p><p>Interactive tool for building, visualizing and sharing gene regulatory network models over the web</p><p>http://www.biotapestry.org/</p><p>Caleydo</p><p>Visual analysis framework targeted at biomolecular data. Visualization of interdependencies between multiple datasets</p><p>http://www.caleydo.org/</p><p>CellDesigner</p><p>A modeling tool for biochemical networks</p><p>http://www.celldesigner.org/</p><p>Edinburgh Pathway Editor</p><p>Edit and draw pathway diagrams</p><p>http://epe.sourceforge.net/SourceForge/EPE.html</p><p>GenMAPP</p><p>Visualization of gene expression and other genomic data on maps representing biological pathways and groupings of genes</p><p>http://www.genmapp.org/</p><p>Ingenuity IPA</p><p>Data integration platform and manually annotated pathways</p><p>http://tinyurl.com/IngenuityPath</p><p>JDesigner</p><p>Graphical modeling environment for biochemical reaction networks</p><p>http://jdesigner.sourceforge.net/Site/JDesigner.html</p><p>KaPPA View</p><p>Plant pathways</p><p>http://kpv.kazusa.or.jp/</p><p>KEGG Atlas</p><p>Interactive Kyoto Encyclopedia of Genes and Genomes pathways</p><p>http://www.genome.jp/kegg/</p><p>Omix&nbsp;</p><p>Visualizing multi-omics data in metabolic networks</p><p>https://www.omix-visualization.com</p><p>PathVisio&nbsp;</p><p>Biological pathway analysis software that allows drawing, editing and analysis of biological pathways</p><p>http://www.pathvisio.org/</p><p>VitaPad&nbsp;</p><p>Application to visualize biological pathways and map experimental data to them</p><p>http://tinyurl.com/vitapad/</p><p>Web tools for pathways</p><p>ArrayXPath&nbsp;</p><p>Mapping and visualizing microarray gene-expression data and integrated biological pathway resources using SVG</p><p>http://tinyurl.com/ArrayXPath/</p><p>GEPAT&nbsp;</p><p>Integrated analysis of transcriptome data in genomic, proteomic and metabolic contexts</p><p>http://gepat.sourceforge.net/</p><p>iPath&nbsp;</p><p>Web-based tool for the visualization, analysis and customization of pathway maps</p><p>http://pathways.embl.de/</p><p>Kegg-Based Viewer&nbsp;</p><p>KEGG-based pathway visualization tool for complex high-throughput data</p><p>http://www.g-language.org/data/marray/</p><p>MapMan&nbsp;</p><p>User-driven tool that displays large datasets onto diagrams of metabolic pathways or other processes</p><p>http://mapman.gabipd.org/web/guest/mapman</p><p>MetPA&nbsp;</p><p>Analysis and visualization of metabolomic data within the biological context of metabolic pathways</p><p>http://metpa.metabolomics.ca</p><p>Omics Viewer&nbsp;</p><p>Data mapping on BioCyc pathways (collection of 5500 pathway/genome databases)</p><p>http://www.biocyc.org/</p><p>Pathway Explorer</p><p>Interactive Java drawing tool for the construction of biological pathway diagrams in a visual way and the annotation of the components and interactions between them</p><p>http://genome.tugraz.at/pathwayexplorer/pathwayexplorer_description.shtml</p><p>Pathway projector&nbsp;</p><p>Zoomable pathway browser using KEGG atlas and Google Maps API</p><p>http://www.g-language.org/PathwayProjector/</p><p>PATIKA&nbsp;</p><p>Integrated environment composed of a central database and a visual editor, built around an extensive ontology and an integration framework</p><p>http://www.cs.bilkent.edu.tr/~patikaweb/</p><p>Reactome SkyPainter&nbsp;</p><p>Visualization of over-represented pathways and reactions from gene lists</p><p>http://www.reactome.org/skypainter-2</p><p>WikiPathways</p><p>Wiki-based, open, public platform dedicated to the curation of biological pathways by and for the scientific community</p><p>http://www.wikipathways.org/</p>]]></description>
	<dc:creator>Neel</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/35386/list-of-visualization-tools-for-network-biology</guid>
	<pubDate>Mon, 29 Jan 2018 05:12:24 -0600</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/35386/list-of-visualization-tools-for-network-biology</link>
	<title><![CDATA[List of visualization tools for network biology]]></title>
	<description><![CDATA[<p>Network analysis&nbsp;is any structured technique used to mathematically analyze a circuit (a &ldquo;network&rdquo; of interconnected components). The&nbsp;<span>Network analysis provides the ability to quantify associations between individuals, which makes it possible to infer details about the network as a whole at the species and/or population level.&nbsp;</span>Few tools published in BMC are listed here https://bmcbioinformatics.biomedcentral.com/articles/sections/networks-analysis.</p><p><img src="https://www.dropbox.com/pri/get/Public/Link%20to%20network.gif?_subject_uid=85115969&amp;raw=1&amp;revision_id=BBqs9eYx7G_faj5J33ExdjmtF8nXK2xrN5dUBsKyTLZQ9RB_hGM-YFmWZMBzbQZfRvjYzfs65HbQYrHRyoikxsQscSFTn1Nud2QeJ8KGfVI5wv4Kzp6froKOmPZu8ZygfKo&amp;size=1280x960&amp;size_mode=3&amp;w=AABQaErsFIz5ZjVZSxXvKaSVUkY5ob1Yjk0x7dghy0X7zw" alt="image" style="border: 0px; border: 0px;"></p><p>Following are the list of standalone applications for network analysis:</p><p>Arena 3D</p><p>3D visualization of multi-layer networks</p><p>http://www.arena3d.org</p><p>Biana</p><p>Data integration and network management</p><p>http://sbi.imim.es/web/BIANA.php</p><p>BioLayout Express 3D&nbsp;</p><p>2D/3D network visualization</p><p>http://www.biolayout.org/</p><p>BiologicalNetworks&nbsp;</p><p>Efficient integrated multi-level analysis of microarray, sequence, regulatory and other data</p><p>http://www.biologicalnetworks.org</p><p>BioMiner</p><p>Modeling, analyzing and visualizing biochemical pathways and networks</p><p>http://www.zbi.uni-saarland.de/chair/projects/BioMiner</p><p>Cell Illustrator&nbsp;</p><p>Petri nets for modeling and simulating biological networks</p><p>http://www.cellillustrator.com</p><p>COPASI</p><p>Analysis of biochemical networks and their dynamics</p><p>http://www.copasi.org/</p><p>Cytoscape&nbsp;</p><p>Network visualization and analysis. Over 200 plugins [60]</p><p>http://www.cytoscape.org/</p><p>Dizzy</p><p>Chemical kinetics stochastic simulation software</p><p>http://magnet.systemsbiology.net/software/Dizzy/</p><p>DyCoNet</p><p>Gephi plugin that can be used to identify dynamic communities in networks</p><p>https://github.com/juliemkauffman/DyCoNet</p><p>GENeVis&nbsp;</p><p>Network and pathway visualization</p><p>http://tinyurl.com/genevis/</p><p>GEPHI&nbsp;</p><p>Interactive visualization and exploration for any network and complex system, dynamic and hierarchical graph.</p><p>https://gephi.org</p><p>Igraph</p><p>Collection of network analysis tools with the emphasis on efficiency, portability and ease of use</p><p>http://igraph.sourceforge.net</p><p>Medusa</p><p>Semantic and multi-edged simple networks</p><p>https://sites.google.com/site/medusa3visualization/</p><p>NAViGaTOR</p><p>Visualizing and analyzing protein-protein interaction networks</p><p>http://tinyurl.com/navigator1/</p><p>N-Browse</p><p>Interactive graphical browser for biological networks</p><p>http://www.gnetbrowse.org/</p><p>NeAT</p><p>Topological and clustering analysis of networks</p><p>http://rsat.ulb.ac.be/neat/</p><p>Ondex&nbsp;</p><p>Data integration and visualization of large networks</p><p>http://www.ondex.org/</p><p>Osprey</p><p>Visualization and annotation of biological networks</p><p>http://biodata.mshri.on.ca/osprey/servlet/Index</p><p>Pajek&nbsp;</p><p>Analysis and visualization of large networks and social network analysis</p><p>http://vlado.fmf.uni-lj.si/pub/networks/pajek/</p><p>PathwayAssist&nbsp;</p><p>Navigation and analysis of biological pathways, gene regulation networks and protein interaction maps.</p><p>http://www.ariadnegenomics.com/downloads/</p><p>PIVOT&nbsp;</p><p>Layout algorithms for visualizing protein interactions and families</p><p>http://acgt.cs.tau.ac.il/pivot/</p><p>ProCope&nbsp;</p><p>Prediction and evaluation of protein complexes from purification data experiments</p><p>http://www.bio.ifi.lmu.de/Complexes/ProCope/</p><p>ProViz&nbsp;</p><p>Visualization and exploration of interaction networks. Gene Ontology and PSI-MI formats supported</p><p>http://cbi.labri.fr/eng/proviz.htm</p><p>SpectralNET&nbsp;</p><p>Network analysis and visualizations. Scatter plots and dimensionality reduction algorithms</p><p>https://www.broadinstitute.org/software/spectralnet</p><p>Tulip&nbsp;</p><p>Enables the development of algorithms, visual encodings, interaction techniques, data models and domain-specific visualizations</p><p>http://tulip.labri.fr/TulipDrupal/</p><p>VANESA&nbsp;</p><p>Automatic reconstruction and analysis of biological networks and Petri nets based on life-science database information</p><p>http://agbi.techfak.uni-bielefeld.de/vanesa/</p><p>VANTED&nbsp;</p><p>Network reconstruction, data visualization, integration of various data types, network simulation</p><p>http://tinyurl.com/vanted/</p><p>yEd</p><p>Creation of diagrams manually and import external data</p><p>http://tinyurl.com/yEdGraph/</p><p>Web tools for network analysis</p><p>APID&nbsp;</p><p>Unified protein-protein interactions from BIND, BioGRID, DIP, HPRD, IntAct and MINT</p><p>http://bioinfow.dep.usal.es/apid/</p><p>Arcadia&nbsp;</p><p>Translates text-based descriptions of biological networks (SBML files) into standardized diagrams (Systems Biology Graphical Notation Process Description maps)</p><p>http://arcadiapathways.sourceforge.net/</p><p>AVIS&nbsp;</p><p>Viewer for signaling networks</p><p>http://actin.pharm.mssm.edu/AVIS2</p><p>bioPIXIE&nbsp;</p><p>Discovery of biological networks from diverse functional genomic data</p><p>http://pixie.princeton.edu/pixie</p><p>CellPublisher</p><p>Interactive representations of biochemical processes</p><p>http://cellpublisher.gobics.de/</p><p>Graphle</p><p>Distributed network exploration and visualization of interactive large, dense graphs</p><p>http://tinyurl.com/graphle/</p><p>GraphWeb&nbsp;</p><p>Web server for graph-based analysis of biological networks</p><p>http://biit.cs.ut.ee/graphweb/</p><p>Hubba</p><p>Web-based service to explore the essential nodes in a network</p><p>http://hub.iis.sinica.edu.tw/Hubba</p><p>NetworkBLAST&nbsp;</p><p>Analysis of protein interaction networks across species to infer protein complexes that are conserved in evolution</p><p>http://www.cs.tau.ac.il/~bnet/networkblast.htm</p><p>Pathview&nbsp;</p><p>Tool set for pathway-based data integration and visualization</p><p>http://Pathview.r-forge.r-project.org/</p><p>PINA&nbsp;</p><p>Integrated platform for protein interaction network construction, filtering, analysis, visualization and management</p><p>http://cbg.garvan.unsw.edu.au/pina/home.do</p><p>ReMatch&nbsp;</p><p>Web-based tool for integration of user-given stoichiometric metabolic models into a database collected from public data sources</p><p>http://www.cs.helsinki.fi/group/sysfys/software/rematch/</p><p>SNOW&nbsp;</p><p>Gene mapping on a reference or human protein-protein interaction network that SNOW hosts</p><p>http://snow.bioinfo.cipf.es</p><p>STITCH&nbsp;</p><p>Resource to explore known and predicted interactions of chemicals and proteins</p><p>http://stitch.embl.de/</p><p>STRING</p><p>Protein interaction networks and integration of data such as genomic context, high-throughput experiments, conserved coexpression and previous knowledge derived from the literature</p><p>http://string-db.org</p><p>TVNViewer&nbsp;</p><p>An interactive visualization tool for exploring networks that change over time or space</p><p>http://www.sailing.cs.cmu.edu/main/?page_id=545</p><p>tYNA&nbsp;</p><p>System for managing, comparing and mining multiple networks</p><p>http://tyna.gersteinlab.org/tyna/</p><p>VisANT&nbsp;</p><p>Visualization, mining, analysis and modeling of biological networks, metabolic networks and ecosystems</p><p>http://visant.bu.edu/</p><p>&nbsp;</p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/35351/sam-to-bam-conversion</guid>
	<pubDate>Fri, 26 Jan 2018 02:36:18 -0600</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/35351/sam-to-bam-conversion</link>
	<title><![CDATA[sam to bam conversion !!]]></title>
	<description><![CDATA[<p>To do sam to bam conversion, follow the following commands :-&nbsp;</p><div><div>Code:</div><pre dir="ltr">$ samtools view -b -S file.sam &gt; file.bam</pre></div><p>Then you will need to use&nbsp;<br /><br /></p><div><div>Code:</div><pre dir="ltr">$ samtools sort file.bam file-sorted</pre></div><p>followed by<br /><br /></p><div><div>Code:</div><pre dir="ltr">$ samtools index  file-sorted.bam</pre></div><p>in order to get an indexed file.<br /><br />If you just type&nbsp;<br /><br /></p><div><div>Code:</div><pre dir="ltr">$ samtools</pre></div><p>or samtools followed by the name of one of the samtools commands, you will get a few lines of help giving the correct syntax for that command,</p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/35176/perloneliner-for-bioinformatician</guid>
	<pubDate>Mon, 15 Jan 2018 04:57:40 -0600</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/35176/perloneliner-for-bioinformatician</link>
	<title><![CDATA[PerlOneLiner for Bioinformatician]]></title>
	<description><![CDATA[<p>FILE SPACING<br />------------</p><p># Double space a file<br />perl -pe '$\="\n"'<br />perl -pe 'BEGIN { $\="\n" }'<br />perl -pe '$_ .= "\n"'<br />perl -pe 's/$/\n/'<br />perl -nE 'say'</p><p># Double space a file, except the blank lines<br />perl -pe '$_ .= "\n" unless /^$/'<br />perl -pe '$_ .= "\n" if /\S/'</p><p># Triple space a file<br />perl -pe '$\="\n\n"'<br />perl -pe '$_.="\n\n"'</p><p># N-space a file<br />perl -pe '$_.="\n"x7'</p><p># Add a blank line before every line<br />perl -pe 's//\n/'</p><p># Remove all blank lines<br />perl -ne 'print unless /^$/'<br />perl -lne 'print if length'<br />perl -ne 'print if /\S/'</p><p># Remove all consecutive blank lines, leaving just one<br />perl -00 -pe ''<br />perl -00pe0</p><p># Compress/expand all blank lines into N consecutive ones<br />perl -00 -pe '$_.="\n"x4'</p><p># Fold a file so that every set of 10 lines becomes one tab-separated line<br />perl -lpe '$\ = $. % 10 ? "\t" : "\n"'</p><p><br />LINE NUMBERING<br />--------------</p><p># Number all lines in a file<br />perl -pe '$_ = "$. $_"'</p><p># Number only non-empty lines in a file<br />perl -pe '$_ = ++$a." $_" if /./'</p><p># Number and print only non-empty lines in a file (drop empty lines)<br />perl -ne 'print ++$a." $_" if /./'</p><p># Number all lines but print line numbers only non-empty lines<br />perl -pe '$_ = "$. $_" if /./'</p><p># Number only lines that match a pattern, print others unmodified<br />perl -pe '$_ = ++$a." $_" if /regex/'</p><p># Number and print only lines that match a pattern<br />perl -ne 'print ++$a." $_" if /regex/'</p><p># Number all lines, but print line numbers only for lines that match a pattern<br />perl -pe '$_ = "$. $_" if /regex/'</p><p># Number all lines in a file using a custom format (emulate cat -n)<br />perl -ne 'printf "%-5d %s", $., $_'</p><p># Print the total number of lines in a file (emulate wc -l)<br />perl -lne 'END { print $. }'<br />perl -le 'print $n=()=&lt;&gt;'<br />perl -le 'print scalar(()=&lt;&gt;)'<br />perl -le 'print scalar(@foo=&lt;&gt;)'<br />perl -ne '}{print $.'<br />perl -nE '}{say $.'</p><p># Print the number of non-empty lines in a file<br />perl -le 'print scalar(grep{/./}&lt;&gt;)'<br />perl -le 'print ~~grep{/./}&lt;&gt;'<br />perl -le 'print~~grep/./,&lt;&gt;'<br />perl -E 'say~~grep/./,&lt;&gt;'</p><p># Print the number of empty lines in a file<br />perl -lne '$a++ if /^$/; END {print $a+0}'<br />perl -le 'print scalar(grep{/^$/}&lt;&gt;)'<br />perl -le 'print ~~grep{/^$/}&lt;&gt;'<br />perl -E 'say~~grep{/^$/}&lt;&gt;'</p><p># Print the number of lines in a file that match a pattern (emulate grep -c)<br />perl -lne '$a++ if /regex/; END {print $a+0}'<br />perl -nE '$a++ if /regex/; END {say $a+0}'</p><p><br />CALCULATIONS<br />------------</p><p># Check if a number is a prime<br />perl -lne '(1x$_) !~ /^1?$|^(11+?)\1+$/ &amp;&amp; print "$_ is prime"'</p><p># Print the sum of all the fields on a line<br />perl -MList::Util=sum -alne 'print sum @F'</p><p># Print the sum of all the fields on all lines<br />perl -MList::Util=sum -alne 'push @S,@F; END { print sum @S }'<br />perl -MList::Util=sum -alne '$s += sum @F; END { print $s }'</p><p># Shuffle all fields on a line<br />perl -MList::Util=shuffle -alne 'print "@{[shuffle @F]}"'<br />perl -MList::Util=shuffle -alne 'print join " ", shuffle @F'</p><p># Find the minimum element on a line<br />perl -MList::Util=min -alne 'print min @F'</p><p># Find the minimum element over all the lines<br />perl -MList::Util=min -alne '@M = (@M, @F); END { print min @M }'<br />perl -MList::Util=min -alne '$min = min @F; $rmin = $min unless defined $rmin &amp;&amp; $min &gt; $rmin; END { print $rmin }'</p><p># Find the maximum element on a line<br />perl -MList::Util=max -alne 'print max @F'</p><p># Find the maximum element over all the lines<br />perl -MList::Util=max -alne '@M = (@M, @F); END { print max @M }'</p><p># Replace each field with its absolute value<br />perl -alne 'print "@{[map { abs } @F]}"'</p><p># Find the total number of fields (words) on each line<br />perl -alne 'print scalar @F'</p><p># Print the total number of fields (words) on each line followed by the line<br />perl -alne 'print scalar @F, " $_"'</p><p># Find the total number of fields (words) on all lines<br />perl -alne '$t += @F; END { print $t}'</p><p># Print the total number of fields that match a pattern<br />perl -alne 'map { /regex/ &amp;&amp; $t++ } @F; END { print $t }'<br />perl -alne '$t += /regex/ for @F; END { print $t }'<br />perl -alne '$t += grep /regex/, @F; END { print $t }'</p><p># Print the total number of lines that match a pattern<br />perl -lne '/regex/ &amp;&amp; $t++; END { print $t }'</p><p># Print the number PI to n decimal places<br />perl -Mbignum=bpi -le 'print bpi(n)'</p><p># Print the number PI to 39 decimal places<br />perl -Mbignum=PI -le 'print PI'</p><p># Print the number E to n decimal places<br />perl -Mbignum=bexp -le 'print bexp(1,n+1)'</p><p># Print the number E to 39 decimal places<br />perl -Mbignum=e -le 'print e'</p><p># Print UNIX time (seconds since Jan 1, 1970, 00:00:00 UTC)<br />perl -le 'print time'</p><p># Print GMT (Greenwich Mean Time) and local computer time<br />perl -le 'print scalar gmtime'<br />perl -le 'print scalar localtime'</p><p># Print local computer time in H:M:S format<br />perl -le 'print join ":", (localtime)[2,1,0]'</p><p># Print yesterday's date<br />perl -MPOSIX -le '@now = localtime; $now[3] -= 1; print scalar localtime mktime @now'</p><p># Print date 14 months, 9 days and 7 seconds ago<br />perl -MPOSIX -le '@now = localtime; $now[0] -= 7; $now[4] -= 14; $now[7] -= 9; print scalar localtime mktime @now'</p><p># Prepend timestamps to stdout (GMT, localtime)<br />tail -f logfile | perl -ne 'print scalar gmtime," ",$_'<br />tail -f logfile | perl -ne 'print scalar localtime," ",$_'</p><p># Calculate factorial of 5<br />perl -MMath::BigInt -le 'print Math::BigInt-&gt;new(5)-&gt;bfac()'<br />perl -le '$f = 1; $f *= $_ for 1..5; print $f'</p><p># Calculate greatest common divisor (GCM)<br />perl -MMath::BigInt=bgcd -le 'print bgcd(@list_of_numbers)'</p><p># Calculate GCM of numbers 20 and 35 using Euclid's algorithm<br />perl -le '$n = 20; $m = 35; ($m,$n) = ($n,$m%$n) while $n; print $m'</p><p># Calculate least common multiple (LCM) of numbers 35, 20 and 8<br />perl -MMath::BigInt=blcm -le 'print blcm(35,20,8)'</p><p># Calculate LCM of 20 and 35 using Euclid's formula: n*m/gcd(n,m)<br />perl -le '$a = $n = 20; $b = $m = 35; ($m,$n) = ($n,$m%$n) while $n; print $a*$b/$m'</p><p># Generate 10 random numbers between 5 and 15 (excluding 15)<br />perl -le '$n=10; $min=5; $max=15; $, = " "; print map { int(rand($max-$min))+$min } 1..$n'</p><p># Find and print all permutations of a list<br />perl -MAlgorithm::Permute -le '$l = [1,2,3,4,5]; $p = Algorithm::Permute-&gt;new($l); print @r while @r = $p-&gt;next'</p><p># Generate the power set<br />perl -MList::PowerSet=powerset -le '@l = (1,2,3,4,5); for (@{powerset(@l)}) { print "@$_" }'</p><p># Convert an IP address to unsigned integer<br />perl -le '$i=3; $u += ($_&lt;&lt;8*$i--) for "127.0.0.1" =~ /(\d+)/g; print $u'<br />perl -le '$ip="127.0.0.1"; $ip =~ s/(\d+)\.?/sprintf("%02x", $1)/ge; print hex($ip)'<br />perl -le 'print unpack("N", 127.0.0.1)'<br />perl -MSocket -le 'print unpack("N", inet_aton("127.0.0.1"))'</p><p># Convert an unsigned integer to an IP address<br />perl -MSocket -le 'print inet_ntoa(pack("N", 2130706433))'<br />perl -le '$ip = 2130706433; print join ".", map { (($ip&gt;&gt;8*($_))&amp;0xFF) } reverse 0..3'<br />perl -le '$ip = 2130706433; $, = "."; print map { (($ip&gt;&gt;8*($_))&amp;0xFF) } reverse 0..3'</p><p><br />STRING CREATION AND ARRAY CREATION<br />----------------------------------</p><p># Generate and print the alphabet<br />perl -le 'print a..z'<br />perl -le 'print ("a".."z")'<br />perl -le '$, = ","; print ("a".."z")'<br />perl -le 'print join ",", ("a".."z")'</p><p># Generate and print all the strings from "a" to "zz"<br />perl -le 'print ("a".."zz")'<br />perl -le 'print "aa".."zz"'</p><p># Create a hex lookup table<br />@hex = (0..9, "a".."f")</p><p># Convert a decimal number to hex using @hex lookup table<br />perl -le '$num = 255; @hex = (0..9, "a".."f"); while ($num) { $s = $hex[($num%16)&amp;15].$s; $num = int $num/16 } print $s'<br />perl -le '$hex = sprintf("%x", 255); print $hex'<br />perl -le '$num = "ff"; print hex $num'</p><p># Generate a random 8 character password<br />perl -le 'print map { ("a".."z")[rand 26] } 1..8'<br />perl -le 'print map { ("a".."z", 0..9)[rand 36] } 1..8'</p><p># Create a string of specific length<br />perl -le 'print "a"x50'</p><p># Create a repeated list of elements<br />perl -le '@list = (1,2)x20; print "@list"'</p><p># Create an array from a string<br />@months = split ' ', "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"<br />@months = qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/</p><p># Create a string from an array<br />@stuff = ("hello", 0..9, "world"); $string = join '-', @stuff</p><p># Find the numeric values for characters in the string<br />perl -le 'print join ", ", map { ord } split //, "hello world"'</p><p># Convert a list of numeric ASCII values into a string<br />perl -le '@ascii = (99, 111, 100, 105, 110, 103); print pack("C*", @ascii)'<br />perl -le '@ascii = (99, 111, 100, 105, 110, 103); print map { chr } @ascii'</p><p># Generate an array with odd numbers from 1 to 100<br />perl -le '@odd = grep {$_ % 2 == 1} 1..100; print "@odd"'<br />perl -le '@odd = grep { $_ &amp; 1 } 1..100; print "@odd"'</p><p># Generate an array with even numbers from 1 to 100<br />perl -le '@even = grep {$_ % 2 == 0} 1..100; print "@even"'</p><p># Find the length of the string<br />perl -le 'print length "one-liners are great"'</p><p># Find the number of elements in an array<br />perl -le '@array = ("a".."z"); print scalar @array'<br />perl -le '@array = ("a".."z"); print $#array + 1'</p><p><br />TEXT CONVERSION AND SUBSTITUTION<br />--------------------------------</p><p># ROT13 a string<br />'y/A-Za-z/N-ZA-Mn-za-m/'</p><p># ROT 13 a file<br />perl -lpe 'y/A-Za-z/N-ZA-Mn-za-m/' file</p><p># Base64 encode a string<br />perl -MMIME::Base64 -e 'print encode_base64("string")'<br />perl -MMIME::Base64 -0777 -ne 'print encode_base64($_)' file</p><p># Base64 decode a string<br />perl -MMIME::Base64 -le 'print decode_base64("base64string")'<br />perl -MMIME::Base64 -ne 'print decode_base64($_)' file</p><p># URL-escape a string<br />perl -MURI::Escape -le 'print uri_escape($string)'</p><p># URL-unescape a string<br />perl -MURI::Escape -le 'print uri_unescape($string)'</p><p># HTML-encode a string<br />perl -MHTML::Entities -le 'print encode_entities($string)'</p><p># HTML-decode a string<br />perl -MHTML::Entities -le 'print decode_entities($string)'</p><p># Convert all text to uppercase<br />perl -nle 'print uc'<br />perl -ple '$_=uc'<br />perl -nle 'print "\U$_"'</p><p># Convert all text to lowercase<br />perl -nle 'print lc'<br />perl -ple '$_=lc'<br />perl -nle 'print "\L$_"'</p><p># Uppercase only the first word of each line<br />perl -nle 'print ucfirst lc'<br />perl -nle 'print "\u\L$_"'</p><p># Invert the letter case<br />perl -ple 'y/A-Za-z/a-zA-Z/'</p><p># Camel case each line<br />perl -ple 's/(\w+)/\u$1/g'<br />perl -ple 's/(?&lt;!['])(\w+)/\u\1/g'</p><p># Strip leading whitespace (spaces, tabs) from the beginning of each line<br />perl -ple 's/^[ \t]+//'<br />perl -ple 's/^\s+//'</p><p># Strip trailing whitespace (space, tabs) from the end of each line<br />perl -ple 's/[ \t]+$//'</p><p># Strip whitespace from the beginning and end of each line<br />perl -ple 's/^[ \t]+|[ \t]+$//g'</p><p># Convert UNIX newlines to DOS/Windows newlines<br />perl -pe 's|\n|\r\n|'</p><p># Convert DOS/Windows newlines to UNIX newlines<br />perl -pe 's|\r\n|\n|'</p><p># Convert UNIX newlines to Mac newlines<br />perl -pe 's|\n|\r|'</p><p># Substitute (find and replace) "foo" with "bar" on each line<br />perl -pe 's/foo/bar/'</p><p># Substitute (find and replace) all "foo"s with "bar" on each line<br />perl -pe 's/foo/bar/g'</p><p># Substitute (find and replace) "foo" with "bar" on lines that match "baz"<br />perl -pe '/baz/ &amp;&amp; s/foo/bar/'</p><p># Binary patch a file (find and replace a given array of bytes as hex numbers)<br />perl -pi -e 's/\x89\xD8\x48\x8B/\x90\x90\x48\x8B/g' file</p><p><br />SELECTIVE PRINTING AND DELETING OF CERTAIN LINES<br />------------------------------------------------</p><p># Print the first line of a file (emulate head -1)<br />perl -ne 'print; exit'</p><p># Print the first 10 lines of a file (emulate head -10)<br />perl -ne 'print if $. &lt;= 10'<br />perl -ne '$. &lt;= 10 &amp;&amp; print'<br />perl -ne 'print if 1..10'</p><p># Print the last line of a file (emulate tail -1)<br />perl -ne '$last = $_; END { print $last }'<br />perl -ne 'print if eof'</p><p># Print the last 10 lines of a file (emulate tail -10)<br />perl -ne 'push @a, $_; @a = @a[@a-10..$#a]; END { print @a }'</p><p># Print only lines that match a regular expression<br />perl -ne '/regex/ &amp;&amp; print'</p><p># Print only lines that do not match a regular expression<br />perl -ne '!/regex/ &amp;&amp; print'</p><p># Print the line before a line that matches a regular expression<br />perl -ne '/regex/ &amp;&amp; $last &amp;&amp; print $last; $last = $_'</p><p># Print the line after a line that matches a regular expression<br />perl -ne 'if ($p) { print; $p = 0 } $p++ if /regex/'</p><p># Print lines that match regex AAA and regex BBB in any order<br />perl -ne '/AAA/ &amp;&amp; /BBB/ &amp;&amp; print'</p><p># Print lines that don't match match regexes AAA and BBB<br />perl -ne '!/AAA/ &amp;&amp; !/BBB/ &amp;&amp; print'</p><p># Print lines that match regex AAA followed by regex BBB followed by CCC<br />perl -ne '/AAA.*BBB.*CCC/ &amp;&amp; print'</p><p># Print lines that are 80 chars or longer<br />perl -ne 'print if length &gt;= 80'</p><p># Print lines that are less than 80 chars in length<br />perl -ne 'print if length &lt; 80'</p><p># Print only line 13<br />perl -ne '$. == 13 &amp;&amp; print &amp;&amp; exit'</p><p># Print all lines except line 27<br />perl -ne '$. != 27 &amp;&amp; print'<br />perl -ne 'print if $. != 27'</p><p># Print only lines 13, 19 and 67<br />perl -ne 'print if $. == 13 || $. == 19 || $. == 67'<br />perl -ne 'print if int($.) ~~ (13, 19, 67)'</p><p># Print all lines between two regexes (including lines that match regex)<br />perl -ne 'print if /regex1/../regex2/'</p><p># Print all lines from line 17 to line 30<br />perl -ne 'print if $. &gt;= 17 &amp;&amp; $. &lt;= 30'<br />perl -ne 'print if int($.) ~~ (17..30)'<br />perl -ne 'print if grep { $_ == $. } 17..30'</p><p># Print the longest line<br />perl -ne '$l = $_ if length($_) &gt; length($l); END { print $l }'</p><p># Print the shortest line<br />perl -ne '$s = $_ if $. == 1; $s = $_ if length($_) &lt; length($s); END { print $s }'</p><p># Print all lines that contain a number<br />perl -ne 'print if /\d/'</p><p># Find all lines that contain only a number<br />perl -ne 'print if /^\d+$/'</p><p># Print all lines that contain only characters<br />perl -ne 'print if /^[[:alpha:]]+$/</p><p># Print every second line<br />perl -ne 'print if $. % 2'</p><p># Print every second line, starting the second line<br />perl -ne 'print if $. % 2 == 0'</p><p># Print all lines that repeat<br />perl -ne 'print if ++$a{$_} == 2'</p><p># Print all unique lines<br />perl -ne 'print unless $a{$_}++'</p><p># Print the first field (word) of every line (emulate cut -f 1 -d ' ')<br />perl -alne 'print $F[0]'</p><p><br />HANDY REGULAR EXPRESSIONS<br />-------------------------</p><p># Match something that looks like an IP address<br />/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/<br />/^(\d{1,3}\.){3}\d{1,3}$/</p><p># Test if a number is in range 0-255<br />/^([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$/</p><p># Match an IP address<br />my $ip_part = qr|([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|;<br />if ($ip =~ /^($ip_part\.){3}$ip_part$/) {<br /> say "valid ip";<br />}</p><p># Check if the string looks like an email address<br />/\S+@\S+\.\S+/</p><p># Check if the string is a decimal number<br />/^\d+$/<br />/^[+-]?\d+$/<br />/^[+-]?\d+\.?\d*$/</p><p># Check if the string is a hexadecimal number<br />/^0x[0-9a-f]+$/i</p><p># Check if the string is an octal number<br />/^0[0-7]+$/</p><p># Check if the string is binary<br />/^[01]+$/</p><p># Check if a word appears twice in the string<br />/(word).*\1/</p><p># Increase all numbers by one in the string<br />$str =~ s/(\d+)/$1+1/ge</p><p># Extract HTTP User-Agent string from the HTTP headers<br />/^User-Agent: (.+)$/</p><p># Match printable ASCII characters<br />/[ -~]/</p><p># Match unprintable ASCII characters<br />/[^ -~]/</p><p># Match text between two HTML tags<br />m|&lt;strong&gt;([^&lt;]*)&lt;/strong&gt;|<br />m|&lt;strong&gt;(.*?)&lt;/strong&gt;|</p><p># Replace all &lt;b&gt; tags with &lt;strong&gt;<br />$html =~ s|&lt;(/)?b&gt;|&lt;$1strong&gt;|g</p><p># Extract all matches from a regular expression<br />my @matches = $text =~ /regex/g;</p><p><br />PERL TRICKS<br />-----------</p><p># Print the version of a Perl module<br />perl -MModule -le 'print $Module::VERSION'<br />perl -MLWP::UserAgent -le 'print $LWP::UserAgent::VERSION'</p>]]></description>
	<dc:creator>Shruti Paniwala</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/35144/converting-fastq-to-fasta</guid>
	<pubDate>Fri, 12 Jan 2018 03:49:09 -0600</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/35144/converting-fastq-to-fasta</link>
	<title><![CDATA[Converting FASTQ to FASTA]]></title>
	<description><![CDATA[<div id="block-system-main"><div><div><div><div><div><div><p>There are several ways you can convert fastq to fasta sequences. Some methods are listed below.</p><h3>Using SED</h3><p><span><code><span>sed</span></code></span>&nbsp;can be used to selectively print the desired lines from a file, so if you print the first and 2rd line of every 4 lines, you get the sequence header and sequence needed for fasta format.</p><pre>sed -n '1~4s/^@/&gt;/p;2~4p' INFILE.fastq &gt; OUTFILE.fasta
</pre><h3>Using PASTE</h3><p>You can linerize every 4 lines in a tabular format and print first and second field using&nbsp;<span><code>paste</code></span></p><pre>cat INFILE.fastq | paste - - - - |cut -f 1, 2| sed 's/@/&gt;/'g | tr -s "/t" "/n" &gt; OUTFILE.fasta
</pre><h3>EMBOSS:seqret</h3><p>Standard script that can be used for many purposes. One such use is fastq-fasta conversion</p><pre>seqret -sequence reads.fastq -outseq reads.fasta
</pre><p><span><code><span>awk</span></code></span>&nbsp;can be used for conversion as follows:</p><h3>Using AWK</h3><pre>cat infile.fq | awk '{if(NR%4==1) {printf("&gt;%s\n",substr($0,2));} else if(NR%4==2) print;}' &gt; file.fa
</pre><h3>FASTX-toolkit</h3><p><span><code>fastq_to_fasta</code></span>&nbsp;is available in the FASTX-toolkit that scales really well with the huge datasets</p><pre>fastq_to_fasta -h
usage: fastq_to_fasta [-h] [-r] [-n] [-v] [-z] [-i INFILE] [-o OUTFILE]
# Remember to use -Q33 for illumina reads!
version 0.0.6
       [-h]         = This helpful help screen.
       [-r]         = Rename sequence identifiers to numbers.
       [-n]         = keep sequences with unknown (N) nucleotides.
                   Default is to discard such sequences.
       [-v]         = Verbose - report number of sequences.
                   If [-o] is specified,  report will be printed to STDOUT.
                   If [-o] is not specified (and output goes to STDOUT),
                   report will be printed to STDERR.
       [-z]         = Compress output with GZIP.
       [-i INFILE]  = FASTA/Q input file. default is STDIN.
       [-o OUTFILE] = FASTA output file. default is STDOUT.
</pre><h3>Bioawk</h3><p>Another option to convert fastq to fasta format using&nbsp;<span><code>bioawk</code></span></p><pre>bioawk -c fastx '{print "&gt;"$name"\n"$seq}' input.fastq &gt; output.fasta
</pre><h3>Seqtk</h3><p>From the same developer, there is another option using a tool called&nbsp;<span><code>seqtk</code></span></p><pre>seqtk seq -a input.fastq &gt; output.fasta
</pre><p>Note that you can use either compressed or uncompressed files for this tool</p></div></div></div></div></div></div></div>]]></description>
	<dc:creator>Neel</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/35033/bbsplit-read-binning-tool-for-metagenomes-and-contaminated-libraries</guid>
	<pubDate>Wed, 03 Jan 2018 00:25:27 -0600</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/35033/bbsplit-read-binning-tool-for-metagenomes-and-contaminated-libraries</link>
	<title><![CDATA[BBSplit: Read Binning Tool for Metagenomes and Contaminated Libraries]]></title>
	<description><![CDATA[<p>BBSplit internally uses BBMap to map reads to multiple genomes at once, and determine which genome they match best. This is different than with ordinary mapping. If a genome (say, human) contains an exact repeat somewhere, reads mapping to it will be mapped ambiguously. But if you want to determine whether reads are mouse or human, it does not matter whether they map ambiguously within human, only whether they are ambiguous between human and mouse. BBSplit tracks this additional ambiguity information and decides how to use it based on the &ldquo;ambig2&rdquo; flag. The normal use of BBSplit is like Seal, either quantifying how many reads go to each reference, or splitting the reads into multiple output files, one per reference. BBSplit can only be run using references indexed with BBSplit, as they contain additional information regarding which sequences came from which reference file.</p><p><span>BBSplit is a tool that bins reads by mapping to multiple references simultaneously, using&nbsp;</span><a href="http://seqanswers.com/forums/showthread.php?t=41057" target="_blank">BBMap</a><span>. The reads go to the bin of the reference they map to best. There are also disambiguation options, such that reads that map to multiple references can be binned with all of them, none of them, one of them, or put in a special "ambiguous" file for each of them. Paired reads will always be kept together.</span><br /><br /><span>For example, if you had a library of something that was contaminated with e.coli and salmonella, you could do this:</span><br /><br /><strong>bbsplit.sh in=reads.fq ref=ecoli.fa,salmonella.fa basename=out_%.fq outu=clean.fq int=t</strong><br /><br /><span>This will produce 3 output files:</span><br /><strong>out_ecoli.fq</strong><span>&nbsp;(ecoli reads)</span><br /><strong>out_salmonella.fq</strong><span>&nbsp;(salmonella reads)</span><br /><strong>clean.fq</strong><span>&nbsp;(unmapped reads)</span><br /><br /><span>In this case, "int=t" means that the input file is paired and interleaved. For single-end reads you would leave that out. For paired reads in 2 files, you would do this:</span><br /><strong>bbsplit.sh in1=reads1.fq in2=reads2.fq ref=ecoli.fa,salmonella.fa basename=out_%.fq outu1=clean1.fq outu2=clean2.fq</strong></p><p><strong><span>BBSplit is available here:</span><br /><a href="https://sourceforge.net/projects/bbmap/" target="_blank">https://sourceforge.net/projects/bbmap/</a></strong></p><p><span>The sensitivity can be raised to be equivalent to BBMap with these flags: "minratio=0.56 minhits=1 maxindel=16000"</span></p>]]></description>
	<dc:creator>Poonam Mahapatra</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/34814/bioinformatics-web-application-development-with-perl</guid>
	<pubDate>Tue, 26 Dec 2017 18:14:11 -0600</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/34814/bioinformatics-web-application-development-with-perl</link>
	<title><![CDATA[Bioinformatics Web Application Development with Perl]]></title>
	<description><![CDATA[<div><p>Perl's second wave of adoption came from the growth of the world wide web. Dynamic web pages&mdash;the precursor to modern web applications&mdash;were easy to create with Perl and CGI. Thanks to Perl's ubiquity as a language for system administrators and its power to manipulate text, it was the default choice for web programming. Its presence everywhere made it popular and, in some ways, the duct tape of the Internet.</p><h4>Web Application Development</h4><p>The old days of CGI programs and the simple development style that represented seem clunky. Web pages have become web applications. Development has moved from generating static HTML to both client and server side programming, with rich client interfaces and powerful backends.</p><p>Perl is still well suited for developing modern web apps. The language grows more powerful and easier to use every year, the available libraries are wonderful and keep getting better, and the inventions and discoveries available in modern Perl are unsurpassed.</p><p>In particular, a modern Perl developer can do amazing things with modern Perl tools. If you still think of Perl web development as a&nbsp;<em>cgi-bin</em>&nbsp;directory full of messy scripts that spew warnings to STDERR, you're a decade out of date. Better yet, you can replace that mess piecemeal, thanks to the new tools and techniques of modern Perl. See, for example, the ever-growing list of technologies&nbsp;<a href="http://www.builtinperl.com/">Built in Perl</a>.</p><h4>Modern Perl Web Frameworks</h4><p>While the old wave of web development may have made the CGI.pm module central, modern Perl web programming follows a stricter separation of business logic, URL and request routing, and output. The days of slinging a string here, an array there, a Perl hash yonder, declaring every variable at the top of the program, and maybe making a subroutine are gone. The Perl world has seen the value of abstraction and ways to mechanize away boilerplate. Perl has dozens of frameworks and toolkits designed to make web development and deployment simpler.</p><p>Any of a dozen of these frameworks will help you do great things, but three in particular stand out. You can build web sites and web applications of tremendous value with all three. These are neither the only good possibilities (think of POE or Jifty or Continuity or...) nor the only mechanisms for web programming with Perl (see Mechanize or LWP or Mojo::UserAgent for more). Yet if you want three good options to choose between, start here.</p><h4>Catalyst</h4><p>The&nbsp;<a href="http://catalystframework.org/">Catalyst</a>&nbsp;framework is a flexible and powerful system for building small to large web apps. It uses the&nbsp;<a href="http://moose.perl.org/">Moose</a>&nbsp;object system to provide great APIs for extension and further development. It's the most mature of the modern top Perl web frameworks, yet it retains its flexibility and vibrancy. In particular, its plugin and extension ecosystem allows it to evolve to provide new and essential features.</p><p>Catalyst has embraced the Plack/PSGI standard for Perl web deployment and recent versions are exploring high-scalability, event-based request handling models.</p><h4>Dancer</h4><p>The&nbsp;<a href="http://perldancer.org/">Dancer</a>&nbsp;framework is deliberately minimal in syntax and scope, but it also has a vibrant plugin ecosystem. Dancer particularly excels for smaller sites and applications, though good programmers can build larger things with it.</p><p>The first version of Dancer was easy to use. Dancer 2 continues that ease while improving the internals and robustness of applications.</p><h4>Mojolicious</h4><p>The&nbsp;<a href="http://mojolicio.us/">Mojolicious</a>&nbsp;(Mojo) framework has a real-time design based on high performance event handling. Its focus is solving new and interesting problems in simple and effective ways, and the project has produced a lot of new code that does old things in better ways.</p><p>In particular, Mojolicious goes to great lengths to support new web standards, such as CSS 3, web sockets, and HTTP 2.</p><p>Where Catalyst embraces the CPAN fully, Mojolicious by design provides most of what an average app might need in a single download. It's still fully compatible with the CPAN, but the intention is to provide good working defaults in a package that's easy to start with. Mojo's fans are quick to praise it as fun to develop.</p><p>A modern Perl web developer should be familiar with at least one of these frameworks.</p><h4>Modern Perl Storage Mechanisms</h4><p>Perl's venerable&nbsp;<a href="http://search.cpan.org/perldoc?DBI">DBI</a>&nbsp;module has been the focal point of database access since its invention. Its design allows it to provide the same interface to huge relational databases and flat files alike through its DBD extension mechanism. Yet the DBI by itself isn't the be-all, end-all of data storage and access in Perl.</p><h4>DBIx::Class</h4><p><a href="http://search.cpan.org/perldoc?DBIx::Class">DBIx::Class</a>&nbsp;sits on top of DBI to provide an API to your database based on the concept of queries and results. This is often sufficient to remove all but the most complicated of SQL from your code, leaving you to manipulate your business models instead of the small details of how a relational database works. The power and maintainability you receive is well the small cost of the learning curve.</p><p>Even better, DBIC can manage (and even generate) your database schema for you.</p><p>Recent versions of DBIC have demonstrated that a well-written ORM can perform much better than even clever hand-written code. Because it builds on the Perl DBI, it scales everywhere from SQLite to PostgreSQL, MySQL, Oracle, and more.</p><h3>Rose::DB</h3><p>The lesser-known but no less powerful&nbsp;<a href="http://search.cpan.org/perldoc?Rose::DB::Object">Rose::DB::Object</a>&nbsp;builds on&nbsp;<a href="http://search.cpan.org/perldoc?Rose::DB">Rose::DB</a>&nbsp;to provide an object-relational mapper for Perl. While its high level features most directly compare to those of DBIx::Class, it's often measurably faster.</p><h4>NoSQL on the CPAN</h4><p>Of course the&nbsp;<a href="http://search.cpan.org/">CPAN</a>&nbsp;has modules for almost any NoSQL database or job queue or persistence mechanism you could name, and several you have never heard of. Everything you need is a quick CPAN or cpanm away!</p><h4>Modern Perl Deployment Strategies</h4><p>In the early days of the web, deploying a Perl web application meant putting one or more&nbsp;<em>.cgi</em>&nbsp;or&nbsp;<em>.pl</em>&nbsp;files in a special directory and hoping that your system administrator had everything configured correctly. The execution model was often slow and cumbersome, and accessing shared resources such as databases was often tricky.</p><p>Modern Perl has better choices. While deployment strategies are the source of many arguments, the return on your investment from learning the modern way is impressive.</p><h4>Plack/PSGI</h4><p>The PSGI specification (as exemplified by&nbsp;<a href="http://plackperl.org/">Plack</a>) describes a strategy for building Perl web apps independent of server and with the possibility to share custom processing behaviors.</p><p>In other words, it's a standard for writing Perl apps to take advantage of the huge ecosystem of Perl development available on the CPAN without tying yourself to a server like Apache, Apache 2, nginx, or anything else.</p><p>Any good modern Perl web framework (including those listed here) supports PSGI. Several deployment mechanisms exist to meet various business needs which also support PSGI. In particular, you can deploy the same application with a local testing server on your own machine as you can to your production server or servers without changing your application at all.</p><h4>mod_perl</h4><p>The older but still viable mod_perl Apache httpd module embeds Perl into the web server. This was the first widespread persistence mechanism for Perl web applications themselves and it's still popular to this day, though PSGI compliance is often the choice for new development. (PSGI handlers to use mod_perl as the backend are available.)</p><p>Modern Perl developers should familiarize themselves with PSGI and the wealth of available Plack middleware.</p><h4>Perl Web Development</h4><p>Of course no discussion of Perl web development would be complete without mentioning the strength of the CPAN. Almost any project will benefit from the wealth of freely available libraries built to solve real problems. These distributions run the gamut from full-blown web frameworks and content management systems to APIs for web services, development tools, testing systems, and interfaces to document formats and external resources.</p><p>For example, if you need to write a web service which accepts JSON data and produces Excel spreadsheets, you can glue together a few CPAN distributions and get the job done early. If you need to consume XML from a remote service and emit a PDF, you're in luck.</p><p>Perl's prowess as a general purpose programming language as well as its flexibility and power in managing text and gluing systems together make it a wonderful fit for web development. The community's adoption of modern Perl standards such as PSGI and Plack only enhance your power.</p><p>Web application development in Perl is still viable, and modern Perl tools and techniques and libraries make it more powerful and pleasant than ever.</p></div>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/34702/run-miniasm-assembler-on-nanopore-reads</guid>
	<pubDate>Mon, 18 Dec 2017 04:07:50 -0600</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/34702/run-miniasm-assembler-on-nanopore-reads</link>
	<title><![CDATA[Run miniasm assembler on nanopore reads !]]></title>
	<description><![CDATA[<p>Miniasm is a very fast OLC-based&nbsp;<em>de novo</em>&nbsp;assembler for noisy long reads. It takes all-vs-all read self-mappings (typically by&nbsp;<a href="https://github.com/lh3/minimap">minimap</a>) as input and outputs an assembly graph in the&nbsp;<a href="https://github.com/pmelsted/GFA-spec/blob/master/GFA-spec.md">GFA</a>&nbsp;format. Different from mainstream assemblers, miniasm does not have a consensus step. It simply concatenates pieces of read sequences to generate the final&nbsp;<a href="http://wgs-assembler.sourceforge.net/wiki/index.php/Celera_Assembler_Terminology">unitig</a>&nbsp;sequences. Thus the per-base error rate is similar to the raw input reads.</p><p>Find the detail of the reads repeats:</p><blockquote><p>fq2fa ONT_A.fastq ONT_A.fasta&nbsp;<br /><br />minimap2 -xava-ont ONT_A.fasta ONT_A.fasta -t10 -X &gt; AONT.paf&nbsp;<br /><br />awk '{if($1==$6){print}}' AONT.paf &gt; AONTself.paf&nbsp;<br /><br />awk '$5=="-"' AONTself.paf | awk '{print $1}'| sort|uniq &gt; invertedrepeat.list</p></blockquote><p>Generated a few palindrome and repeats plots (highlighting only repeats largest than 10, 20 and 30 kb)</p><blockquote><p>minidot -f 5 -m 30000 AONTself.paf &gt; AONTself30000.eps&nbsp;<br />sed 's/_template_pass_FAH31515//' AONTself30000.eps &gt; AONTself30000final.eps&nbsp;<br /><br />minidot -f 5 -m 20000 AONTself.paf &gt; AONTself20000.eps&nbsp;<br />sed 's/_template_pass_FAH31515//' AONTself20000.eps &gt; AONTself20000final.eps&nbsp;<br /><br />minidot -f 5 -m 10000 AONTself.paf &gt; AONTself10000.eps&nbsp;<br />sed 's/_template_pass_FAH31515//' AONTself10000.eps &gt; AONTself10000final.eps&nbsp;</p></blockquote><p>Assemble with miniasm:</p><blockquote><p>miniasm -f ONT_A.fasta AONT.paf &gt; AONT.gfa&nbsp;</p><p>grep '^S' AONT.gfa |awk '{print "&gt;"$2"\n"$3}' &gt; AONT_miniasm.fasta&nbsp;<br /><br />minimap2 -xasm10 AONT_miniasm.fasta AONT_miniasm.fasta -t1 -X &gt; AONT_miniasm.paf&nbsp;<br /><br />awk '{if($1==$6){print}}' AONT_miniasm.paf &gt; AONT_miniasm_self.paf&nbsp;<br /><br />minidot -f 5 -m 10000 AONT_miniasm_self.paf &gt; AONT_miniasm_self10000.eps&nbsp;</p></blockquote><p>Njoy the assembly !</p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>

</channel>
</rss>