<?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/34504?offset=200</link>
	<atom:link href="https://bioinformaticsonline.com/related/34504?offset=200" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/22388/perl-one-liner-basics</guid>
	<pubDate>Sun, 24 May 2015 09:28:33 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/22388/perl-one-liner-basics</link>
	<title><![CDATA[Perl One liner basics !!]]></title>
	<description><![CDATA[<p>Perl has a ton of command line switches (see perldoc perlrun), but I'm just going to cover the ones you'll commonly need to debug code. The most important switch is -e, for execute (or maybe "engage" :) ). The -e switch takes a quoted string of Perl code and executes it. For example:<br /><br />$ perl -e 'print "Hello, World!\n"'<br />Hello, World!<br /><br />It's important that you use single-quotes to quote the code for -e. This usually means you can't use single-quotes within the one liner code. If you're using Windows cmd.exe or PowerShell, you must use double-quotes instead.<br /><br />I'm always forgetting what Perl's predefined special variables do, and often test them at the command line with a one liner to see what they contain. For instance do you remember what $^O is?<br /><br />$ perl -e 'print "$^O\n"'<br />linux<br /><br />It's the operating system name. With that cleared up, let's see what else we can do. If you're using a relatively new Perl (5.10.0 or higher) you can use the -E switch instead of -e. This turns on some of Perl's newer features, like say, which prints a string and appends a newline to it. This saves typing and makes the code cleaner:<br /><br />$ perl -E 'say "$^O"'<br />linux<br /><br />Pretty handy! say is a nifty feature that you'll use again and again.</p>]]></description>
	<dc:creator>Abhimanyu Singh</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/22570/frequent-words-problem-solution-by-perl</guid>
	<pubDate>Tue, 09 Jun 2015 23:38:44 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/22570/frequent-words-problem-solution-by-perl</link>
	<title><![CDATA[Frequent words problem solution by Perl]]></title>
	<description><![CDATA[<div><p>Solved with perl <a href="http://rosalind.info/problems/1a/">http://rosalind.info/problems/1a/</a></p><p>#Find the most frequent k-mers in a string.<br />#Given: A DNA string Text and an integer k.<br />#Return: All most frequent k-mers in Text (in any order).<br /><br />use strict;<br />use warnings;<br /><br />my $string="ACGTTGCATGTCGCATGATGCATGAGAGCT";<br />my $kmer=4; <br />my %myHash;<br />my $max=0;<br /><br />for (my $aa=0; $aa&lt;=(length($string)-4); $aa++) {<br />&nbsp;&nbsp; &nbsp;my $myStr=substr&nbsp; $string, $aa,$kmer;<br />&nbsp;&nbsp; &nbsp;#print "$myStr\n";<br />&nbsp;&nbsp; &nbsp;my $km=kmerMatch ($string, $myStr, $kmer);<br />&nbsp;&nbsp; &nbsp;if ($km &gt; $max) { $max = $km;}<br />&nbsp;&nbsp; &nbsp;#print "$km\t$myStr\n";<br />&nbsp;&nbsp; &nbsp;$myHash{$myStr}=$km;<br />&nbsp;&nbsp; &nbsp;<br />}<br /><br />#Print all key which have matching values<br />foreach my $name (keys %myHash){<br />&nbsp;&nbsp;&nbsp; print "$name " if $myHash{$name} == $max;<br />}<br /><br />sub kmerMatch { #Check the exact matching kmers with sliding window<br />my ($string, $myStr, $kmer)=@_;<br />my $count=0;<br />for (my $aa=0; $aa&lt;=(length($string)-4); $aa++) {<br />&nbsp;&nbsp; &nbsp;my $myWin=substr&nbsp; $string, $aa,$kmer;<br />&nbsp;&nbsp; &nbsp;if ($myWin eq $myStr) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#print "$myWin eq $myStr\n";<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$count++;<br />&nbsp;&nbsp; &nbsp;}<br />}<br />return $count;<br />}</p></div>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/26424/biotoolbox</guid>
	<pubDate>Fri, 19 Feb 2016 09:14:44 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/26424/biotoolbox</link>
	<title><![CDATA[BioToolbox]]></title>
	<description><![CDATA[<p>This is a collection of libraries and high-quality end-user scripts for bioinformatic analysis, including working with gene annotation, collecting data scores from a variety of modern file formats, and conversion between file formats. The Bio::ToolBox libraries provide a unified, abstracted interface to multiple common gene annotation formats and the collection of data from multiple data files. They rely on BioPerl SeqFeature libraries and related adaptors to access binary file formats including Bam, BigWig, BigBed, and USeq. The Bio::ToolBox package includes scripts for setting up databases of annotation, collecting annotated features, collecting genomic data relative to features, manipulating and analyzing data, and data format conversion.</p>
<p>More at http://cpansearch.perl.org/src/TJPARNELL/</p><p>Address of the bookmark: <a href="http://cpansearch.perl.org/src/TJPARNELL/" rel="nofollow">http://cpansearch.perl.org/src/TJPARNELL/</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/42921/run-bash-script-in-perl-program</guid>
	<pubDate>Sat, 27 Feb 2021 01:42:23 -0600</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/42921/run-bash-script-in-perl-program</link>
	<title><![CDATA[Run bash script in Perl program !]]></title>
	<description><![CDATA[<p>BioPerl is a compilation of Perl modules that can be used to build bioinformatics-related Perl scripts. It is used, for example, in the development of source codes, standalone software/tools, and algorithms in bioinformatics programmes. Different modules are easy to instal and include, making it easier to perform different functions. Despite the fact that Python is commonly favoured over Perl, some bioinformatics software, such as the standalone version of 'alienomics', is written in Perl. Often it's a major problem for beginners to execute certain Unix/shell commands in Perl script, so it's hard to determine which feature is unique to a situation.</p><div style="background-color: white;">Perl provides various features and operators for the execution of external commands (described as follows), which are unique in their own way.</div><div style="background-color: white;">&nbsp;</div><div style="background-color: white;">They vary slightly from one another, making it difficult for Perl beginners to choose between them.</div><div style="background-color: white;">&nbsp;</div><div style="background-color: white;"><strong>1. IPC::Open2</strong></div><p>More at https://bioinformaticsonline.com/snippets/view/42919/perl-ipcopen2-module</p><p><strong>2. exec&rdquo;&rdquo;</strong></p><p><em>&nbsp;syntax:&nbsp;</em><code>exec "command";</code></p><div style="background-color: #edfbff;">It's a Perl function (perlfunc) that executes a command but never returns, similar to a function's return statement.</div><div style="background-color: white;">While running the command, it keeps processing the script and does not wait until it finishes first, returns false when the command is not found, but never returns true.</div><p><strong>3. Backticks &ldquo; or qx//</strong></p><p><em>syntax:&nbsp;</em><code>`command`;</code></p><p><em>syntax:&nbsp;</em><code>qx/command/;</code></p><div style="background-color: white;">It's a Perl operator (perlop) that executes a command and then resumes the Perl script once the command has ended, but the return value is the command's STDOUT.</div><p><strong>4. IPC::Open3</strong></p><p><em>syntax:&nbsp;</em><code>$output =&nbsp;open3(\*CHLD_IN, \*CHLD_OUT, \*CHLD_ERR,&nbsp;'command arg1 arg2', 'optarg',...);</code></p><p style="text-align: justify;"><code></code>It is very similar to <code>IPC::Open2</code> with the capability to capture all three file handles of the process, i.e., STDIN, STDOUT, and STDERR. It can also be used with or without the shell. You can read about it more in the documentation: <a href="https://perldoc.perl.org/IPC/Open3.html" target="_blank">IPC::Open3</a>.</p><p><code>$output = open3(my $o ut,&nbsp;my $in, 'command arg1 arg2');</code></p><p>OR without using the shell</p><p><code>$output = open3(my $out,&nbsp;my $in, 'command', 'arg1', 'arg2');</code></p><p><strong>5.a2p</strong></p><p><em>syntax:&nbsp;</em><code>a2p [options] [awkscript]</code></p><p>There is a Perl utility known as <code>a2p</code> which translates <code>awk</code> command to Perl. It takes awk script as input and generates a comparable Perl script as the output. Suppose, you want to execute the following <code>awk</code> statement</p><p><code>awk '{$1 = ""; $2 = ""; print}' f1.txt</code></p><p>This statement gives error sometimes even after escaping the variables (\$1, \$2) but by using <code>a2p</code> it can be easily converted to Perl script:</p><p>For further information, you can read it&rsquo;s documentation: <code><a href="https://perldoc.perl.org/a2p.html" target="_blank">a2p</a></code></p><p>More help at https://bioinformaticsonline.com/snippets/view/42920/perl-script-to-run-awk-inside-perl</p><p><strong>6. system()</strong></p><p><em>syntax:&nbsp;</em><code>system( "command" );</code></p><p>It is also a Perl function (<a href="https://perldoc.perl.org/functions/system.html" target="_blank">perlfunc</a>) that executes a command and waits for it to get finished first and then resume the Perl script. The return value is the exit status of the command. It can be called in two ways:</p><p><code>system( "command arg1 arg2" );</code></p><p>OR</p><p><code>system( "command", "arg1", "arg2" );</code></p><p>HELP</p><p>Here are some useful Perl cheat sheets that can be used as a quick reference guide.--&nbsp;<a href="https://www.pcwdld.com/perl-cheat-sheet" target="_blank">https://www.pcwdld.com/perl-cheat-sheet</a></p>]]></description>
	<dc:creator>Neel</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/42003/perl-one-liner-for-beginners</guid>
	<pubDate>Fri, 24 Jul 2020 05:58:28 -0500</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/42003/perl-one-liner-for-beginners</link>
	<title><![CDATA[Perl one-liner for beginners !]]></title>
	<description><![CDATA[<p>I often use the following arguments to perl:</p><ul>
<li>-e Makes the line of code be executed instead of a script</li>
<li>-n Forces your line to be called in a loop. Allows you to take lines from the diamond operator (or stdin)</li>
<li>-p Forces your line to be called in a loop. Prints $_ at the end</li>
</ul><p>&nbsp;</p><ul>
<li>This counts the number of quotation marks in each line and prints it
<div>
<blockquote>
<div>perl -ne&nbsp;'$cnt = tr/"//;print "$cnt\n"'&nbsp;inputFileName.txt</div>
</blockquote>
</div>
</li>
</ul><ul>
<li>Adds string to each line, followed by tab
<div>
<blockquote>
<div>perl -pe&nbsp;'s/(.*)/string\t$1/'&nbsp;inFile &gt; outFile</div>
</blockquote>
</div>
</li>
</ul><ul>
<li>Append a new line to each line
<div>
<blockquote>
<div>perl -pe&nbsp;'s//\n/'&nbsp;all.sent.classOnly &gt; all.sent.classOnly.sep</div>
</blockquote>
</div>
</li>
</ul><ul>
<li>Replace all occurrences of pattern1 (e.g. [0-9]) with pattern2
<div>
<blockquote>
<div>perl -p -i.bak -w -e&nbsp;'s/pattern1/pattern2/g'&nbsp;inputFile</div>
</blockquote>
</div>
</li>
</ul><ul>
<li>Go through file and only print words that do not have any uppercase letters.
<div>
<blockquote>
<div>perl -ne&nbsp;'print unless m/[A-Z]/'&nbsp;allWords.txt &gt; allWordsOnlyLowercase.txt</div>
</blockquote>
</div>
</li>
</ul><ul>
<li>Go through file, split line at each space and print words one per line.
<div>
<blockquote>
<div>perl -ne&nbsp;'print join("\n", split(/ /,$_));print("\n")'&nbsp;someText.txt &gt; wordsPerLine.txt</div>
</blockquote>
</div>
</li>
</ul><ul>
<li>or in other words, delete every character that is not a letter, white space or line end (replace with nothing)
<div>
<blockquote>
<div>perl -pne&nbsp;'s/[^a-zA-Z\s]*//g'&nbsp;text_withSpecial.txt &gt; text_lettersOnly.txt</div>
</blockquote>
</div>
</li>
</ul><ul>
<li>
<div>
<div>perl -pne&nbsp;'tr/[A-Z]/[a-z]/'&nbsp;textWithUpperCase.txt &gt; textwithoutuppercase.txt;</div>
</div>
</li>
</ul><ul>
<li>Print only the second column of the data when using tabular as a separator
<div>
<blockquote>
<div>perl -ne&nbsp;'@F = split("\t", $_); print "$F[1]";'&nbsp;columnFileWithTabs.txt &gt; justSecondColumn.txt</div>
</blockquote>
</div>
</li>
</ul><ul>
<li>
<div>One-Liner: Sort lines by their length
<blockquote>
<div>perl -e&nbsp;'print sort {length $a &lt;=&gt; length $b} &lt;&gt;'&nbsp;textFile</div>
</blockquote>
</div>
</li>
</ul><ul>
<li>One-Liner: Print second column, unless it contains a number
<blockquote>
<div>perl"&gt;perl -lane&nbsp;'print $F[1] unless $F[1] =~ m/[0-9]/'&nbsp;wordCounts.txt</div>
</blockquote>
</li>
</ul>]]></description>
	<dc:creator>BioStar</dc:creator>
</item>

</channel>
</rss>