<?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/17176?offset=50</link>
	<atom:link href="https://bioinformaticsonline.com/related/17176?offset=50" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/32730/ncbi-prokaryotic-genome-annotation-pipeline</guid>
	<pubDate>Tue, 16 May 2017 08:56:03 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/32730/ncbi-prokaryotic-genome-annotation-pipeline</link>
	<title><![CDATA[NCBI Prokaryotic Genome Annotation Pipeline]]></title>
	<description><![CDATA[<p>NCBI Prokaryotic Genome Annotation Pipeline is designed to annotate bacterial and archaeal genomes (chromosomes and plasmids).</p>
<p>Genome annotation is a multi-level process that includes prediction of protein-coding genes, as well as other functional genome units such as structural RNAs, tRNAs, small RNAs, pseudogenes, control regions, direct and inverted repeats, insertion sequences, transposons and other mobile elements.</p>
<p>NCBI has developed an automatic prokaryotic genome annotation pipeline that combines&nbsp;<em>ab initio</em>&nbsp;gene prediction algorithms with homology based methods. The first version of NCBI Prokaryotic Genome Automatic Annotation Pipeline (PGAAP;&nbsp;<a href="https://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&amp;db=pubmed&amp;dopt=Abstract&amp;list_uids=18416670">see Pubmed Article</a>) developed in 2005 has been replaced with an upgraded version that is capable of processing a larger data volume. You can find a more detailed description of the new version of&nbsp;the pipeline in&nbsp;<a href="https://www.ncbi.nlm.nih.gov/books/NBK174280/">NCBI Handbook chapter</a>. NCBI's annotation pipeline depends on several internal databases and is not currently available for download or use outside of the NCBI environment.</p>
<p>https://www.ncbi.nlm.nih.gov/genome/annotation_prok/</p><p>Address of the bookmark: <a href="https://www.ncbi.nlm.nih.gov/genome/annotation_prok/" rel="nofollow">https://www.ncbi.nlm.nih.gov/genome/annotation_prok/</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/news/view/44724/step-by-step-guide-to-detect-pirnas-using-bioinformatics</guid>
	<pubDate>Fri, 13 Dec 2024 11:41:46 -0600</pubDate>
	<link>https://bioinformaticsonline.com/news/view/44724/step-by-step-guide-to-detect-pirnas-using-bioinformatics</link>
	<title><![CDATA[Step-by-Step Guide to Detect piRNAs Using Bioinformatics]]></title>
	<description><![CDATA[<p>Piwi-interacting RNAs (piRNAs) are a class of small non-coding RNAs that play crucial roles in silencing transposable elements and regulating gene expression, particularly in germline cells. Detecting piRNAs involves identifying their unique characteristics, such as size, sequence motifs, and association with Piwi proteins, from high-throughput RNA sequencing data.</p><p>This blog provides a comprehensive step-by-step guide to detect piRNAs using bioinformatics tools and workflows.</p><h4><strong>Step 1: Prepare Your Data</strong></h4><ol>
<li>
<p><strong>Obtain RNA Sequencing Data</strong><br />Acquire raw small RNA-seq data in FASTQ format. Datasets can be sourced from repositories like <strong>NCBI SRA</strong>, <strong>EMBL-EBI</strong>, or specific small RNA sequencing projects.</p>
</li>
<li>
<p><strong>Quality Control (QC)</strong><br />Use <strong>FastQC</strong> to assess the quality of raw reads:</p>
<div>
<div dir="ltr"><code>fastqc reads.fastq </code></div>
</div>
<p>Evaluate the per-base quality, adapter content, and overrepresented sequences.</p>
</li>
<li>
<p><strong>Trimming and Adapter Removal</strong><br />Use tools like <strong>Cutadapt</strong> or <strong>Trim Galore!</strong> to remove adapters and low-quality bases:</p>
<div>
<div dir="ltr"><code>cutadapt -a TGGAATTCTCGGGTGCCAAGG -o trimmed_reads.fastq reads.fastq </code></div>
</div>
<p>Ensure the remaining reads are of high quality for downstream analysis.</p>
</li>
</ol><h4><strong>Step 2: Map Reads to the Genome</strong></h4><p>Mapping reads to the reference genome is crucial for identifying piRNA loci.</p><ol>
<li>
<p><strong>Reference Genome Preparation</strong><br />Download the genome assembly of your organism from databases like <strong>Ensembl</strong>, <strong>UCSC Genome Browser</strong>, or <strong>NCBI</strong>.</p>
</li>
<li>
<p><strong>Align Reads</strong><br />Use <strong>Bowtie</strong> or <strong>STAR</strong> for small RNA alignment:</p>
<div>
<div dir="ltr"><code>bowtie -v 1 -k 1 --best genome_index trimmed_reads.fastq -S aligned_reads.sam </code></div>
</div>
<ul>
<li><code>-v 1</code>: Allows one mismatch.</li>
<li><code>-k 1</code>: Reports the best alignment.</li>
</ul>
</li>
<li>
<p><strong>Convert SAM to BAM</strong><br />Convert and sort alignments using <strong>SAMtools</strong>:</p>
<div>
<div dir="ltr"><code>samtools view -Sb aligned_reads.sam | samtools sort -o sorted_reads.bam </code></div>
</div>
</li>
</ol><h4><strong>Step 3: Identify Small RNAs</strong></h4><p>piRNAs are characterized by their size (24&ndash;32 nt) and strand bias.</p><ol>
<li>
<p><strong>Extract Reads by Size</strong><br />Use tools like <strong>BEDtools</strong> or custom scripts to filter reads between 24 and 32 nt:</p>
<div>
<div dir="ltr"><code>bedtools bamtofastq -i sorted_reads.bam -fq all_reads.fastq seqkit seq -m 24 -M 32 all_reads.fastq &gt; piRNA_size_reads.fastq </code></div>
</div>
</li>
<li>
<p><strong>Check for Sequence Bias</strong><br />piRNAs often have a strong bias for a uridine at the 5&rsquo; end (1U bias). Use tools like <strong>WebLogo</strong> to visualize sequence motifs.</p>
</li>
</ol><h4><strong>Step 4: Detect Ping-Pong Signature</strong></h4><p>The ping-pong amplification loop is a hallmark of piRNA biogenesis, characterized by a 10 nt overlap between piRNAs on opposite strands.</p><ol>
<li>
<p><strong>Generate Overlap Statistics</strong><br />Use the <strong>piPipes</strong> tool or custom scripts to calculate overlap:</p>
<div>
<div dir="ltr"><code>python ping_pong_overlap.py sorted_reads.bam </code></div>
</div>
</li>
<li>
<p><strong>Visualize Overlap Distribution</strong><br />Plot the distribution of overlaps to confirm the presence of the 10 nt ping-pong signature.</p>
</li>
</ol><h4><strong>Step 5: Annotate piRNA Clusters</strong></h4><p>piRNAs are often generated from genomic clusters.</p><ol>
<li>
<p><strong>Cluster Identification</strong><br />Use tools like <strong>proTRAC</strong> or <strong>PIRANHA</strong> to identify piRNA-producing clusters:</p>
<div>
<div dir="ltr"><code>proTRAC.pl -s sorted_reads.bam -g genome.fa -o clusters </code></div>
</div>
</li>
<li>
<p><strong>Annotate Genomic Regions</strong><br />Annotate the identified clusters using gene annotation files (GTF/GFF). Tools like <strong>BEDtools intersect</strong> can help associate piRNA clusters with genes or transposable elements:</p>
<div>
<div dir="ltr"><code>bedtools intersect -a clusters.bed -b genome_annotation.gtf &gt; annotated_clusters.bed </code></div>
</div>
</li>
</ol><h4><strong>Step 6: Functional Analysis</strong></h4><p>Functional analysis of piRNAs can uncover their targets and regulatory roles.</p><ol>
<li>
<p><strong>Predict piRNA Targets</strong><br />Use tools like <strong>IntaRNA</strong> or <strong>RNAhybrid</strong> to predict interactions between piRNAs and potential target mRNAs:</p>
<div>
<div dir="ltr"><code>RNAhybrid -t target_transcripts.fa -q piRNAs.fa &gt; piRNA_targets.txt </code></div>
</div>
</li>
<li>
<p><strong>Enrichment Analysis</strong><br />Perform GO or KEGG enrichment analysis of target genes using tools like <strong>g:Profiler</strong> or <strong>DAVID</strong>.</p>
</li>
</ol><h4><strong>Step 7: Validation and Visualization</strong></h4><ol>
<li>
<p><strong>Validate piRNA Candidates</strong><br />Cross-check the identified piRNAs against known piRNA databases, such as <strong>piRBase</strong> or <strong>piRNAdb</strong>.</p>
</li>
<li>
<p><strong>Visualize Results</strong></p>
<ul>
<li>Use <strong>IGV</strong> (Integrative Genomics Viewer) to visualize piRNA alignment and clusters on the genome.</li>
<li>Generate heatmaps or circos plots to present piRNA distributions.</li>
</ul>
</li>
</ol><h4><strong>Step 8: Share and Publish Findings</strong></h4><ol>
<li>
<p><strong>Archive Data</strong><br />Submit sequencing data to public repositories like <strong>SRA</strong> or <strong>GEO</strong> with metadata specifying piRNA-related experiments.</p>
</li>
<li>
<p><strong>Publish Results</strong><br />Share findings in journals or conferences, emphasizing novel piRNA candidates, target genes, or regulatory mechanisms.</p>
</li>
</ol><h4><strong>Conclusion</strong></h4><p>Detecting piRNAs involves a combination of computational and analytical methods to identify these unique small RNAs and their roles in gene regulation and transposable element suppression. By following this step-by-step guide, you can confidently navigate the complexities of piRNA detection and contribute to the growing understanding of their biological significance.</p>]]></description>
	<dc:creator>Abhi</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/40948/bio7-an-integrated-development-environment-for-ecological-modeling-scientific-image-analysis-and-statistical-analysis</guid>
	<pubDate>Fri, 07 Feb 2020 23:32:24 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/40948/bio7-an-integrated-development-environment-for-ecological-modeling-scientific-image-analysis-and-statistical-analysis</link>
	<title><![CDATA[Bio7: an integrated development environment for ecological modeling, scientific image analysis and statistical analysis]]></title>
	<description><![CDATA[<p><span>The application Bio7 is an integrated development environment for ecological modeling, scientific image analysis and statistical analysis. The application itself is based on an RCP-Eclipse-Environment (Rich-Client-Platform) which offers a huge flexibility in configuration and extensibility because of its plug-in structure and the possibility of customization.</span></p>
<p><a href="https://bio7.org/about/">https://bio7.org/about/</a></p><p>Address of the bookmark: <a href="https://bio7.org/home-2/" rel="nofollow">https://bio7.org/home-2/</a></p>]]></description>
	<dc:creator>Nidhi Rajput</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/44734/data-visualization-in-bioinformatics-useful-and-eye-catching-plots-for-data-analysis</guid>
	<pubDate>Sat, 14 Dec 2024 12:41:53 -0600</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/44734/data-visualization-in-bioinformatics-useful-and-eye-catching-plots-for-data-analysis</link>
	<title><![CDATA[Data Visualization in Bioinformatics: Useful and Eye-Catching Plots for Data Analysis]]></title>
	<description><![CDATA[<p>Data visualization is a cornerstone of bioinformatics, enabling researchers to interpret complex datasets effectively. With a plethora of data types&mdash;genomic sequences, expression profiles, protein interactions, and more&mdash;the right visualizations can make or break an analysis. This blog highlights some of the most useful and visually compelling plots for bioinformatics data analysis, along with tools to create them.</p><h4><strong>1. Heatmaps: Exploring Patterns in High-Dimensional Data</strong></h4><p>Heatmaps are a go-to visualization for representing high-dimensional datasets, such as gene expression or metabolomics data. They use color gradients to display data intensity, making patterns and clusters easily detectable.</p><ul>
<li>
<p><strong>Applications</strong>: Gene expression analysis, pathway enrichment, methylation studies.</p>
</li>
<li>
<p><strong>Tools</strong>: Seaborn (Python), ComplexHeatmap (R), Morpheus (web-based).</p>
</li>
</ul><p><strong>Tip</strong>: Add dendrograms to visualize clustering of rows and columns for hierarchical relationships.</p><h4><strong>2. Volcano Plots: Highlighting Differential Features</strong></h4><p>Volcano plots are indispensable for identifying significantly differentially expressed genes or proteins. They plot the log2 fold change against &ndash;log10(p-value), making it easy to spot statistically significant changes.</p><ul>
<li>
<p><strong>Applications</strong>: RNA-seq, proteomics, and metabolomics.</p>
</li>
<li>
<p><strong>Tools</strong>: ggplot2 (R), EnhancedVolcano (R), Plotly (Python).</p>
</li>
</ul><p><strong>Tip</strong>: Use color to highlight significant features and label key genes or proteins.</p><h4><strong>3. PCA Plots: Reducing Complexity with Principal Component Analysis</strong></h4><p>Principal Component Analysis (PCA) plots are used to reduce dimensionality and uncover trends or clusters in data. They provide insights into sample variability and grouping.</p><ul>
<li>
<p><strong>Applications</strong>: Transcriptomics, metabolomics, microbiome studies.</p>
</li>
<li>
<p><strong>Tools</strong>: scikit-learn + Matplotlib (Python), prcomp (R), ClustVis (web-based).</p>
</li>
</ul><p><strong>Tip</strong>: Annotate clusters with metadata to enhance interpretability.</p><h4><strong>4. Manhattan Plots: Genome-Wide Association Studies</strong></h4><p>Manhattan plots visualize p-values across the genome, making it easy to identify significant associations in genome-wide studies. They resemble city skylines, with the highest peaks indicating loci of interest.</p><ul>
<li>
<p><strong>Applications</strong>: GWAS, QTL mapping.</p>
</li>
<li>
<p><strong>Tools</strong>: qqman (R), Matplotlib (Python).</p>
</li>
</ul><p><strong>Tip</strong>: Use alternating colors for chromosomes and highlight significant SNPs for clarity.</p><h4><strong>5. Circular Plots (Circos): Visualizing Genomic Relationships</strong></h4><p>Circular plots are ideal for visualizing relationships across the genome, such as structural variations, gene duplications, or synteny.</p><ul>
<li>
<p><strong>Applications</strong>: Comparative genomics, structural variation studies.</p>
</li>
<li>
<p><strong>Tools</strong>: Circos (standalone), Rcircos (R), pyCircos (Python).</p>
</li>
</ul><p><strong>Tip</strong>: Keep the plot clean and avoid overcrowding to maintain readability.</p><h4><strong>6. Sankey Diagrams: Tracking Data Flows</strong></h4><p>Sankey diagrams visualize flows or relationships between categories, often used to track changes in gene expression or pathway enrichment across conditions.</p><ul>
<li>
<p><strong>Applications</strong>: Pathway analysis, gene set enrichment analysis.</p>
</li>
<li>
<p><strong>Tools</strong>: Plotly (Python), networkD3 (R).</p>
</li>
</ul><p><strong>Tip</strong>: Use gradients or distinct colors to highlight key transitions.</p><h4><strong>7. Network Graphs: Mapping Interactions</strong></h4><p>Network graphs represent relationships between entities, such as protein-protein interactions or gene regulatory networks. Nodes represent entities, and edges represent relationships.</p><ul>
<li>
<p><strong>Applications</strong>: Systems biology, interactomics.</p>
</li>
<li>
<p><strong>Tools</strong>: Cytoscape (standalone), igraph (R), NetworkX (Python).</p>
</li>
</ul><p><strong>Tip</strong>: Use edge thickness or node size to represent interaction strength or centrality.</p><h4><strong>8. Violin Plots: Visualizing Data Distribution</strong></h4><p>Violin plots combine a boxplot with a density plot, showing the distribution and variability of data.</p><ul>
<li>
<p><strong>Applications</strong>: Single-cell RNA-seq, quantitative trait analysis.</p>
</li>
<li>
<p><strong>Tools</strong>: Seaborn (Python), ggplot2 (R).</p>
</li>
</ul><p><strong>Tip</strong>: Split violins by groups for side-by-side comparisons.</p><h4><strong>9. Time-Series Plots: Monitoring Changes Over Time</strong></h4><p>Time-series plots display changes in variables across time points, useful for tracking gene expression dynamics or metabolic fluxes.</p><ul>
<li>
<p><strong>Applications</strong>: Time-course experiments, cell cycle studies.</p>
</li>
<li>
<p><strong>Tools</strong>: Matplotlib (Python), ggplot2 (R).</p>
</li>
</ul><p><strong>Tip</strong>: Smooth the data to highlight trends while avoiding overfitting.</p><h4><strong>10. Genome Tracks: Visualizing Genomic Features</strong></h4><p>Genome tracks display multiple layers of genomic data, such as gene annotations, sequencing coverage, and epigenetic marks.</p><ul>
<li>
<p><strong>Applications</strong>: ChIP-seq, ATAC-seq, whole-genome sequencing.</p>
</li>
<li>
<p><strong>Tools</strong>: IGV (standalone), pyGenomeTracks (Python).</p>
</li>
</ul><p><strong>Tip</strong>: Stack related tracks for direct comparisons.</p><h4><strong>11. UpSet Plots: Visualizing Set Intersections</strong></h4><p>UpSet plots are a powerful alternative to Venn diagrams for visualizing intersections between multiple datasets.</p><ul>
<li>
<p><strong>Applications</strong>: Overlap analysis for gene sets, pathways, or variants.</p>
</li>
<li>
<p><strong>Tools</strong>: UpSetR (R), ComplexUpset (Python).</p>
</li>
</ul><p><strong>Tip</strong>: Use bar plots to represent the size of each intersection for added clarity.</p><h4><strong>12. Ridge Plots: Comparing Distributions</strong></h4><p>Ridge plots visualize the distributions of multiple datasets, stacked for easy comparison.</p><ul>
<li>
<p><strong>Applications</strong>: Transcriptomics, single-cell RNA-seq.</p>
</li>
<li>
<p><strong>Tools</strong>: ggridges (R), Matplotlib (Python).</p>
</li>
</ul><p><strong>Tip</strong>: Use transparency and consistent scaling for better readability.</p><h4><strong>13. Chord Diagrams: Visualizing Connections Between Groups</strong></h4><p>Chord diagrams illustrate relationships between categories, such as shared genes between pathways or overlaps in regulatory elements.</p><ul>
<li>
<p><strong>Applications</strong>: Pathway overlap, synteny, co-expression networks.</p>
</li>
<li>
<p><strong>Tools</strong>: Circlize (R), Holoviews (Python).</p>
</li>
</ul><p><strong>Tip</strong>: Use distinct colors for each group to emphasize relationships.</p><h4><strong>14. Treemaps: Hierarchical Data Representation</strong></h4><p>Treemaps visualize hierarchical data as nested rectangles, with area proportional to data size.</p><ul>
<li>
<p><strong>Applications</strong>: Ontology enrichment, pathway analysis.</p>
</li>
<li>
<p><strong>Tools</strong>: Treemapify (R), Plotly (Python).</p>
</li>
</ul><p><strong>Tip</strong>: Use colors to represent additional variables, like significance or enrichment scores.</p><h4><strong>15. T-SNE/UMAP Plots: Dimensionality Reduction for Clustering</strong></h4><p>T-SNE and UMAP plots are great for visualizing high-dimensional data in two dimensions while preserving local or global structure.</p><ul>
<li>
<p><strong>Applications</strong>: Single-cell transcriptomics, clustering analyses.</p>
</li>
<li>
<p><strong>Tools</strong>: scikit-learn (Python), Seurat (R).</p>
</li>
</ul><p><strong>Tip</strong>: Combine with metadata annotations for better cluster interpretation.</p><h4><strong>Bringing It All Together</strong></h4><p>The choice of visualization can significantly impact the insights gained from bioinformatics data. By selecting plots tailored to your data type and analysis goals, you can effectively communicate your findings and make your research more impactful. Whether you&rsquo;re a seasoned bioinformatician or a beginner, mastering these visualizations will elevate your analyses and presentations.</p>]]></description>
	<dc:creator>LEGE</dc:creator>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/opportunity/view/43292/bioinformatics-scientist-production-bioinformatics-south-san-francisco-ca</guid>
  <pubDate>Thu, 19 Aug 2021 08:45:24 -0500</pubDate>
  <link></link>
  <title><![CDATA[Bioinformatics Scientist, Production Bioinformatics @ South San Francisco, CA]]></title>
  <description><![CDATA[
<p>wist is looking for a Bioinformatics Scientist to join our Production Bioinformatics Team. You will work alongside research scientists, software engineers and data scientists to further deliver on our mission to expand access to best-in-class synthetic biology and next-generation sequencing applications. You will be developing and engineering tools to better evaluate and build hardened, production quality pipelines, optimize data quality, and automate lab and bioinformatics processes. Our ideal candidate is an organized problem solver with a background in developing and building novel production-quality bioinformatics tools and packages. Equally excellent communication skills and a proven ability to work independently are required.</p>

<p>More at https://boards.greenhouse.io/twistbioscience/jobs/3135495?gh_src=9ecc0b941us</p>
]]></description>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/920/bioinformatics-algorithms</guid>
	<pubDate>Tue, 16 Jul 2013 03:35:15 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/920/bioinformatics-algorithms</link>
	<title><![CDATA[Bioinformatics Algorithms]]></title>
	<description><![CDATA[<p>An algorithm is a computable set of steps to achieve a desired result.</p><p>We use algorithms every day. For example, a recipe for baking a cake is an algorithm. Most programs, with the exception of some artificial intelligence applications, consist of algorithms. Inventing elegant algorithms -- algorithms that are simple and require the fewest steps possible -- is one of the principal challenges in programming. An algorithm is a description of a procedure which terminates with a result. In other words an algorithm is a set of instructions, sometimes called a procedure or a function, that is used to perform a certain task. This can be a simple process, such as adding two numbers together, or a complex function, such as adding effects to an image. For example, in order to sharpen a digital photo, the algorithm would need to process each pixel in the image and determine which ones to change and how much to change them in order to make the image look sharper.</p><p>In mathematics, computer science, and related subjects, an algorithm is an effective method for solving a problem using a finite sequence of instructions. Algorithms are used for calculation, data processing, and many other fields.<br />Each algorithm is a list of well-defined instructions for completing a task. Starting from an initial state, the instructions describe a computation that proceeds through a well-defined series of successive states, eventually terminating in a final ending state. The transition from one state to the next is not necessarily deterministic; some algorithms, known as randomized algorithms, incorporate randomness.</p><p><strong>History</strong></p><p>The origin of the term comes from the ancients. The concept becomes more precise with the use of variables in mathematics. Algorithm in the sense of what is now used by computers appeared as soon as first mechanical engines were invented.<br />The word algorithm comes from the name of the 9th century Persian Muslim mathematician Abu Abdullah Muhammad ibn Musa Al-Khwarizmi. The word algorism originally referred only to the rules of performing arithmetic using Hindu-Arabic numerals but evolved via European Latin translation of Al-Khwarizmi's name into algorithm by the 18th century. The use of the word evolved to include all definite procedures for solving problems or performing tasks.<br />The algorithm of Archimedes gives an approximation of the Pi number.<br />Eratosthenes has defined an algorithim for retrieving prime numbers.<br />Averro&egrave;s (1126-1198) was using algorithmic methods for calculations.<br />Adelard de Bath (12 th) introduces the algorismus term, from Al-Khwarizmi.<br />During the 1800's up to the mid-1900's:<br /><br />- George Boole (1847) has invented the binary algebra, the basis of computers. Actually he has unified logic and calculation in a common symbolism.<br /><br />- Gottlob Frege (1879) formula language's, that is a lingua characterica, a language written with special symbols, "for pure thought", that is free from rhetorical embellishments... constructed from specific symbols that are manipulated according to definite rules.<br /><br />- Giuseppe Peano (1888) It's The principles of arithmetic, presented by a new method was the first attempt at an axiomatization of mathematics in a symbolic language.<br /><br />- Alfred North Whitehead and Bertrand Russell in their Principia Mathematica (1910-1913) has further simplified and amplified the work of Frege.<br /><br />- Kurt Go&euml;del (1931) cites the paradox of the liar that completely reduces rules of recursion to numbers.<br /><br />The concept of algorithm was formalized in 1936 through Alan Turing's Turing machines and Alonzo Church's lambda calculus, which in turn formed the foundation of computer science.<br />Stephen C. Kleene (1943) defined his now-famous thesis known as the "Church-Turing Thesis". In this context:<br /><br />" Algorithmic theories... In setting up a complete algorithmic theory, what we do is to describe a procedure, performable for each set of values of the independent variables, which procedure necessarily terminates and in such manner that from the outcome we can read a definite answer, "yes" or "no," to the question, "is the predicate value true?"</p><p><strong>Classification</strong></p><p><strong>Classification by purpose</strong></p><p>Each algorithm has a goal, for example, the purpose of the Quick Sort algorithm is to sort data in ascending or descending order. But the number of goals is infinite, and we have to group them by kind of purposes:</p><p><strong>Classification by implementation</strong></p><p>An algorithm may be implemeted according to different basical principles.</p><ul>
<li>Recursive or iterative</li>
</ul><p>A recursive algorithm is one that calls itself repeatedly until a certain condition matches. It is a method common to functional programming.&nbsp;<br />Iterative algorithms use repetitive constructs like loops.<br />Some problems are better suited for one implementation or the other. For example, the towers of hanoi problem is well understood in recursive implementation. Every recursive version has an iterative equivalent iterative, and vice versa.</p><ul>
<li>Logical or procedural</li>
</ul><p>An algorithm may be viewed as controlled logical deduction.&nbsp;<br />A logic component expresses the axioms which may be used in the computation and a control component determines the way in which deduction is applied to the axioms.&nbsp;<br />This is the basis of the logic programming. In pure logic programming languages the control component is fixed and algorithms are specified by supplying only the logic component.</p><ul>
<li>Serial or parallel</li>
</ul><p>Algorithms are usually discussed with the assumption that computers execute one instruction of an algorithm at a time. This is a serial algorithm, as opposed to parallel algorithms, which take advantage of computer architectures to process several instructions at once. They divide the problem into sub-problems and pass them to several processors. Iterative algorithms are generally parallelizable. Sorting algorithms can be parallelized efficiently.</p><ul>
<li>Deterministic or non-deterministic</li>
</ul><p>Deterministic algorithms solve the problem with a predefined process whereas non-deterministic algorithm must perform guesses of best solution at each step through the use of heuristics.<br /><br /><strong>Classification by design paradigm</strong></p><p>A design paradigm is a domain in research or class of problems that requires a dedicated kind of algorithm:</p><ul>
<li>Divide and conquer</li>
</ul><p>A divide and conquer algorithm repeatedly reduces an instance of a problem to one or more smaller instances of the same problem (usually recursively), until the instances are small enough to solve easily. One such example of divide and conquer is merge sorting. Sorting can be done on each segment of data after dividing data into segments and sorting of entire data can be obtained in conquer phase by merging them.<br />The binary search algorithm is an example of a variant of divide and conquer called decrease and conquer algorithm, that solves an identical subproblem and uses the solution of this subproblem to solve the bigger problem.</p><ul>
<li>Dynamic programming</li>
</ul><p>The shortest path in a weighted graph can be found by using the shortest path to the goal from all adjacent vertices.&nbsp;<br />When the optimal solution to a problem can be constructed from optimal solutions to subproblems, using dynamic programming avoids recomputing solutions that have already been computed.&nbsp;<br />- The main difference with the "divide and conquer" approach is, subproblems are independent in divide and conquer, where as the overlap of subproblems occur in dynamic programming.&nbsp;<br />- Dynamic programming and memoization go together. The difference with straightforward recursion is in caching or memoization of recursive calls. Where subproblems are independent, this is useless. By using memoization or maintaining a table of subproblems already solved, dynamic programming reduces the exponential nature of many problems to polynomial complexity.</p><ul>
<li>The greedy method</li>
</ul><p>A greedy algorithm is similar to a dynamic programming algorithm, but the difference is that solutions to the subproblems do not have to be known at each stage. Instead a "greedy" choice can be made of what looks the best solution for the moment.&nbsp;<br />The most popular greedy algorithm is finding the minimal spanning tree as given by Kruskal.</p><ul>
<li>Linear programming</li>
</ul><p>The problem is expressed as a set of linear inequalities and then an attempt is made to maximize or minimize the inputs. This can solve many problems such as the maximum flow for directed graphs, notably by using the simplex algorithm.&nbsp;<br />A complex variant of linear programming is called integer programming, where the solution space is restricted to all integers.</p><ul>
<li>Reduction also called transform and conquer</li>
</ul><p>Solve a problem by transforming it into another problem. A simple example: finding the median in an unsorted list is first translating this problem into sorting problem and finding the middle element in sorted list. The main goal of reduction is finding the simplest transformation possible.</p><ul>
<li>Using graphs</li>
</ul><p>Many problems, such as playing chess, can be modeled as problems on graphs. A graph exploration algorithms are used.&nbsp;<br />This category also includes the search algorithms and backtracking.<br /><br /><strong>The probabilistic and heuristic paradigm</strong></p><ul>
<li>Probabilistic</li>
</ul><p>Those that make some choices randomly.</p><ul>
<li>Genetic</li>
</ul><p>Attempt to find solutions to problems by mimicking biological evolutionary processes, with a cycle of random mutations yielding successive generations of "solutions". Thus, they emulate reproduction and "survival of the fittest".</p><ul>
<li>Heuristic</li>
</ul><p>Whose general purpose is not to find an optimal solution, but an approximate solution where the time or resources to find a perfect solution are not practical.</p><p><strong>Classification by complexity</strong></p><p>Some algorithms complete in linear time, and some complete in exponential amount of time, and some never complete.</p><p><strong>Algorithms resources on net.</strong></p><p><a href="http://www.cs.uga.edu/~cai/courses/compbio/2008fall/bookchapters/Chapter08/Ch08_GraphsDNAseq.pdf">Graph Algorithms in Bioinformatics</a></p><p><a href="http://zikuladevs.com/notes/Part%20II%20Revision/Bio_Alg_Descriptions[1].pdf">Bioinformatics Algorithms Description</a></p><p><a href="http://users.aims.ac.za/~marshall/BioinformaticsCourse.html">Bioinformatics Algorithms Course Page</a></p><p><a href="http://www.cybertory.org/downloads/bae/BioinformaticsAlgorithmsExcelDoc.pdf">Bioinformatics Algorithm Demonstrations</a></p><p><a href="http://www.cse.sc.edu/~maxal/csce590b/Lect01-02.pdf">Introduction to Bioinformatics Algorithms Lectures 1-2 by Dr. Max Alekseyev USC, 2009</a></p><p><a href="http://lectures.molgen.mpg.de/online_lectures.html">Online Lectures on Bioinformatics</a></p><p><a href="http://www.ks.uiuc.edu/Training/Tutorials/science/bioinformatics-tutorial/bioinformatics.pdf.bak">Sequence Alignment Algorithms</a></p><p><a href="http://www.avatar.se/molbioinfo2001/seqali-dyn.html">Algorithm for sequence alignment: dynamic programming</a></p><p><a href="http://www.4tphi.net/~awalters/PI/pi.pdf">Network Protocol Analysis using Bioinformatics Algorithms</a></p><p><strong>Bioinformatics Algorithms Links</strong></p><p><strong>Dynamic Programming</strong></p><p>Particularly good sites...</p><p>&bull;<a href="http://www.cis.upenn.edu/~sahuguet/MSA/">http://www.cis.upenn.edu/~sahuguet/MSA/</a><br />&bull;<a href="http://www.blc.arizona.edu/courses/bioinformatics/align.html">http://www.blc.arizona.edu/courses/bioinformatics/align.html</a><br />&bull;<a href="http://www.cs.monash.edu.au/~lloyd/tildeStrings/Notes/DPA.html">http://www.cs.monash.edu.au/~lloyd/tildeStrings/Notes/DPA.html</a><br />&bull;<a href="http://www.cs.orst.edu/~schut/cs325/dynamic.htm">http://www.cs.orst.edu/~schut/cs325/dynamic.htm</a><br />&bull;<a href="http://www.catalase.com/dprog.htm">http://www.catalase.com/dprog.htm</a><br />&bull;<a href="http://bioweb.ncsa.uiuc.edu/~bioph490/BIOPH2.html#SEQUENCE_COMP">http://bioweb.ncsa.uiuc.edu/~bioph490/BIOPH2.html#SEQUENCE_COMP</a><br />&bull;<a href="http://www.qucis.queensu.ca/home/cisc365/javascript/dp1/index.html">http://www.qucis.queensu.ca/home/cisc365/javascript/dp1/index.html</a><br />Other sites...<br />&bull;<a href="http://bioweb.ncsa.uiuc.edu/~bioph490/dynamic_programming_demo.html">http://bioweb.ncsa.uiuc.edu/~bioph490/dynamic_programming_demo.html</a><br />&bull;<a href="http://www.qucis.queensu.ca/home/cisc365/365overheads.html">http://www.qucis.queensu.ca/home/cisc365/365overheads.html</a><br />&bull;<a href="http://www.qucis.queensu.ca/home/cisc365/dp/dp.p01.html">http://www.qucis.queensu.ca/home/cisc365/dp/dp.p01.html</a><br />&bull;<a href="http://www.dgp.toronto.edu/csc270/tut_dp.html">http://www.dgp.toronto.edu/csc270/tut_dp.html</a><br />&bull;<a href="http://queue.ieor.berkeley.edu/~jshu/knapsack/DP/dp.html">http://queue.ieor.berkeley.edu/~jshu/knapsack/DP/dp.html</a><br />&bull;<a href="http://mat.gsia.cmu.edu/classes/dynamic/dynamic.html">http://mat.gsia.cmu.edu/classes/dynamic/dynamic.html</a><br />&bull;<a href="http://www.cs.sandia.gov/~scistra/class_3">http://www.cs.sandia.gov/~scistra/class_3</a><br />&bull;<a href="http://levine.sscnet.ucla.edu/Econ101/dynamic.htm">http://levine.sscnet.ucla.edu/Econ101/dynamic.htm</a><br />&bull;<a href="http://mat.gsia.cmu.edu/classes/stoch_dynamic/stoch_dynamic.html">http://mat.gsia.cmu.edu/classes/stoch_dynamic/stoch_dynamic.html</a><br />&bull;<a href="http://mat.gsia.cmu.edu/classes/dynamic/node8.html">http://mat.gsia.cmu.edu/classes/dynamic/node8.html</a><br />&bull;<a href="http://www.maths.mu.oz.au/~moshe/dp/bibl/bibliography.html">http://www.maths.mu.oz.au/~moshe/dp/bibl/bibliography.html</a><br />&bull;<a href="http://cartan.gmd.de/PAPER/ismb95/ismb_html.html">http://cartan.gmd.de/PAPER/ismb95/ismb_html.html</a><br />&bull;<a href="http://screwdriver.bu.edu/bibliography/dynamic_programming.htm">http://screwdriver.bu.edu/bibliography/dynamic_programming.htm</a><br />&bull;<a href="http://www.norvig.com/design-patterns/">http://www.norvig.com/design-patterns/</a><br />&bull;<a href="http://tome.cbs.univ-montp1.fr/htmltxt/Doc/manual/node137.html">http://tome.cbs.univ-montp1.fr/htmltxt/Doc/manual/node137.html</a><br />&bull;<a href="http://poem.princeton.edu/~verdu/dynamic.html">http://poem.princeton.edu/~verdu/dynamic.html</a><br />&bull;<a href="http://www.orca1.com/opushelpweb/opusDynamic_Programming.html">http://www.orca1.com/opushelpweb/opusDynamic_Programming.html</a><br />&bull;<a href="http://screwdriver.bu.edu/cn760-lectures/l7/index.htm">http://screwdriver.bu.edu/cn760-lectures/l7/index.htm</a><br />&bull;<a href="http://www.ms.unimelb.edu.au/~moshe/dp/dp.html">http://www.ms.unimelb.edu.au/~moshe/dp/dp.html</a><br />&bull;<a href="http://mat.gsia.cmu.edu/ORCS/0255.html">http://mat.gsia.cmu.edu/ORCS/0255.html</a><br />&bull;<a href="http://aae.wisc.edu/e703/notes/a13dynpr.htm">http://aae.wisc.edu/e703/notes/a13dynpr.htm</a><br />&bull;<a href="http://bioweb.pasteur.fr/docs/modeller/node137.html">http://bioweb.pasteur.fr/docs/modeller/node137.html</a><br />&bull;<a href="http://www2.uwindsor.ca/~lama/my470/ddynamic.htm">http://www2.uwindsor.ca/~lama/my470/ddynamic.htm</a><br />&bull;<a href="http://students.ceid.upatras.gr/~papagel/project/ex5_6_1.htm">http://students.ceid.upatras.gr/~papagel/project/ex5_6_1.htm</a><br />&bull;<a href="http://www.cs.sunysb.edu/~algorith/lectures-good/node12.html">http://www.cs.sunysb.edu/~algorith/lectures-good/node12.html</a><br />&bull;<a href="http://www.cs.sunysb.edu/~algorith/lectures-good/node12.html">http://www.cs.sunysb.edu/~algorith/lectures-good/node12.html</a><br />&bull;<a href="http://www.utdallas.edu/~scniu/documents/7315.htm">http://www.utdallas.edu/~scniu/documents/7315.htm</a><br />&bull;<a href="http://www.ii.uib.no/~pinar/seminar/larry.html">http://www.ii.uib.no/~pinar/seminar/larry.html</a><br />&bull;<a href="http://www.deakin.edu.au/~gecole/books.html">http://www.deakin.edu.au/~gecole/books.html</a><br />&bull;<a href="http://www.cseg.engr.uark.edu/~wessels/algs/notes/dynamic.html">http://www.cseg.engr.uark.edu/~wessels/algs/notes/dynamic.html</a><br />&bull;<a href="http://www.csc.liv.ac.uk/~ped/teachadmin/algor/dyprog.html">http://www.csc.liv.ac.uk/~ped/teachadmin/algor/dyprog.html</a><br />&bull;<a href="http://www.eli.sdsu.edu/courses/fall96/cs660/notes/dynamicProg/dynamicProg.html">http://www.eli.sdsu.edu/courses/fall96/cs660/notes/dynamicProg/dynamicProg.html</a><br />&bull;<a href="http://www.cs.indiana.edu/l/www/ftp/techreports/TR514.html">http://www.cs.indiana.edu/l/www/ftp/techreports/TR514.html</a><br />&bull;<a href="http://www.cs.brandeis.edu/~mairson/poems/node3.html">http://www.cs.brandeis.edu/~mairson/poems/node3.html</a><br />&bull;<a href="http://www.cis.tu-graz.ac.at/igi/oaich/animations/Dynamic2.html">http://www.cis.tu-graz.ac.at/igi/oaich/animations/Dynamic2.html</a><br />&bull;<a href="http://bioweb.ncsa.uiuc.edu/~workshop/">http://bioweb.ncsa.uiuc.edu/~workshop/</a></p><p><br />Smith Waterman<br />&bull;<a href="http://genome-www.stanford.edu/Saccharomyces/help/sw_alignment.html">http://genome-www.stanford.edu/Saccharomyces/help/sw_alignment.html</a><br />&bull;<a href="http://genome-www.stanford.edu/Saccharomyces/help/sw_details.html">http://genome-www.stanford.edu/Saccharomyces/help/sw_details.html</a><br />&bull;<a href="http://www.stanford.edu/~sntaylor/bioc218/final.htm">http://www.stanford.edu/~sntaylor/bioc218/final.htm</a><br />&bull;<a href="http://www.maths.tcd.ie/~lily/pres2/sld009.htm">http://www.maths.tcd.ie/~lily/pres2/sld009.htm</a><br />&bull;<a href="http://bioweb.ncsa.uiuc.edu/~workshop/Lab_3/Smith-Waterman.htm">http://bioweb.ncsa.uiuc.edu/~workshop/Lab_3/Smith-Waterman.htm</a><br />&bull;<a href="http://www.tigem.it/LOCAL/SW/threshold.html">http://www.tigem.it/LOCAL/SW/threshold.html</a><br />&bull;<a href="http://sgbcd.weizmann.ac.il/genweb/help/smith-waterman.html">http://sgbcd.weizmann.ac.il/genweb/help/smith-waterman.html</a><br />&bull;<a href="http://cbrg.ethz.ch/ServerBooklet/section2_3_5.html">http://cbrg.ethz.ch/ServerBooklet/section2_3_5.html</a><br />Needleman &amp; Wunsch<br />&bull;<a href="http://www.maths.tcd.ie/~lily/pres2/sld003.htm">http://www.maths.tcd.ie/~lily/pres2/sld003.htm</a><br />&bull;<a href="http://acer.gen.tcd.ie/~amclysag/nwswat.html">http://acer.gen.tcd.ie/~amclysag/nwswat.html</a><br />&bull;<a href="http://www.nada.kth.se/~erikw/thesis/chapter2_3.html">http://www.nada.kth.se/~erikw/thesis/chapter2_3.html</a><br />&bull;<a href="http://www.irbm.it/irbm-course95/gb/docs/amps/subsection3_6_1.html">http://www.irbm.it/irbm-course95/gb/docs/amps/subsection3_6_1.html</a><br />&bull;<a href="http://www.ibc.wustl.edu/~zuker/Bio-5495/align-html/node3.html">http://www.ibc.wustl.edu/~zuker/Bio-5495/align-html/node3.html</a></p><p><strong>General (NW vs. SW vs. HMM, etc.)</strong></p><p>&bull;<a href="http://www.maths.tcd.ie/~lily/pres2/">http://www.maths.tcd.ie/~lily/pres2/</a><br />&bull;<a href="http://acer.gen.tcd.ie/~amclysag/nwswat.html">http://acer.gen.tcd.ie/~amclysag/nwswat.html</a><br />&bull;<a href="http://laguerre.psc.edu/biomed/TUTORIALS/SEQUENCE/MULTIPLE/tutorial.html">http://laguerre.psc.edu/biomed/TUTORIALS/SEQUENCE/MULTIPLE/tutorial.html</a><br />&bull;<a href="http://www.cse.ucsc.edu/research/compbio/">http://www.cse.ucsc.edu/research/compbio/</a></p><p><strong>Hmms</strong></p><p>&bull;<a href="http://www.medmicro.mds.qmw.ac.uk/HMMER/main.html">http://www.medmicro.mds.qmw.ac.uk/HMMER/main.html</a><br />&bull;<a href="http://alfredo.wustl.edu/ismb96/abs/p02.html">http://alfredo.wustl.edu/ismb96/abs/p02.html</a><br />&bull;<a href="http://www.cse.ucsc.edu/research/compbio/html_format_papers/hughkrogh96/cabios.html">http://www.cse.ucsc.edu/research/compbio/html_format_papers/hughkrogh96/cabios.html</a><br />&bull;<a href="http://wwwsyseng.anu.edu.au/~jason/hmmlinks.html">http://wwwsyseng.anu.edu.au/~jason/hmmlinks.html</a><br />&bull;<a href="http://www.breadfan.com/markov.html">http://www.breadfan.com/markov.html</a><br />&bull;<a href="http://cslu.cse.ogi.edu/HLTsurvey/ch1node34.html">http://cslu.cse.ogi.edu/HLTsurvey/ch1node34.html</a><br />&bull;<a href="http://www.ibc.wustl.edu/service/hmmalign/glocal.html">http://www.ibc.wustl.edu/service/hmmalign/glocal.html</a><br />&bull;<a href="http://www.cse.ucsc.edu/research/compbio/html_format_papers/ismb94/node5.html">http://www.cse.ucsc.edu/research/compbio/html_format_papers/ismb94/node5.html</a><br />&bull;<a href="http://www.iscs.nus.edu.sg/~luakt/ic3222/lecture/nlp18new/index.htm">http://www.iscs.nus.edu.sg/~luakt/ic3222/lecture/nlp18new/index.htm</a><br />&bull;<a href="http://www.cse.ucsc.edu/research/compbio/sam.html">http://www.cse.ucsc.edu/research/compbio/sam.html</a>&nbsp;SAM Software for HMMs</p><p><strong>Genetic Algorithms</strong><br /><br />&bull;<a href="http://www.staff.uiuc.edu/~carroll/ga.html">http://www.staff.uiuc.edu/~carroll/ga.html</a><br />&bull;<a href="http://kal-el.ugr.es/gags.html">http://kal-el.ugr.es/gags.html</a><br />&bull;<a href="http://kal-el.ugr.es/~jmerelo/GAJS.html">http://kal-el.ugr.es/~jmerelo/GAJS.html</a><br />&bull;<a href="http://www.genetic-programming.org/">http://www.genetic-programming.org/</a><br />&bull;<a href="http://www.iitk.ac.in/kangal/deb_tut.shtml">http://www.iitk.ac.in/kangal/deb_tut.shtml</a></p>]]></description>
	<dc:creator>Jitendra Narayan</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/44762/stay-connected-and-productive-unlock-the-power-of-screen-tmux-and-mosh-for-bioinformatics</guid>
	<pubDate>Wed, 22 Jan 2025 00:29:52 -0600</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/44762/stay-connected-and-productive-unlock-the-power-of-screen-tmux-and-mosh-for-bioinformatics</link>
	<title><![CDATA[Stay Connected and Productive: Unlock the Power of Screen, Tmux, and Mosh for Bioinformatics]]></title>
	<description><![CDATA[<p>If you are a bioinformatician, chances are you have spent hours running long, complex analyses on remote servers only to lose your session because of an unstable connection. Frustrating, isnt it? Fear not! With tools like <strong>screen</strong>, <strong>tmux</strong>, and <strong>mosh</strong>, you can safeguard your workflow and stay productive, no matter where you are.</p><h4>Why Remote Session Management is a Must-Have</h4><p>In bioinformatics, tasks like genome assembly, RNA-seq analyses, and phylogenetic computations often take hours or days. A dropped SSH connection can result in:</p><ul>
<li><strong>Lost Progress:</strong> Restarting a job from scratch wastes valuable time.</li>
<li><strong>Workflow Interruptions:</strong> Disruptions can derail your focus and productivity.</li>
<li><strong>Corrupted Data:</strong> Interrupted processes may lead to incomplete or corrupted outputs.</li>
</ul><p>By integrating <strong>screen</strong>, <strong>tmux</strong>, or <strong>mosh</strong> into your workflow, you can avoid these setbacks and ensure a seamless experience.</p><h4>Screen: The Classic Workhorse</h4><p><strong>Screen</strong> is a terminal multiplexer that comes pre-installed on most Linux systems. It allows you to manage multiple terminal sessions and reconnect to them even after being disconnected.</p><p><strong>Getting Started with Screen:</strong></p><ol>
<li><strong>Start a Session:</strong>
<div>
<div>
<div>
<div>screen</div>
</div>
</div>
</div>
</li>
<li><strong>Detach from a Session:</strong><br />Press <code>Ctrl+A</code>, then <code>D</code>.</li>
<li><strong>Reattach to a Session:</strong>
<div>
<div>
<div>
<div>screen -r</div>
</div>
</div>
</div>
</li>
</ol><p><strong>Pro Tip:</strong> Enhance your screen experience with a customized <code>.screenrc</code> configuration file. Download one here: <a href="https://lnkd.in/es8vhcEH" target="_new">Get .screenrc</a>.</p><h4>Tmux: A Modern Alternative</h4><p><strong>Tmux</strong> takes everything great about screen and adds modern features, including better key bindings and intuitive session management. It\u2019s perfect for bioinformaticians who want more control over their workflow.</p><p><strong>Getting Started with Tmux:</strong></p><ol>
<li><strong>Start a Session:</strong>
<div>
<div>
<div>
<div>tmux</div>
</div>
</div>
</div>
</li>
<li><strong>Detach from a Session:</strong><br />Press <code>Ctrl+B</code>, then <code>D</code>.</li>
<li><strong>Reattach to a Session:</strong>
<div>
<div>
<div>
<div>tmux attach</div>
</div>
</div>
</div>
</li>
</ol><p><strong>Customize Your Tmux Experience:</strong><br />Use a <code>.tmux.conf</code> file to personalize your setup. Grab one here: <a href="https://lnkd.in/eZZfxmq7" target="_new">Download .tmux.conf</a>.</p><h4>Mosh: The Mobile Shell for Unreliable Connections</h4><p>SSH works well for stable networks, but it struggles in areas with spotty connectivity. Enter <strong>Mosh</strong>, the Mobile Shell. Designed for intermittent networks, Mosh keeps your session alive even when the connection drops temporarily.</p><p><strong>Why Mosh is a Game-Changer:</strong></p><ul>
<li>No lag over high-latency networks.</li>
<li>Automatically reconnects when the network is restored.</li>
<li>Ideal for working on the go, from cafes to trains.</li>
</ul><p><strong>Getting Started with Mosh:</strong></p><ol>
<li><strong>Install Mosh:</strong>
<div>
<div>
<div>
<div>sudo apt install mosh # For Debian/Ubuntu</div>
</div>
</div>
</div>
</li>
<li><strong>Connect to a Server:</strong>
<div>
<div>
<div>
<div>mosh username@server</div>
</div>
</div>
</div>
</li>
</ol><p>Learn more at <a href="https://mosh.org" target="_new">mosh.org</a>.</p><h4>Why This Matters for Bioinformatics</h4><p>Every bioinformatician knows the value of time and data integrity. Tools like screen, tmux, and mosh provide a lifeline when running long analyses, enabling you to:</p><ul>
<li>Safeguard your work against disconnections.</li>
<li>Easily manage multiple workflows in parallel.</li>
<li>Stay productive, even in challenging environments.</li>
</ul><h4>Quickstart Cheat Sheet</h4><ul>
<li>
<p><strong>Screen:</strong></p>
<div>
<div>
<div>
<div>screen # Start a session Ctrl+A, D # Detach screen -r # Reattach</div>
</div>
</div>
</div>
</li>
<li>
<p><strong>Tmux:</strong></p>
<div>
<div>tmux <span># Start a session </span> Ctrl+B, D <span># Detach </span> tmux attach <span># Reattach</span></div>
</div>
</li>
<li>
<p><strong>Mosh:</strong></p>
<div>
<div>mosh username@server</div>
</div>
</li>
</ul><h4>Final Thoughts</h4><p>As a bioinformatician, your time is too valuable to spend restarting analyses due to technical hiccups. With screen, tmux, and mosh in your toolkit, you can work smarter, protect your progress, and stay productive no matter where you are. Start using these tools today and transform the way you work with remote systems.</p><p>Let me know how these tools work for you, and don\u2019t forget to follow for more bioinformatics tips!</p>]]></description>
	<dc:creator>BioStar</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/1515/list-of-pharmacogenomics-companies-in-india</guid>
	<pubDate>Fri, 09 Aug 2013 13:26:56 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/1515/list-of-pharmacogenomics-companies-in-india</link>
	<title><![CDATA[List of pharmacogenomics companies in India]]></title>
	<description><![CDATA[<p>pharmacogenomics companies in India are making their good impacts. Here is the list of few pharmacogenomics companies. Please add more if not mentioned here.</p><p>Genomics in India <br /><a href="http://www.ganitlabs.in/">www.ganitlabs.in</a> <br /><a href="http://www.sandor.co.in/">www.sandor.co.in</a> <br /><a href="http://www.igib.res.in/">www.igib.res.in</a> <br /><a href="http://www.genotypic.co.in/">www.genotypic.co.in</a> <br /><a href="http://www.ocimumbio.com/">www.ocimumbio.com</a> <br /><a href="http://www.abcgenomics.com/">www.abcgenomics.com</a> <br /><a href="http://www.xcelrisgenomics.com/">www.xcelrisgenomics.com</a> <br /><a href="http://www.ayugen.com/">www.ayugen.com</a> <br /><a href="http://www.geneombiotech.com/">www.geneombiotech.com</a></p>]]></description>
	<dc:creator>Jitendra Narayan</dc:creator>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/researchlabs/view/4210/uni-computing-bergen-norway</guid>
  <pubDate>Tue, 03 Sep 2013 18:40:50 -0500</pubDate>
  <link></link>
  <title><![CDATA[Uni Computing Bergen Norway]]></title>
  <description><![CDATA[
<p>Info on Uni Computing (Webpage: http://www.bccs.uni.no/) :</p>

<p>Uni Computing (formerly Uni BCCS) is a department of Uni Research, affiliated with the University of Bergen.</p>

<p>5 groups in this lab works on computational resources, methods, algorithms, and software.</p>

<p>Following two bioinformatics groups are:</p>

<p>The Computational Biology Unit (CBU) provides education and research in bioinformatics focused on functional genomics.</p>

<p>The Computational Ecology Unit (CEU) is basically deal with population fluctuations, behavioural patterns and the ways life cycles emerge.</p>
]]></description>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/researchlabs/view/2001/the-ontario-institute-for-cancer-research-oicr-genomics-lab-toronto-canada</guid>
  <pubDate>Mon, 12 Aug 2013 01:43:13 -0500</pubDate>
  <link></link>
  <title><![CDATA[The Ontario Institute for Cancer Research (OICR) Genomics Lab , Toronto, Canada.]]></title>
  <description><![CDATA[
<p>The Human Genome Project led to the development of a wide array of technologies to screen the genome and its products (genes, proteins, metabolites) and molecules that interact with these products (chemicals, RNAi). The existence of these tools resulted in the creation of facilities that use robotics and informatics to generate high-throughput screens of DNA, RNA, protein, tissue, chemicals and other substances.</p>

<p>The genomics platform uses cancer genome sequencing and other high-throughput techniques to identify genes critical to the development of cancer and anomalies in the genomic profile of the tumours.</p>

<p>For more info visit : http://oicr.on.ca/</p>
]]></description>
</item>

</channel>
</rss>