<?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/38053?offset=270</link>
	<atom:link href="https://bioinformaticsonline.com/related/38053?offset=270" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/44713/understanding-rna-seq-normalization-methods-tpm-vs-fpkm-vs-cpm</guid>
	<pubDate>Wed, 11 Dec 2024 00:59:15 -0600</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/44713/understanding-rna-seq-normalization-methods-tpm-vs-fpkm-vs-cpm</link>
	<title><![CDATA[Understanding RNA-Seq Normalization Methods: TPM vs. FPKM vs. CPM]]></title>
	<description><![CDATA[<p>RNA sequencing (RNA-Seq) is a powerful technology used to study transcriptomes, providing insights into gene expression levels. However, raw RNA-Seq data requires normalization to account for sequencing depth and gene length, enabling accurate comparisons between genes and samples. Among the most widely used normalization methods are TPM (Transcripts Per Million), FPKM (Fragments Per Kilobase Million), and CPM (Counts Per Million). Each method has its unique principles and applications, which we&rsquo;ll explore in this blog.</p><h2>Why Normalize RNA-Seq Data?</h2><p>Normalization is a crucial step in RNA-Seq analysis for the following reasons:</p><ul>
<li>
<p><strong>Sequencing depth:</strong> Different RNA-Seq experiments produce varying numbers of reads, making direct comparisons between samples misleading.</p>
</li>
<li>
<p><strong>Gene length:</strong> Longer genes inherently generate more reads, irrespective of their actual expression level.</p>
</li>
<li>
<p><strong>Bias reduction:</strong> Normalization mitigates technical biases, enabling meaningful biological interpretation.</p>
</li>
</ul><h2>TPM (Transcripts Per Million)</h2><p>TPM measures the proportion of reads mapped to a transcript, normalized by transcript length and sequencing depth. It is calculated as:</p><h3>Key Features:</h3><ol>
<li>
<p><strong>Proportionality:</strong> TPM values sum to 1,000,000 across all transcripts in a sample, making it easier to compare between samples.</p>
</li>
<li>
<p><strong>Intuitive interpretation:</strong> TPM values directly represent the abundance of transcripts in a sample.</p>
</li>
<li>
<p><strong>Preferred for comparisons:</strong> TPM facilitates between-sample comparisons better than FPKM.</p>
</li>
</ol><h2>FPKM (Fragments Per Kilobase Million)</h2><p>FPKM normalizes read counts by transcript length and sequencing depth, but without enforcing proportionality like TPM. It is defined as:</p><h3>Key Features:</h3><ol>
<li>
<p><strong>Historical significance:</strong> FPKM was one of the first normalization methods used for RNA-Seq.</p>
</li>
<li>
<p><strong>Single-end vs. paired-end:</strong> In paired-end sequencing, FPKM becomes RPKM (Reads Per Kilobase Million).</p>
</li>
<li>
<p><strong>Limited utility:</strong> FPKM values are not as robust as TPM for cross-sample comparisons due to lack of proportionality.</p>
</li>
</ol><h2>CPM (Counts Per Million)</h2><p>CPM normalizes raw read counts by sequencing depth, without considering gene length. It is expressed as:</p><h3>Key Features:</h3><ol>
<li>
<p><strong>Simplicity:</strong> CPM is straightforward and computationally less intensive.</p>
</li>
<li>
<p><strong>Application:</strong> Suitable for non-length-dependent analyses, such as comparing total expression levels or differential expression analysis.</p>
</li>
<li>
<p><strong>Gene length agnostic:</strong> CPM does not correct for gene length, making it less ideal for measuring expression levels.</p>
</li>
</ol><h2>When to Use Each Method</h2><ul>
<li>
<p><strong>TPM:</strong> Best for comparing expression levels between samples, especially when transcript length and sequencing depth vary.</p>
</li>
<li>
<p><strong>FPKM:</strong> Useful for historical consistency but generally replaced by TPM.</p>
</li>
<li>
<p><strong>CPM:</strong> Ideal for differential expression analysis when gene length normalization is unnecessary.</p>
</li>
</ul><h2>Conclusion</h2><p>Choosing the right normalization method depends on the specific objectives of your RNA-Seq analysis. TPM&rsquo;s proportionality and robustness make it the preferred choice for most applications, while CPM serves well for differential expression studies. Although FPKM paved the way for RNA-Seq normalization, it has largely been supplanted by TPM in modern workflows. Understanding these methods and their nuances ensures accurate and meaningful interpretations of RNA-Seq data.</p><h3>References:</h3><ol>
<li>
<p>Li, B., &amp; Dewey, C. N. (2011). RSEM: accurate transcript quantification from RNA-Seq data with or without a reference genome. <em>BMC Bioinformatics.</em></p>
</li>
<li>
<p>Trapnell, C., et al. (2010). Transcript assembly and quantification by RNA-Seq reveals unannotated transcripts and isoform switching during cell differentiation. <em>Nature Biotechnology.</em></p>
</li>
<li>
<p>Law, C. W., et al. (2014). voom: precision weights unlock linear model analysis tools for RNA-seq read counts. <em>Genome Biology.</em></p>
</li>
</ol>]]></description>
	<dc:creator>Neel</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/news/view/8848/upgrade-r-303</guid>
	<pubDate>Mon, 10 Mar 2014 11:23:51 -0500</pubDate>
	<link>https://bioinformaticsonline.com/news/view/8848/upgrade-r-303</link>
	<title><![CDATA[Upgrade R 3.0.3]]></title>
	<description><![CDATA[<p>R is a free software programming language and software environment for statistical computing and graphics. The R language is widely used among statisticians and data miners for developing statistical software and data analysis. Polls and surveys of data miners are showing R's popularity has increased substantially in recent years. Recently the new version of R codename &ldquo;Warm Puppy" have been released.<br /><br />You can download the latest version from here http://cran.rstudio.com/ . Or, if you are using Windows, you can upgrade to the latest version using the installr package http://cran.r-project.org/web/packages/installr/ . Simply run the following code:<br /><br /># installing/loading the package:<br />if(!require(installr)) { <br />install.packages("installr"); require(installr)} #load / install+load installr<br />&nbsp;<br />updateR()<br /><br />I try to keep the installr package updated and useful. If you have any suggestions or remarks on the package, you&rsquo;re invited to leave a comment below.<br /><br />If you use the global library system http://www.r-statistics.com/2010/04/changing-your-r-upgrading-strategy-and-the-r-code-to-do-it-on-windows/ , you can run the following in the new version of R:<br /><br />source("http://www.r-statistics.com/wp-content/uploads/2010/04/upgrading-R-on-windows.r.txt")<br />New.R.RunMe()</p><p>Reference:</p><p>http://www.r-statistics.com/2014/03/r-3-0-3-is-released/</p>]]></description>
	<dc:creator>Rahul Nayak</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/42987/public-databases-for-bioinformatics</guid>
	<pubDate>Tue, 23 Mar 2021 05:32:15 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/42987/public-databases-for-bioinformatics</link>
	<title><![CDATA[Public Databases for Bioinformatics !]]></title>
	<description><![CDATA[<pre>https://www.nature.com/articles/s41467-020-17155-y<br><br>Server Infrastructure:

File Server:

dhara: Synology 3614 Storage Appliance
4 Core Xeon
108TB disk storage
10Gb ethernet to SCG3
Access atx: dhara:5000
Has btsync server (try it - its much better than dropbox)

Compute Servers:

nandi: Kundaje and Phi Server
24 intel cores
256GB RAM
500GB of SSD storage 
36TB RAID6 local storage
4 Intel Phi's (space for 4 more GPU's)


durga: Montgomery and sensitive data
24 intel cores
256GB RAM
500GB of SSD RAID0 storage 
60TB RAID6 local storage

mitra: Bassik and Web/DB Server
24 core
256GB RAM 
500GB of SSD RAID0 storage 
36TB RAID6 local storage

vayu: Kundaje GPU server
4 core
64GB RAM 
200GB of SSD storage 
8TB RAID10 local storage
4 Nvidia GTX 970 4GB GPUs

amold: Bickel and SGE server
32 AMD core
128GB RAM 
200GB of SSD storage 
12TB RAID5 local storage

wotan: Bickel and SGE server
64 AMD core
256GB RAM 
200GB of SSD storage 
12TB RAID5 local storage

Filesystem:

/users/$USER
default home directory
full backups nightly 
nfs mount to dhara
should store code, papers, and other highly processed data here

/mnt/data/
globally accessible data
should store common data here
e.g. genomes and indexes, annotations, ENCODE data  
if you dont want this to count towards your quote you must chown

/mnt/lab_data/$LAB/
lab accessible data
should store lab project data here 
e.g. ATAC-seq prediction data, enhancer prediction, motif calls

/srv/scratch/$USER
fast local storage
not backed up, but on raid and data will never be deleted
most analysis should be performed here

/srv/persistent/$USER
fast local storage
synced nightly, but not backed up
       ie if the hard drives fail or you delete something and notice 
       within 24 hours we can recover. Otherwise not. (vs home which is 
       properly backed up )  
intermediate analysis products that would be hard to recover should be stored here 
       e.g. stochastic analysis results that need to be kept so that paper 
       results can be reproduced

/srv/www/$LABNAME/
web accessible from mitra.stanford.edu
*NOT BACKED UP*

Some parallel programming patterns:

# gzip a bunch of files
parallel gzip -- *.FILESTOGZIP

# fork example in python:
(for more detailed examples look at 
 https://github.com/nboley/grit/ grit/lib/multiprocessing_utils.py)

import os
import time
import random

import multiprocessing

class ProcessSafeOPStream( object ):
    def __init__( self, writeable_obj ):
        self.writeable_obj = writeable_obj
        self.lock = multiprocessing.Lock()
        self.name = self.writeable_obj.name
        return
    
    def write( self, data ):
        self.lock.acquire()
        self.writeable_obj.write( data )
        self.writeable_obj.flush()
        self.lock.release()
        return
    
    def close( self ):
        self.writeable_obj.close()

def worker(queue, ofp):
    # Try without this
    random.seed()
    while True:
        i = queue.get()
        if i == 'FINISHED': return
        # simulate an expensive function
        x = random.random()
        time.sleep(x/10)
        print i, x
        ofp.write("%i\t%s\n" % (i, x))

NSIMS = 10000
NPROC = 25

# populate queue
todo = multiprocessing.Queue()
for i in xrange(NSIMS): todo.put(i)
for i in xrange(NPROC): todo.put('FINISHED')

ofp = ProcessSafeOPStream( open("output.txt", "w") )

pids = []
for i in xrange(NPROC):
    pid = os.fork()
    if pid == 0:
       worker(todo, ofp)
       os._exit(0)
    else:
       pids.append(pid)  

for pid in pids:
    os.waitpid(pid, 0)

ofp.close()

print "FINISHED"<br><br></pre>
<p>For use case 1 we obtained the following ENCODE and ROADMAP datasets&nbsp;<a href="https://www.encodeproject.org/files/ENCFF446WOD/@@download/ENCFF446WOD.bed.gz">https://www.encodeproject.org/files/ENCFF446WOD/@@download/ENCFF446WOD.bed.gz</a>,&nbsp;<a href="https://www.encodeproject.org/files/ENCFF546PJU/@@download/ENCFF546PJU.bam">https://www.encodeproject.org/files/ENCFF546PJU/@@download/ENCFF546PJU.bam</a>,&nbsp;<a href="https://www.encodeproject.org/files/ENCFF059BEU/@@download/ENCFF059BEU.bam">https://www.encodeproject.org/files/ENCFF059BEU/@@download/ENCFF059BEU.bam</a>. Blacklisted regions were obtained from&nbsp;<a href="http://mitra.stanford.edu/kundaje/akundaje/release/blacklists/hg38-human/hg38.blacklist.bed.gz">http://mitra.stanford.edu/kundaje/akundaje/release/blacklists/hg38-human/hg38.blacklist.bed.gz</a>. The human genome version hg38 was obtained from&nbsp;<a href="http://hgdownload.cse.ucsc.edu/goldenPath/hg38/bigZips/hg38.fa.gz">http://hgdownload.cse.ucsc.edu/goldenPath/hg38/bigZips/hg38.fa.gz</a>.</p>
<p>For use case 2 we used the set of narrowPeak files summarized in&nbsp;<a href="https://github.com/wkopp/janggu_usecases/tree/master/extra/urls.txt">https://github.com/wkopp/janggu_usecases/tree/master/extra/urls.txt</a>&nbsp;(archived version v1.0.1). The human genome version hg19 was obtained from&nbsp;<a href="http://hgdownload.cse.ucsc.edu/goldenPath/hg19/bigZips/hg19.fa.gz">http://hgdownload.cse.ucsc.edu/goldenPath/hg19/bigZips/hg19.fa.gz</a></p>
<p>For use case 3 we used the ENCODE datasets&nbsp;<a href="https://www.encodeproject.org/files/ENCFF591XCX/@@download/ENCFF591XCX.bam">https://www.encodeproject.org/files/ENCFF591XCX/@@download/ENCFF591XCX.bam</a>,&nbsp;<a href="https://www.encodeproject.org/files/ENCFF736LHE/@@download/ENCFF736LHE.bigWig">https://www.encodeproject.org/files/ENCFF736LHE/@@download/ENCFF736LHE.bigWig</a>,&nbsp;<a href="https://www.encodeproject.org/files/ENCFF177HHM/@@download/ENCFF177HHM.bam">https://www.encodeproject.org/files/ENCFF177HHM/@@download/ENCFF177HHM.bam</a>&nbsp;as we as the GENCODE annotation v29 from&nbsp;<a href="ftp://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_29/gencode.v29.annotation.gtf.gz">ftp://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_29/gencode.v29.annotation.gtf.gz</a>.</p><p>Address of the bookmark: <a href="http://mitra.stanford.edu/" rel="nofollow">http://mitra.stanford.edu/</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/34482/ribbon-visualizing-complex-genome-alignments-and-structural-variation</guid>
	<pubDate>Wed, 29 Nov 2017 07:40:22 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/34482/ribbon-visualizing-complex-genome-alignments-and-structural-variation</link>
	<title><![CDATA[Ribbon: Visualizing complex genome alignments and structural variation:]]></title>
	<description><![CDATA[<p>Ribbon can be used for long reads, short reads, paired-end reads, and assembly/genome alignments. Instructions for each data format are available by clicking on "instructions" in each tab on the right.</p>
<p>Local installation:</p>
<p>You can install Ribbon locally from Github by following the instructions here:&nbsp;<a href="https://github.com/MariaNattestad/ribbon" target="_blank">https://github.com/MariaNattestad/Ribbon</a></p><p>Address of the bookmark: <a href="http://genomeribbon.com/" rel="nofollow">http://genomeribbon.com/</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/34567/jobtree-based-python-wrapper-to-run-the-genome-simulation-tool-suite-evolver</guid>
	<pubDate>Fri, 08 Dec 2017 16:26:32 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/34567/jobtree-based-python-wrapper-to-run-the-genome-simulation-tool-suite-evolver</link>
	<title><![CDATA[jobTree based python wrapper to run the genome simulation tool suite Evolver]]></title>
	<description><![CDATA[<p><span>evolverSimControl</span><span>&nbsp;(</span><span>eSC</span><span>) can be used to simulate multi-chromosome genome evolution on an arbitrary phylogeny (</span><a href="http://evolution.genetics.washington.edu/phylip/newicktree.html">Newick format</a><span>). In addition to simply running evolver,&nbsp;</span><span>eSC</span><span>&nbsp;also automatically creates statistical summaries of the simulation as it runs including text and image files. Also included are convenience scripts to: check on a running simulation and see detailed status and logging information; extract fasta sequence files from the leaf nodes of a completed simulation; extract pairwise multiple alignment files (</span><a href="http://genome.ucsc.edu/FAQ/FAQformat.html#format5">.maf</a><span>) from leaf and branch nodes from a completed simulation and with the help of&nbsp;</span><a href="https://github.com/dentearl/mafTools/">mafJoin</a><span>, join them together into a single maf covering the entire simulation.</span></p><p>Address of the bookmark: <a href="https://github.com/dentearl/evolverSimControl" rel="nofollow">https://github.com/dentearl/evolverSimControl</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/34620/mash-fast-genome-and-metagenome-distance-estimation-using-minhash</guid>
	<pubDate>Tue, 12 Dec 2017 17:30:12 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/34620/mash-fast-genome-and-metagenome-distance-estimation-using-minhash</link>
	<title><![CDATA[Mash: fast genome and metagenome distance estimation using MinHash]]></title>
	<description><![CDATA[<p>Mash is normally distributed as a dependency-free binary for Linux or OSX (see&nbsp;<a href="https://github.com/marbl/Mash/releases">https://github.com/marbl/Mash/releases</a>). This source distribution is intended for other operating systems or for development. Mash requires c++11 to build, which is available in and GCC &gt;= 4.8 and OSX &gt;= 10.7.</p>
<p>See&nbsp;<a href="http://mash.readthedocs.org/">http://mash.readthedocs.org</a>&nbsp;for more information.</p><p>Address of the bookmark: <a href="https://github.com/marbl/Mash/releases" rel="nofollow">https://github.com/marbl/Mash/releases</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/35131/giggle-a-search-engine-for-large-scale-integrated-genome-analysis</guid>
	<pubDate>Wed, 10 Jan 2018 03:10:45 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/35131/giggle-a-search-engine-for-large-scale-integrated-genome-analysis</link>
	<title><![CDATA[GIGGLE: a search engine for large-scale integrated genome analysis]]></title>
	<description><![CDATA[<p><span>GIGGLE is a genomics search engine that identifies and ranks the significance of genomic loci shared between query features and thousands of genome interval files. GIGGLE (</span><a href="https://github.com/ryanlayer/giggle">https://github.com/ryanlayer/giggle</a><span>) scales to billions of intervals and is over three orders of magnitude faster than existing methods. Its speed extends the accessibility and utility of resources such as ENCODE, Roadmap Epigenomics, and GTEx by facilitating data integration and hypothesis generation.</span></p>
<p>https://www.nature.com/articles/nmeth.4556</p><p>Address of the bookmark: <a href="https://github.com/ryanlayer/giggle" rel="nofollow">https://github.com/ryanlayer/giggle</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/35432/mummer4-a-fast-and-versatile-genome-alignment-system</guid>
	<pubDate>Sat, 03 Feb 2018 04:59:17 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/35432/mummer4-a-fast-and-versatile-genome-alignment-system</link>
	<title><![CDATA[MUMmer4: A fast and versatile genome alignment system]]></title>
	<description><![CDATA[<p><span>MUMmer4, a substantially improved version of MUMmer that addresses genome size constraints by changing the 32-bit suffix tree data structure at the core of MUMmer to a 48-bit suffix array, and that offers improved speed through parallel processing of input query sequences. With a theoretical limit on the input size of 141Tbp, MUMmer4 can now work with input sequences of any biologically realistic length. We show that as a result of these enhancements, the&nbsp;</span><span>nucmer</span><span>&nbsp;program in MUMmer4 is easily able to handle alignments of large genomes;&nbsp;</span></p><p>Address of the bookmark: <a href="https://mummer4.github.io/" rel="nofollow">https://mummer4.github.io/</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/36218/g-compass-a-comparative-genome-browser</guid>
	<pubDate>Thu, 12 Apr 2018 10:00:27 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/36218/g-compass-a-comparative-genome-browser</link>
	<title><![CDATA[G-compass: a comparative genome browser]]></title>
	<description><![CDATA[<p><span>G-compass (</span><a href="http://www.h-invitational.jp/g-compass/" target="_top">http://www.h-invitational.jp/g-compass/</a><span>) is a comparative genome browser. It visualizes evolutionarily conserved genomic regions between human and other 12 vertebrates based on original genome alignments pursuing higher coverage (1,2). Annotations of human genes/transcripts and their ortholog information were derived from&nbsp;</span><a href="http://www.h-invitational.jp/hinv/ahg-db/index.jsp" target="_top">H-InvDB</a><span>&nbsp;and its subdatabase&nbsp;</span><a href="http://www.h-invitational.jp/evola/" target="_top">Evola</a><span>, respectively. G-compass is available for free of charge. [&nbsp;</span><a href="http://www.h-invitational.jp/g-compass/cgi-bin/gc_main.cgi?species_1=Hg18&amp;species_2=pt2&amp;strand_1=%2B&amp;strand_2=%2B&amp;from_win=main&amp;gen_str=2&amp;chr_1=01&amp;chr_2=01&amp;st_1=103804298&amp;ed_1=104204297&amp;st_2=105235351&amp;ed_2=105635350" target="_top">Sample</a><span>&nbsp;]</span></p><p>Address of the bookmark: <a href="http://www.h-invitational.jp/g-compass/" rel="nofollow">http://www.h-invitational.jp/g-compass/</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/36635/circlator-automated-circularization-of-genome-assemblies-using-long-sequencing-reads</guid>
	<pubDate>Tue, 15 May 2018 09:42:32 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/36635/circlator-automated-circularization-of-genome-assemblies-using-long-sequencing-reads</link>
	<title><![CDATA[Circlator: automated circularization of genome assemblies using long sequencing reads]]></title>
	<description><![CDATA[A tool to circularize genome assemblies. The algorithm and benchmarks are described in the Genome Biology manuscript. 

Citation: "Circlator: automated circularization of genome assemblies using long sequencing reads", Hunt et al, Genome Biology 2015 Dec 29;16(1):294. doi: 10.1186/s13059-015-0849-0. PMID: 26714481.<p>Address of the bookmark: <a href="http://sanger-pathogens.github.io/circlator/" rel="nofollow">http://sanger-pathogens.github.io/circlator/</a></p>]]></description>
	<dc:creator>Poonam Mahapatra</dc:creator>
</item>

</channel>
</rss>