<?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/40703?offset=80</link>
	<atom:link href="https://bioinformaticsonline.com/related/40703?offset=80" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/33482/tardis-toolkit-for-automated-and-rapid-discovery-of-structural-variants</guid>
	<pubDate>Fri, 09 Jun 2017 04:43:31 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/33482/tardis-toolkit-for-automated-and-rapid-discovery-of-structural-variants</link>
	<title><![CDATA[TARDIS: Toolkit for automated and rapid discovery of structural variants]]></title>
	<description><![CDATA[<p>tardis</p>
<p>Toolkit for Automated and Rapid DIscovery of Structural variants</p>
<p>Requirements</p>
<p>zlib (http://www.zlib.net)<br>mrfast (https://github.com/BilkentCompGen/mrfast)<br>htslib (included as submodule; http://htslib.org/)<br>Fetching tardis</p>
<p>git clone https://github.com/BilkentCompGen/tardis.git --recursive</p>
<p>&nbsp;</p>
<p>https://github.com/BilkentCompGen/tardis</p><p>Address of the bookmark: <a href="https://github.com/BilkentCompGen/tardis" rel="nofollow">https://github.com/BilkentCompGen/tardis</a></p>]]></description>
	<dc:creator>Neel</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/38752/hgtector-an-automated-method-facilitating-genome-wide-discovery-of-putative-horizontal-gene-transfers</guid>
	<pubDate>Mon, 21 Jan 2019 06:50:05 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/38752/hgtector-an-automated-method-facilitating-genome-wide-discovery-of-putative-horizontal-gene-transfers</link>
	<title><![CDATA[HGTector: an automated method facilitating genome-wide discovery of putative horizontal gene transfers]]></title>
	<description><![CDATA[<p>A computational pipeline for genome-wide detection of putative horizontal gene transfer (HGT) events based on sequence homology search hit distribution statistics</p>
<p>Authors: Qiyun Zhu (<a href="mailto:qiyunzhu@gmail.com">qiyunzhu@gmail.com</a>), Katharina Dittmar (<a href="mailto:katharinad@gmail.com">katharinad@gmail.com</a>)</p>
<p>Affiliation: Department of Biological Sciences, University at Buffalo, State University of New York, Buffalo, USA</p>
<p>Zhu Q, Kosoy M, Dittmar K. HGTector: an automated method facilitating genome-wide discovery of putative horizontal gene transfers.&nbsp;<em style="font-size: 12.8px;">BMC Genomics</em>. 2014. 15:717.</p>
<p>Usage: Simply execute&nbsp;<span style="font-size: 12.8px;">perl HGTector.pl</span>, or, open&nbsp;<span style="font-size: 12.8px;">GUI.html</span>&nbsp;in a web browser to see a step-by-step wizard.</p>
<p>Download&nbsp;<a href="https://github.com/DittmarLab/HGTector/archive/0.2.2.zip">HGTector 0.2.2</a>.</p><p>Address of the bookmark: <a href="https://github.com/DittmarLab/HGTector" rel="nofollow">https://github.com/DittmarLab/HGTector</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/29583/graph-genome-suite</guid>
	<pubDate>Fri, 28 Oct 2016 07:59:54 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/29583/graph-genome-suite</link>
	<title><![CDATA[Graph Genome Suite]]></title>
	<description><![CDATA[<p><span>Seven Bridges is the biomedical data analysis company accelerating breakthroughs in genomics research for cancer, drug development and precision medicine. We build self-improving systems to analyze millions of genomes, including the&nbsp;</span><strong>Graph Genome Suite</strong><span>&nbsp;&mdash; the most advanced population genomics tools in the world.</span></p><p>Address of the bookmark: <a href="https://www.sbgenomics.com/graph/" rel="nofollow">https://www.sbgenomics.com/graph/</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/34925/rectangle-graph-for-repeat-resolution-in-genome-assembly</guid>
	<pubDate>Thu, 28 Dec 2017 09:43:03 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/34925/rectangle-graph-for-repeat-resolution-in-genome-assembly</link>
	<title><![CDATA[Rectangle Graph for Repeat Resolution in Genome Assembly]]></title>
	<description><![CDATA[<p>Ultimate tool for resolving repeats in genome assemblies.</p>
<p>Though the specific implementation of the idea of the rectangle graph approach is already included into the&nbsp;<a href="http://bioinf.spbau.ru/spades">current SPAdes distribution</a>, we're also releasing the Rectangle Graph Module (RGM) as the separate code which can be run independently of SPAdes. Although RGM differs from the current implementation of the rectangle graph approach in SPAdes, in the future we plan to integrate RGM in SPAdes. RGM can be run with other genome assemblers if they use the graph format as SPAdes files.</p>
<p>For more details see: Nikolay Vyahhi, Son K. Pham, Pavel Pevzner.&nbsp;<a href="http://www.springerlink.com/content/e617788h25u36440/">From de Bruijn Graphs to Rectangle Graphs for Genome Assembly</a>,&nbsp;<em>Lecture Notes in Bioinformatics</em>&nbsp;7534 (2012), pp. 249-261.</p><p>Address of the bookmark: <a href="http://bioinf.spbau.ru/en/rectangles" rel="nofollow">http://bioinf.spbau.ru/en/rectangles</a></p>]]></description>
	<dc:creator>Rahul Nayak</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/44445/ppanggolin-depicting-microbial-species-diversity-via-a-partitioned-pangenome-graph-of-linked-neighbors</guid>
	<pubDate>Thu, 01 Feb 2024 00:24:32 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/44445/ppanggolin-depicting-microbial-species-diversity-via-a-partitioned-pangenome-graph-of-linked-neighbors</link>
	<title><![CDATA[PPanGGOLiN: Depicting microbial species diversity via a Partitioned PanGenome Graph Of Linked Neighbors]]></title>
	<description><![CDATA[<p dir="auto"><span>PPanGGOLiN</span>&nbsp;(<a href="https://doi.org/10.1371/journal.pcbi.1007732">Gautreau et al. 2020</a>) is a software suite used to create and manipulate prokaryotic pangenomes from a set of either genomic DNA sequences or provided genome annotations. It is designed to scale up to tens of thousands of genomes. It has the specificity to partition the pangenome using a statistical approach rather than using fixed thresholds which gives it the ability to work with low-quality data such as&nbsp;<em>Metagenomic Assembled Genomes (MAGs)</em>&nbsp;or&nbsp;<em>Single-cell Amplified Genomes (SAGs)</em>&nbsp;thus taking advantage of large scale environmental studies and letting users study the pangenome of uncultivable species.</p>
<p dir="auto">A complete documentation is available&nbsp;<a href="https://ppanggolin.readthedocs.io/">here</a>.</p>
<p dir="auto" style="text-align: center;"><a href="https://github.com/labgem/PPanGGOLiN/blob/master/docs/_static/logo.png" target="_blank"><img src="https://github.com/labgem/PPanGGOLiN/raw/master/docs/_static/logo.png" alt="logo" style="border: 0px;"></a></p><p>Address of the bookmark: <a href="https://github.com/labgem/PPanGGOLiN" rel="nofollow">https://github.com/labgem/PPanGGOLiN</a></p>]]></description>
	<dc:creator>LEGE</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/38212/megahit-an-ultra-fast-single-node-solution-for-large-and-complex-metagenomics-assembly-via-succinct-de-bruijn-graph</guid>
	<pubDate>Wed, 14 Nov 2018 04:50:27 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/38212/megahit-an-ultra-fast-single-node-solution-for-large-and-complex-metagenomics-assembly-via-succinct-de-bruijn-graph</link>
	<title><![CDATA[MEGAHIT: an ultra-fast single-node solution for large and complex metagenomics assembly via succinct de Bruijn graph]]></title>
	<description><![CDATA[<p><span>MEGAHIT is a single node assembler for large and complex metagenomics NGS reads, such as soil. It makes use of succinct&nbsp;</span><em>de Bruijn</em><span>&nbsp;graph (SdBG) to achieve low memory assembly. MEGAHIT can&nbsp;</span><span>optionally</span><span>&nbsp;utilize a CUDA-enabled GPU to accelerate its SdBG contstruction. The GPU-accelerated version of MEGAHIT has been tested on NVIDIA GTX680 (4G memory) and Tesla K40c (12G memory) with CUDA 5.5, 6.0 and 6.5. MEGAHIT v1.0 or greater also supports IBM Power PC and has been tested on IBM POWER8.</span></p>
<p><span>https://academic.oup.com/bioinformatics/article/31/10/1674/177884</span></p><p>Address of the bookmark: <a href="https://github.com/voutcn/megahit" rel="nofollow">https://github.com/voutcn/megahit</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/42806/graphunzip-phases-an-assembly-graph-using-hi-c-data-andor-long-reads</guid>
	<pubDate>Fri, 05 Feb 2021 21:22:24 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/42806/graphunzip-phases-an-assembly-graph-using-hi-c-data-andor-long-reads</link>
	<title><![CDATA[GraphUnzip: Phases an assembly graph using Hi-C data and/or long reads.]]></title>
	<description><![CDATA[<p>GraphUnzip, a fast, memory-efficient and accurate tool to unzip assembly graphs into their constituent haplotypes using long reads and/or Hi-C data. As GraphUnzip only connects sequences in the assembly graph that already had a potential link based on overlaps, it yields high-quality gap-less supercontigs. To demonstrate the efficiency of GraphUnzip, we tested it on a simulated diploid Escherichia coli genome, and on two real datasets for the genomes of the rotifer Adineta vaga and the potato Solanum tuberosum. In all cases, GraphUnzip yielded highly continuous phased assemblies.</p>
<p>https://www.biorxiv.org/content/biorxiv/early/2021/02/01/2021.01.29.428779.full.pdf</p><p>Address of the bookmark: <a href="https://github.com/nadegeguiglielmoni/GraphUnzip" rel="nofollow">https://github.com/nadegeguiglielmoni/GraphUnzip</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/44497/graphpath-a-graph-attention-model-for-molecular-stratification-with-interpretability-based-on-the-pathway-pathway-interaction-network</guid>
	<pubDate>Wed, 27 Mar 2024 20:51:21 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/44497/graphpath-a-graph-attention-model-for-molecular-stratification-with-interpretability-based-on-the-pathway-pathway-interaction-network</link>
	<title><![CDATA[GraphPath: A graph attention model for molecular stratification with interpretability based on the pathway-pathway interaction network]]></title>
	<description><![CDATA[<p><span>Achieving accurate and interpretable clinical predictions requires paramount attention to thoroughly characterizing patients at both the molecular and biological pathway levels. In this paper, we present GraphPath, a biological knowledge-driven graph neural network with multi-head self-attention mechanism that implements the pathway-pathway interaction network. We train GraphPath to classify the cancer status of patients with prostate cancer based on their multi-omics profiling.</span></p>
<p><span><img src="https://github.com/amazingma/GraphPath/raw/main/Figures/GraphPath.png" alt="image" style="border: 0px;"></span></p><p>Address of the bookmark: <a href="https://github.com/amazingma/GraphPath" rel="nofollow">https://github.com/amazingma/GraphPath</a></p>]]></description>
	<dc:creator>LEGE</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/37590/parallel-processing-with-perl</guid>
	<pubDate>Sat, 25 Aug 2018 11:32:40 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/37590/parallel-processing-with-perl</link>
	<title><![CDATA[Parallel Processing with Perl !]]></title>
	<description><![CDATA[<p>Here is a small tutorial on how to make best use of multiple processors for bioinformatics analysis. One best way is using perl threads and forks. Knowing how these threads and forks work is very important before implementing them. Getting to know how these work would be really useful before reading this tutorial.</p><p>Many times in bioinformatics we need to deal with huge datasets which&nbsp; are more than 100GB size. The traditional way to analysis a file is using the while loop</p><p>while (FILE){</p><p>Do something;</p><p>}</p><p>This is very slow(since we are using only one processor) and if we have 500 million lines in the dataset it takes more than a day to iterate through the whole dataset. So how do we make best use of all our processors and get the work done quickly?</p><p>Here is a very simple and efficient technique with perl which i have been using. I am&nbsp; more inclined towards using perl fork than perl threads.</p><p>One of the oldest way to fork is</p><blockquote><p>my $fork = fork();<br />if($fork){&nbsp;&nbsp;&nbsp;<br />push (@childs,$fork);&nbsp;<br />}<br />elseif($fork==0){<br /><strong>your code here;</strong><br />exit(0);<br />}<br />else{die &ldquo;Couldnt fork : $!&rdquo;;}</p><p>## wait for the child process to finish<br />foreach(@childs){<br />my $tmp=waitid($_,0);<br />}</p></blockquote><p>what a fork does is it creates a child process and takes the variables and code with it to analyze it separately (detached from the parent process) and thus a separate process is created( which usually runs on a separate processor). Thats it!! One big disadvantage of forking is its very difficult to share variables among the different processes. I will show you how to do it easily but still it has its own drawbacks.</p><blockquote><p>Okie, now if you really do not want to use fork in your code, that&rsquo;s okie too..There are many useful modules which do it for you very efficiently. One really useful module is Parallel::ForkManager. You can use Parallel::ForkManager to manage the number of forks you want to generate (number of processors you want to use).</p><p><strong>Simple usage:</strong><br />use Parallel::ForkManager;<br />my $max_processors=8;<br />my $fork= new Parallel::ForkManager($max_processors);<br />foreach (@dna) {<br />$fork-&gt;start and next; # do the fork<br /><strong>you code here;</strong><br />$fork-&gt;finish; # do the exit in the child process<br />}<br />$pm-&gt;wait_all_children;</p></blockquote><p>so you will be generating 8 forks which do the same thing for your each element of array. when one child finishes, Parallel::ForkManager generates a new one and thus you will be using all your processors to analyze the data. Now, if you have generated 8 child processes and want to write the data to one file. You need to lock the file to do this, because you will have problems with the buffering. You can lock the file using flock command.</p><blockquote><p>open (my $QUAL, &ldquo;myfile.txt&rdquo;);<br />flock $QUAL, LOCK_EX or die &ldquo;cant lock file $!&rdquo;;<br />print $QUAL &ldquo;$output&rdquo;;<br />flock $QUAL, LOCK_UN or die &ldquo;$!&rdquo;;<br />close $QUAL;</p></blockquote><p>I would not suggest using flock when dealing with multiple processes because it will decrease the processing efficiency( each child process must wait for the lock to be released by the other child process). Instead, I would suggest each fork writing to a separate file and after the processing just concatenating them.</p><p><strong>Putting it all together, If you have 100GB data you can do this</strong></p><blockquote><p><strong>step 1</strong>&nbsp;: split the dataset equally according to number of processors you have. this may take a few hours(about 2-3 hrs for 100GB file)<br />You can use unix &ldquo;split&rdquo; command for this<br />for example:<br />my $number_split=int($number_of_entries_in_your_dataset/$max_processors);<br />my $split_Files=`split -l $number_split &ldquo;your_file.fasta&rdquo; &ldquo;file_name&rdquo;`;</p><p><strong>step2</strong>: open you directory comtaining you split files and start Parallel::ForkManager.<br /><strong>For example:</strong><br />opendir(DIRECTORY, $split_files_directory) or die $!; ### open the directory<br />my $fork= new Parallel::ForkManager($max_processors);<br />while (my $file = readdir(DIRECTORY)) { ### read the directory<br />if($file=~/^\./){next;}<br />print $file,&rdquo;\n&rdquo;;<br />########## Start fork ##########<br />my $pid= $super_fork-&gt;start and next;<br /><strong>Whatever you want to do with the split file ;</strong><br /><strong>analyze my piece of $file;</strong><br />######### end fork ###############<br />$super_fork-&gt;finish;<br />}<br />$super_fork-&gt;wait_all_children;</p></blockquote><p>So basically each processor will be active with its piece of data (split file) and thus you have created 8 processes at one time which run without interfering with the other process. I again will not suggest writing output from each child process to one file(for reasons above). Write output from each fork to a separate file and finally concatenate them. Thats it, you have just increased your program speed by 8 times!! Isnt it easy?</p><p><strong>Note:</strong><br />You may worry about concatenation of the output each child generates, since it does take some time(remember 100GB). I think now you can use a mysql database LOAD DATA LOCAL INFILE command to load all the files into a single table(Should take about 3hrs for 100Gb dataset) and then export the whole table into one file. This should be faster than just concatenating them using &ldquo;cat&rdquo; command.(correct me if I am wrong)</p><p>Or much simpler way is to use pipes</p><p>cat output_dir/* | my_pipe or my_pipe &lt;(file1) final_file;</p><p>Thats it guys!! Enjoy programming and please do comment. I am not a computer scientist so forgive me for any mistakes and if any please report them. Thank you.</p>]]></description>
	<dc:creator>Rahul Nayak</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/38215/pwhatshap-a-parallel-high-performance-version-of-whatshap</guid>
	<pubDate>Wed, 14 Nov 2018 08:20:27 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/38215/pwhatshap-a-parallel-high-performance-version-of-whatshap</link>
	<title><![CDATA[pWhatsHap: a parallel, high-performance version of WhatsHap]]></title>
	<description><![CDATA[<div id="ASec4">
<p>Given the potential relevance of efficient haplotyping in several analysis pipelines, we have designed and engineered&nbsp;pWhatsHap, a parallel, high-performance version of&nbsp;WhatsHap.&nbsp;pWhatsHap&nbsp;is embedded in a toolkit developed in Python and supports genomics datasets in standard file formats. Building on&nbsp;WhatsHap,&nbsp;pWhatsHap&nbsp;exhibits the same complexity exploring a number of possible solutions which is exponential in the coverage of the dataset. The parallel implementation on multi-core architectures allows for a relevant reduction of the execution time for haplotyping, while the provided results enjoy the same high accuracy as that provided by&nbsp;WhatsHap, which increases with coverage.</p>
</div>
<p>https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-016-1170-y</p><p>Address of the bookmark: <a href="https://bitbucket.org/whatshap/whatshap" rel="nofollow">https://bitbucket.org/whatshap/whatshap</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>

</channel>
</rss>