<?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/11181?offset=530</link>
	<atom:link href="https://bioinformaticsonline.com/related/11181?offset=530" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/32154/decostar-detection-of-co-evolution</guid>
	<pubDate>Fri, 14 Apr 2017 06:27:25 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/32154/decostar-detection-of-co-evolution</link>
	<title><![CDATA[DeCoSTAR - Detection of Co-evolution]]></title>
	<description><![CDATA[<p><span>DeCoSTAR is a software which aims at reconstructing ancestral gene or genome organizations, in the form of sets of neighborhood relations -adjacencies- between pairs of ancestral genes or gene domains.</span><br><span>Ancestral genes or domains are deduced from reconciled gene trees in a context of birth, speciation, duplication, loss, transfer, which are either given as input or computed with the&nbsp;</span><a href="http://mbb.univ-montp2.fr/MBB/download_sources/16__TERA">ecceTERA package</a><span>, to which DeCoSTAR is integrated. DeCoSTAR constructs parsimonious scenarios of gains and breakages of adjacencies, and contains in particular all the features of previous software DeCo, DeCoLT, ArtDeCo and DeClone. It provides statistical supports on ancestral adjacencies, or the possibility to handle badly assembled genomes.&nbsp;</span><br><span>DeCoSTAR is able to reconstruct the histories of domains inside genes, including gene fusion and fission events, as well as ancestral genome structures for dozens of whole genomes from all kingdoms of life in a few minutes.</span></p><p>Address of the bookmark: <a href="http://pbil.univ-lyon1.fr/software/DeCoSTAR/" rel="nofollow">http://pbil.univ-lyon1.fr/software/DeCoSTAR/</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/32399/mapping-ngs</guid>
	<pubDate>Tue, 02 May 2017 07:58:07 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/32399/mapping-ngs</link>
	<title><![CDATA[Mapping NGS]]></title>
	<description><![CDATA[<p>NGS data are just a bunch of sequences, you have no idea which region in the genome each sequences comes from, which gene it represents...<br>To know that you have to align the sequences to the reference sequence. The reference sequence is in most cases the full genome sequence but sometimes, a library of EST sequences is used.<br>In either way, aligning your sequence reads to the reference sequence is called mapping.</p>
<p>The most used mappers of DNA-seq data are&nbsp;<a href="http://bio-bwa.sourceforge.net/" target="_blank">BWA</a>&nbsp;and&nbsp;<a href="http://bowtie-bio.sourceforge.net/bowtie2/index.shtml" target="_blank">Bowtie</a>&nbsp;for DNA-Seq data and&nbsp;<a href="http://tophat.cbcb.umd.edu/" target="_blank">Tophat</a>,&nbsp;<a href="https://github.com/alexdobin/STAR" target="_blank">STAR</a>&nbsp;or&nbsp;<a href="http://www.ccb.jhu.edu/software/hisat/index.shtml" target="_blank">HISAT</a>&nbsp;for RNA-Seq data. Mappers differ in which options they can take in, how fast and how accurate they are. Bowtie is faster than BWA, but looses some sensitivity (does not map an equal amount of reads to the correct position in the genome).</p><p>Address of the bookmark: <a href="http://wiki.bits.vib.be/index.php/Mapping_of_NGS_data" rel="nofollow">http://wiki.bits.vib.be/index.php/Mapping_of_NGS_data</a></p>]]></description>
	<dc:creator>Abhimanyu Singh</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/1212/computational-proteomics-lets-remember-the-basics</guid>
	<pubDate>Thu, 01 Aug 2013 17:24:20 -0500</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/1212/computational-proteomics-lets-remember-the-basics</link>
	<title><![CDATA[Computational Proteomics : Lets remember the basics]]></title>
	<description><![CDATA[<p>I spend some of my valuable time in computational drug designing sector. I remember my initial proteomics days, playing with interactive protein visualization software and dreaming big. Fortunately or unfortunately, I switched to genomics and handling the genomic floods in Petabytes which is expected to be in Brontobytes in coming years. Did I mention Brontobytes ??? Let me call to my server personnel &hellip; it gonna tsunami !!!!!</p><p>Today, refreshing my old memories I decided to blog about the basic knowledge of biochemistry and computational proteomics&nbsp;skills, but after I found several article on internet saying exactly what I had wanted to say I thought I might as well just redirect BOL's blog readers there instead:</p><p>Here is the list of website and videos links which provide a good resource for you basic chemistry need:</p><p><a href="http://tecreativ.blogspot.co.uk/2012/09/funny-shortcut-remember-periodic-table.html"></a><a href="http://tecreativ.blogspot.co.uk/2012/09/funny-shortcut-remember-periodic-table.html"></a><a href="http://tecreativ.blogspot.co.uk/2012/09/funny-shortcut-remember-periodic-table.html"></a><a href="http://tecreativ.blogspot.co.uk/2012/09/funny-shortcut-remember-periodic-table.html">http://tecreativ.blogspot.co.uk/2012/09/funny-shortcut-remember-periodic-table.html</a></p><p>This blog have some specific hindi word to remember entire periodic table. I really like</p><p>Group 14 (C Si Ge Sn Pb) -&gt; Sentence &ldquo;<strong>C</strong>hemistry&nbsp;<strong>Si</strong>r&nbsp;<strong>G</strong>iv<strong>e</strong>s&nbsp;<strong>S</strong>a<strong>n</strong>ki&nbsp;<strong>P</strong>ro<strong>b</strong>lems&rdquo;</p><p>Sanki is a hindi word which mean crazy :P</p><p>I found this link useful as well&nbsp;<a href="http://www.wikihow.com/Memorise-the-Periodic-Table"></a><a href="http://www.wikihow.com/Memorise-the-Periodic-Table"></a><a href="http://www.wikihow.com/Memorise-the-Periodic-Table"></a><a href="http://www.wikihow.com/Memorise-the-Periodic-Table">http://www.wikihow.com/Memorise-the-Periodic-Table</a></p><p>The eagle genomics group provide an element of bioinformatics in periodic tables. Yes you got it, this is not periodic table rather bioinformatics tools with periodicals</p><p><a href="http://elements.eaglegenomics.com/"></a><a href="http://elements.eaglegenomics.com/"></a><a href="http://elements.eaglegenomics.com/"></a><a href="http://elements.eaglegenomics.com/">http://elements.eaglegenomics.com/</a></p><p>You can also try this video links, which provide you an overview with tricks on periodic tables:</p><p><a href="http://www.youtube.com/watch?v=fLSfgNxoVGk"></a><a href="http://www.youtube.com/watch?v=fLSfgNxoVGk"></a><a href="http://www.youtube.com/watch?v=fLSfgNxoVGk"></a><a href="http://www.youtube.com/watch?v=fLSfgNxoVGk">http://www.youtube.com/watch?v=fLSfgNxoVGk</a></p><p><a href="http://www.youtube.com/user/periodicvideos"></a><a href="http://www.youtube.com/user/periodicvideos"></a><a href="http://www.youtube.com/user/periodicvideos"></a><a href="http://www.youtube.com/user/periodicvideos">http://www.youtube.com/user/periodicvideos</a></p><p>For drug design educational material, software, tools, databses, viewer, file format and many more stuff at one place&nbsp;<a href="http://www.allfordrugs.com/drug-design/.%C2%A0I"></a><a href="http://www.allfordrugs.com/drug-design/"></a><a href="http://www.allfordrugs.com/drug-design/"></a><a href="http://www.allfordrugs.com/drug-design/">http://www.allfordrugs.com/drug-design/</a>&nbsp;I highly recommend you all computational drug designer to bookmark this page for future studies as well.</p><p>I just remember one of my mini project in which I use my flash knowledge (flash .. oh ya flash) to explain amino acids in interactive and user friendly manner. I can&rsquo;t provide It right now, but promise you to provide a link in near future. I hope that you will enjoy my flashy creative skills :).</p><p>Moreover, I found some of very interesting tricks to remember all amino acids chemical formulae on youtube at</p><p><a href="http://www.youtube.com/watch?v=gqrWb0fmzQ&amp;list=PL6132651E70BB5575"></a><a href="http://www.youtube.com/watch?v=gqrWb0fmzQ&amp;list=PL6132651E70BB5575"></a><a href="http://www.youtube.com/watch?v=gqrWb0fmzQ&amp;list=PL6132651E70BB5575"></a><a href="http://www.youtube.com/watch?v=gqrWb0fmzQ&amp;list=PL6132651E70BB5575">http://www.youtube.com/watch?v=gqrWb0fmzQ&amp;list=PL6132651E70BB5575</a></p><p><a href="http://www.youtube.com/watch?v=C2GfoGXfySQ&amp;list=PL6132651E70BB5575"></a><a href="http://www.youtube.com/watch?v=C2GfoGXfySQ&amp;list=PL6132651E70BB5575"></a><a href="http://www.youtube.com/watch?v=C2GfoGXfySQ&amp;list=PL6132651E70BB5575"></a><a href="http://www.youtube.com/watch?v=C2GfoGXfySQ&amp;list=PL6132651E70BB5575">http://www.youtube.com/watch?v=C2GfoGXfySQ&amp;list=PL6132651E70BB5575</a></p><p><br />Key points for computer added drug designers?<br />1. A shortage of biochemistry skills means that you absolutely nowhere in understanding the key concept and do research.<br />2. Keep handy with complex mathematical formula, before merely running tools or software.<br />3. Dig it better and deeper guys .. design it.</p>]]></description>
	<dc:creator>Jitendra Narayan</dc:creator>
</item>
<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/opportunity/view/4004/33rd-annual-convention-of-indian-association-for-cancer-research-from-13th-to-15th-february-2014</guid>
  <pubDate>Tue, 27 Aug 2013 10:37:08 -0500</pubDate>
  <link></link>
  <title><![CDATA[33rd Annual Convention of Indian Association for Cancer Research from 13th to 15th February 2014]]></title>
  <description><![CDATA[
<p>RGCB is organizing the 33rd Annual Convention of Indian Association for Cancer Research from 13th to 15th February 2014 with the theme "Discovery, Innovation and Translation in Cancer Research"</p>

<p>Kindly log on to conference website http://rgcb.res.in/IACR2014 for further details and timely updates and registration. We shall truly appreciate if the same be circulated among your friends, scholars and students encouraging them to participate in the meet.</p>

<p>http://210.212.237.38/iacrconference/</p>
]]></description>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/researchlabs/view/4552/imtech-lab</guid>
  <pubDate>Sun, 15 Sep 2013 09:41:04 -0500</pubDate>
  <link></link>
  <title><![CDATA[IMTECH Lab]]></title>
  <description><![CDATA[
<p>Computer Aided Protein Structure Prediction; Identification of Vaccine<br />Candidates (T-Epitope prediction); Analysis of Nucleotide/Protein Sequences; Development of Web Server/</p>

<p>Software; Creation of Public Domain Resources in Biology<br />Present Status::</p>

<p>Developing prediction methods for gene, beta-turn, secondary structure and MHC-binding sites.<br />Area of Interest ::</p>

<p>Comparison of force field simulations. Analysis of DNA-protein interactions using molecular mechanics methods.Drug Target Identification using in silico biology.</p>

<p>More @ http://www.imtech.res.in/bic/index.php?option=com_content&amp;view=article&amp;id=65</p>

<p>PIs: http://www.imtech.res.in/bic/index.php?option=com_content&amp;view=article&amp;id=69</p>
]]></description>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/36197/bioinformatics-oneliner</guid>
	<pubDate>Tue, 10 Apr 2018 04:13:03 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/36197/bioinformatics-oneliner</link>
	<title><![CDATA[Bioinformatics OneLiner]]></title>
	<description><![CDATA[<p>To remove all line ends (\n) from a Unix text file:</p><pre>sed ':a;N;$!ba;s/\n//g' filename.txt &gt; newfilename_oneline.txt</pre><p>To get average for a column of numbers (here the second column $2):</p><pre>awk '{ sum += $2; n++ } END { if (n &gt; 0) print sum / n; }'</pre><p>To get sequence length for all sequences in a fasta file:</p><pre>awk '/^&gt;/ {if (seqlen){print seqlen}; print ;seqlen=0;next; } { seqlen = seqlen +length($0)}END{print seqlen}' \<br />filename.fasta</pre><p>To copy (move, rename, etc) files based on their list in a text file:</p><pre>cat file_list.txt | while read line; do cp "$line" complete_dataset/"$line"; done</pre><p>To split bam files into sets with mapped and unmapped reads:</p><pre>samtools view -F4 sample.bam &gt; sample.mapped.sam<br />samtools view -f4 sample.bam &gt; sample.unmapped.sam</pre><p>To gzip all your fastq files using gnu parallel and gzip:</p><pre>parallel gzip ::: *.fastq</pre><p>To gzip all your fastq files using pigz:</p><pre>pigz *.fastq</pre><p>To count all sequences in a fasta file:</p><pre>grep "^&gt;" yourfile.fasta -c</pre><p>To count all sequences in all fasta files in your current directory:</p><pre>for a in *.fasta; do ls $a; grep "^&gt;" -c $a; done</pre><p>To keep only one copy of duplicated lines:</p><pre>awk '!seen[$0]++'</pre><p>To sum assembly size from SPAdes contigs.fasta or scaffolds.fasta file:</p><pre>grep "^&gt;" scaffolds.fasta | cut -f 4 -d '_' | paste -sd+ | bc</pre><p>To remove everything after the first space at each line, e.g. to to simplify fasta headers:</p><pre>cut -d' ' -f1 &lt; your_file</pre><p>To count reads in a all .fastq.gz files in your current folder (fast, using gnu parallel):</p><pre>parallel "echo {} &amp;&amp; gunzip -c {} | wc -l | awk '{d=\$1; print d/4;}'" ::: *.gz</pre><p>To count reads in a all .fastq.gz files in your current folder:</p><pre>zcat *.gz | echo $((`wc -l`/4))</pre><p>To count reads in a all .fastq files in your current folder:</p><pre>cat *.fastq | echo $((`wc -l`/4))</pre><p>To count base pairs in a all .fastq.gz files in your current folder:</p><pre>zcat *.fastq.gz | paste - - - - | cut -f 2 | tr -d '\n' | wc -c </pre><p>To split multifasta file into many fasta files:</p><pre>awk '/^&gt;/ {OUT=substr($0,2) ".fa"}; {print &gt;&gt; OUT; close(OUT)}' Input_File</pre><p>To convert Illumina FASTQ 1.3 to 1.8:</p><pre>sed -e '4~4y/@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghi/!"#$%&amp;'\''()*+,-.\/0123456789:;&lt;=&gt;?@ABCDEFGHIJ/' f.fastq</pre><p>To convert FASTQ to FASTA:</p><pre>sed -n '1~4s/^@/&gt;/p;2~4p' </pre><p>To get fastq read length distribution:</p><pre>cat reads.fastq | awk '{if(NR%4==2) print length($1)}' | sort | uniq -c</pre><p>To deinterleave interleaved fastq file:</p><pre>cat myf.fq | paste - - - - - - - - | tee &gt;(cut -f 1-4 | tr "\t" "\n" &gt; myfile_1.fq) | cut -f 5-8 | \<br />tr "\t" "\n" &gt; myf2.fq </pre><p>To filter and sort contig identifiers from SPAdes assembly (e.g. here lenght &gt;= 4000 + coverage &gt;=100):</p><pre>grep "^&gt;" scaffolds.fasta | sed s"/_/ /"g | awk '{ if ($4 &gt;= 4000 &amp;&amp; $6 &gt;= 100) print $0 }' | sort -k 4 -n | \<br />sed s"/ /_/"g</pre><p>To append something to all headers of your fasta files:</p><pre>sed 's/&gt;.*/&amp;YOURSTRING/' filename.fasta &gt; new_filename.fasta</pre><p>To replace/squeeze multiple adjacent spaces by only one space:&nbsp;</p><pre>tr -s " " &lt; file</pre><p>To filter fastq based on length (here larger than or equal to 21, but smaller than or equal to 25.</p><pre>cat your.fastq | paste - - - - | awk 'length($2)&nbsp; &gt;= 21 &amp;&amp; length($2) &lt;= 25' | sed 's/\t/\n/g' &gt; filtered.fastq</pre><p>To print difference between the last and first row in 5th column:</p><pre>awk '{if (!first){first=$5;}; last=$5;} END {print last-first}' myfile.txt</pre><p>To sample only 200 first bases from all sequences in a multifasta file (e.g. from assembly scaffolds.fasta file here):</p><pre>awk '/^&gt;/{ seqlen=0; print; next; } seqlen &lt; 200 { if (seqlen + length($0) &gt; 200) $0 = substr($0, 1, 200-seqlen);\<br /> seqlen += length($0); print }' scaffolds.fasta &gt; 200bp_scaffolds.fasta</pre><p>&nbsp;To pipe a compressed fasta file directly into makeblastdb.</p><pre>gunzip -c fasta.gz | makeblastdb -in -</pre><p>To remove sequences with duplicate fasta headers from a fasta file.</p><pre>awk '/^&gt;/{f=!d[$1];d[$1]=1}f' in.fasta &gt; out.fasta</pre>]]></description>
	<dc:creator>Rahul Nayak</dc:creator>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/opportunity/view/2336/3rd-annual-next-generation-sequencing-asia-congress-2013-at-singapore-singapore</guid>
  <pubDate>Wed, 14 Aug 2013 09:55:04 -0500</pubDate>
  <link></link>
  <title><![CDATA[3rd Annual Next Generation Sequencing Asia Congress 2013 at Singapore, Singapore]]></title>
  <description><![CDATA[
<p>The 3rd Annual Next Generation Sequencing Asia Congress is to be held on the 22nd and 23rd of October 2013 in Singapore. Over the 2 days, the conference will provide an overview of the current options of next-generation sequencing platforms, technologies, applications and the newest computational tools for the analysis of next-generation sequencing data and analytical genomics as well as overcoming data management problems. The event will attract over 200 senior-level decision makers working in areas such as next generation sequencing, analytical genomics, computational biology, oncology, RNA profiling, molecular genomics, biomarkers, bioinformatics &amp; data management and clinical &amp; diagnostics development.</p>

<p>Dated : 22 Nov 2013 -23 Nov 2013</p>

<p>http://www.ngsasia-congress.com/</p>
]]></description>
</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/2461/taverna-workflow-management-system</guid>
	<pubDate>Thu, 15 Aug 2013 19:34:32 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/2461/taverna-workflow-management-system</link>
	<title><![CDATA[Taverna Workflow Management System]]></title>
	<description><![CDATA[<p>Taverna is an open source domain independent Workflow Management System &ndash; a suite of tools used to design and execute scientific workflows. Taverna has been created by the myGrid project and is funded through a range of organisations and projects.</p>
<p>The Taverna suite is written in Java and includes the Taverna Engine(used for enacting workflows) that powers both the Taverna Workbench(the desktop client application) and the Taverna Server (which allows remote execution of workflows). Taverna is also available as a Command Line Tool for a quick execution of workflows from a terminal.</p><p>Address of the bookmark: <a href="http://www.taverna.org.uk/" rel="nofollow">http://www.taverna.org.uk/</a></p>]]></description>
	<dc:creator>Madhvan Reddy</dc:creator>
</item>

</channel>
</rss>