<?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/22388?offset=1140</link>
	<atom:link href="https://bioinformaticsonline.com/related/22388?offset=1140" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/news/view/12883/breaking-chromosomes-to-study-cancer</guid>
	<pubDate>Fri, 18 Jul 2014 05:42:09 -0500</pubDate>
	<link>https://bioinformaticsonline.com/news/view/12883/breaking-chromosomes-to-study-cancer</link>
	<title><![CDATA[Breaking chromosomes to study cancer !!!]]></title>
	<description><![CDATA[<p>Chromosomes are present in every cell of our body and they contain the information the body needs to develop and function properly. This information is carried in genes that are arranged along the chromosomes. There are usually 46 chromosomes in every cell. These chromosomes come in pairs, one from our mother and one from our father. The chromosomes can be sorted into 23 pairs by looking at them down a microscope.</p><p>Most people who have a balanced translocation have the right amount of chromosome material but it has been rearranged in some way. This may happen if two chromosomes swap pieces (a reciprocal translocation). In other cases two whole chromosomes may become stuck together (a Robertsonian translocation). This page describes what happens when someone has a reciprocal translocation. <br /><br />Reciprocal chromosomal translocations occur following double-strand breaks (DSBs) in DNA when a section of one chromosome is exchanged with that of another, non-homologous chromosome. These exchanges may produce a dysfunctional fusion gene that disrupts cell growth and survival pathways, such as the translocations seen in leukemia and childhood sarcomas. <br /><br />Chromosomal translocations have been well studied in cancer cell lines which are associated with two types of cancer, acute myeloid leukemia and Ewing's sarcoma, but determining how they contribute to cancer development is complicated by additional mutations and altered gene expression profiles in these cultured cells. Now, Juan Carlos Ramirez, head of the Viral Vector Facility at the Fundacion Centro Nacional de Investigaciones Cardiovasculares (CNIC) and his colleagues Raul Torres at CNIC and Sandra Rodriguez-Peralez at the Spanish National Cancer Center (CNIO) in Madrid, Spain have used a new genome editing tool, CRISPR-Cas9, to induce chromosomal translocations for the first time in a human cell line and in primary cells. The study's authors conclude by stating that the use of this technology will allow for the clarification of how and why chromosomal translocation occurs, which without doubt will allow new anti-cancer therapeutic strategies to be tackled.</p><p>Using RNA-Guided Endonuclease (RGEN) technology or CRISPR/Cas9 genome engineering technology, CNIO and CNIC researchers have shown that it is possible to obtain such chromosomal translocations. The CRISPR-Cas9 system is extremely simple to introduce a cut at the desired locus, easier to design, and cheaper than many other systems. Using the CRISPR-Cas9 system, Ramirez and his colleagues reproduced the translocations observed in Ewing&rsquo;s Sarcoma (ES) and Acute Myeloid Leukemia (AML) patient cell lines in HEK293 cells and also generated the ES translocation in human mesenchymal stem cells and the AML translocation in umbilical cord blood cells.</p><p>By focusing on chromosomal translocation without the confounding characteristics of established cell lines, these new cells lines should help answer the fundamental question of what causes a cell to become cancerous. Ramirez and his team now look forward to modeling other chromosome translocations in a variety of cell types.</p><p>Reference:</p><p>http://en.wikipedia.org/wiki/Chromosomal_translocation</p><p>http://www.nature.com/ncomms/2014/140603/ncomms4964/abs/ncomms4964.html<br /><br /></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/35176/perloneliner-for-bioinformatician</guid>
	<pubDate>Mon, 15 Jan 2018 04:57:40 -0600</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/35176/perloneliner-for-bioinformatician</link>
	<title><![CDATA[PerlOneLiner for Bioinformatician]]></title>
	<description><![CDATA[<p>FILE SPACING<br />------------</p><p># Double space a file<br />perl -pe '$\="\n"'<br />perl -pe 'BEGIN { $\="\n" }'<br />perl -pe '$_ .= "\n"'<br />perl -pe 's/$/\n/'<br />perl -nE 'say'</p><p># Double space a file, except the blank lines<br />perl -pe '$_ .= "\n" unless /^$/'<br />perl -pe '$_ .= "\n" if /\S/'</p><p># Triple space a file<br />perl -pe '$\="\n\n"'<br />perl -pe '$_.="\n\n"'</p><p># N-space a file<br />perl -pe '$_.="\n"x7'</p><p># Add a blank line before every line<br />perl -pe 's//\n/'</p><p># Remove all blank lines<br />perl -ne 'print unless /^$/'<br />perl -lne 'print if length'<br />perl -ne 'print if /\S/'</p><p># Remove all consecutive blank lines, leaving just one<br />perl -00 -pe ''<br />perl -00pe0</p><p># Compress/expand all blank lines into N consecutive ones<br />perl -00 -pe '$_.="\n"x4'</p><p># Fold a file so that every set of 10 lines becomes one tab-separated line<br />perl -lpe '$\ = $. % 10 ? "\t" : "\n"'</p><p><br />LINE NUMBERING<br />--------------</p><p># Number all lines in a file<br />perl -pe '$_ = "$. $_"'</p><p># Number only non-empty lines in a file<br />perl -pe '$_ = ++$a." $_" if /./'</p><p># Number and print only non-empty lines in a file (drop empty lines)<br />perl -ne 'print ++$a." $_" if /./'</p><p># Number all lines but print line numbers only non-empty lines<br />perl -pe '$_ = "$. $_" if /./'</p><p># Number only lines that match a pattern, print others unmodified<br />perl -pe '$_ = ++$a." $_" if /regex/'</p><p># Number and print only lines that match a pattern<br />perl -ne 'print ++$a." $_" if /regex/'</p><p># Number all lines, but print line numbers only for lines that match a pattern<br />perl -pe '$_ = "$. $_" if /regex/'</p><p># Number all lines in a file using a custom format (emulate cat -n)<br />perl -ne 'printf "%-5d %s", $., $_'</p><p># Print the total number of lines in a file (emulate wc -l)<br />perl -lne 'END { print $. }'<br />perl -le 'print $n=()=&lt;&gt;'<br />perl -le 'print scalar(()=&lt;&gt;)'<br />perl -le 'print scalar(@foo=&lt;&gt;)'<br />perl -ne '}{print $.'<br />perl -nE '}{say $.'</p><p># Print the number of non-empty lines in a file<br />perl -le 'print scalar(grep{/./}&lt;&gt;)'<br />perl -le 'print ~~grep{/./}&lt;&gt;'<br />perl -le 'print~~grep/./,&lt;&gt;'<br />perl -E 'say~~grep/./,&lt;&gt;'</p><p># Print the number of empty lines in a file<br />perl -lne '$a++ if /^$/; END {print $a+0}'<br />perl -le 'print scalar(grep{/^$/}&lt;&gt;)'<br />perl -le 'print ~~grep{/^$/}&lt;&gt;'<br />perl -E 'say~~grep{/^$/}&lt;&gt;'</p><p># Print the number of lines in a file that match a pattern (emulate grep -c)<br />perl -lne '$a++ if /regex/; END {print $a+0}'<br />perl -nE '$a++ if /regex/; END {say $a+0}'</p><p><br />CALCULATIONS<br />------------</p><p># Check if a number is a prime<br />perl -lne '(1x$_) !~ /^1?$|^(11+?)\1+$/ &amp;&amp; print "$_ is prime"'</p><p># Print the sum of all the fields on a line<br />perl -MList::Util=sum -alne 'print sum @F'</p><p># Print the sum of all the fields on all lines<br />perl -MList::Util=sum -alne 'push @S,@F; END { print sum @S }'<br />perl -MList::Util=sum -alne '$s += sum @F; END { print $s }'</p><p># Shuffle all fields on a line<br />perl -MList::Util=shuffle -alne 'print "@{[shuffle @F]}"'<br />perl -MList::Util=shuffle -alne 'print join " ", shuffle @F'</p><p># Find the minimum element on a line<br />perl -MList::Util=min -alne 'print min @F'</p><p># Find the minimum element over all the lines<br />perl -MList::Util=min -alne '@M = (@M, @F); END { print min @M }'<br />perl -MList::Util=min -alne '$min = min @F; $rmin = $min unless defined $rmin &amp;&amp; $min &gt; $rmin; END { print $rmin }'</p><p># Find the maximum element on a line<br />perl -MList::Util=max -alne 'print max @F'</p><p># Find the maximum element over all the lines<br />perl -MList::Util=max -alne '@M = (@M, @F); END { print max @M }'</p><p># Replace each field with its absolute value<br />perl -alne 'print "@{[map { abs } @F]}"'</p><p># Find the total number of fields (words) on each line<br />perl -alne 'print scalar @F'</p><p># Print the total number of fields (words) on each line followed by the line<br />perl -alne 'print scalar @F, " $_"'</p><p># Find the total number of fields (words) on all lines<br />perl -alne '$t += @F; END { print $t}'</p><p># Print the total number of fields that match a pattern<br />perl -alne 'map { /regex/ &amp;&amp; $t++ } @F; END { print $t }'<br />perl -alne '$t += /regex/ for @F; END { print $t }'<br />perl -alne '$t += grep /regex/, @F; END { print $t }'</p><p># Print the total number of lines that match a pattern<br />perl -lne '/regex/ &amp;&amp; $t++; END { print $t }'</p><p># Print the number PI to n decimal places<br />perl -Mbignum=bpi -le 'print bpi(n)'</p><p># Print the number PI to 39 decimal places<br />perl -Mbignum=PI -le 'print PI'</p><p># Print the number E to n decimal places<br />perl -Mbignum=bexp -le 'print bexp(1,n+1)'</p><p># Print the number E to 39 decimal places<br />perl -Mbignum=e -le 'print e'</p><p># Print UNIX time (seconds since Jan 1, 1970, 00:00:00 UTC)<br />perl -le 'print time'</p><p># Print GMT (Greenwich Mean Time) and local computer time<br />perl -le 'print scalar gmtime'<br />perl -le 'print scalar localtime'</p><p># Print local computer time in H:M:S format<br />perl -le 'print join ":", (localtime)[2,1,0]'</p><p># Print yesterday's date<br />perl -MPOSIX -le '@now = localtime; $now[3] -= 1; print scalar localtime mktime @now'</p><p># Print date 14 months, 9 days and 7 seconds ago<br />perl -MPOSIX -le '@now = localtime; $now[0] -= 7; $now[4] -= 14; $now[7] -= 9; print scalar localtime mktime @now'</p><p># Prepend timestamps to stdout (GMT, localtime)<br />tail -f logfile | perl -ne 'print scalar gmtime," ",$_'<br />tail -f logfile | perl -ne 'print scalar localtime," ",$_'</p><p># Calculate factorial of 5<br />perl -MMath::BigInt -le 'print Math::BigInt-&gt;new(5)-&gt;bfac()'<br />perl -le '$f = 1; $f *= $_ for 1..5; print $f'</p><p># Calculate greatest common divisor (GCM)<br />perl -MMath::BigInt=bgcd -le 'print bgcd(@list_of_numbers)'</p><p># Calculate GCM of numbers 20 and 35 using Euclid's algorithm<br />perl -le '$n = 20; $m = 35; ($m,$n) = ($n,$m%$n) while $n; print $m'</p><p># Calculate least common multiple (LCM) of numbers 35, 20 and 8<br />perl -MMath::BigInt=blcm -le 'print blcm(35,20,8)'</p><p># Calculate LCM of 20 and 35 using Euclid's formula: n*m/gcd(n,m)<br />perl -le '$a = $n = 20; $b = $m = 35; ($m,$n) = ($n,$m%$n) while $n; print $a*$b/$m'</p><p># Generate 10 random numbers between 5 and 15 (excluding 15)<br />perl -le '$n=10; $min=5; $max=15; $, = " "; print map { int(rand($max-$min))+$min } 1..$n'</p><p># Find and print all permutations of a list<br />perl -MAlgorithm::Permute -le '$l = [1,2,3,4,5]; $p = Algorithm::Permute-&gt;new($l); print @r while @r = $p-&gt;next'</p><p># Generate the power set<br />perl -MList::PowerSet=powerset -le '@l = (1,2,3,4,5); for (@{powerset(@l)}) { print "@$_" }'</p><p># Convert an IP address to unsigned integer<br />perl -le '$i=3; $u += ($_&lt;&lt;8*$i--) for "127.0.0.1" =~ /(\d+)/g; print $u'<br />perl -le '$ip="127.0.0.1"; $ip =~ s/(\d+)\.?/sprintf("%02x", $1)/ge; print hex($ip)'<br />perl -le 'print unpack("N", 127.0.0.1)'<br />perl -MSocket -le 'print unpack("N", inet_aton("127.0.0.1"))'</p><p># Convert an unsigned integer to an IP address<br />perl -MSocket -le 'print inet_ntoa(pack("N", 2130706433))'<br />perl -le '$ip = 2130706433; print join ".", map { (($ip&gt;&gt;8*($_))&amp;0xFF) } reverse 0..3'<br />perl -le '$ip = 2130706433; $, = "."; print map { (($ip&gt;&gt;8*($_))&amp;0xFF) } reverse 0..3'</p><p><br />STRING CREATION AND ARRAY CREATION<br />----------------------------------</p><p># Generate and print the alphabet<br />perl -le 'print a..z'<br />perl -le 'print ("a".."z")'<br />perl -le '$, = ","; print ("a".."z")'<br />perl -le 'print join ",", ("a".."z")'</p><p># Generate and print all the strings from "a" to "zz"<br />perl -le 'print ("a".."zz")'<br />perl -le 'print "aa".."zz"'</p><p># Create a hex lookup table<br />@hex = (0..9, "a".."f")</p><p># Convert a decimal number to hex using @hex lookup table<br />perl -le '$num = 255; @hex = (0..9, "a".."f"); while ($num) { $s = $hex[($num%16)&amp;15].$s; $num = int $num/16 } print $s'<br />perl -le '$hex = sprintf("%x", 255); print $hex'<br />perl -le '$num = "ff"; print hex $num'</p><p># Generate a random 8 character password<br />perl -le 'print map { ("a".."z")[rand 26] } 1..8'<br />perl -le 'print map { ("a".."z", 0..9)[rand 36] } 1..8'</p><p># Create a string of specific length<br />perl -le 'print "a"x50'</p><p># Create a repeated list of elements<br />perl -le '@list = (1,2)x20; print "@list"'</p><p># Create an array from a string<br />@months = split ' ', "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"<br />@months = qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/</p><p># Create a string from an array<br />@stuff = ("hello", 0..9, "world"); $string = join '-', @stuff</p><p># Find the numeric values for characters in the string<br />perl -le 'print join ", ", map { ord } split //, "hello world"'</p><p># Convert a list of numeric ASCII values into a string<br />perl -le '@ascii = (99, 111, 100, 105, 110, 103); print pack("C*", @ascii)'<br />perl -le '@ascii = (99, 111, 100, 105, 110, 103); print map { chr } @ascii'</p><p># Generate an array with odd numbers from 1 to 100<br />perl -le '@odd = grep {$_ % 2 == 1} 1..100; print "@odd"'<br />perl -le '@odd = grep { $_ &amp; 1 } 1..100; print "@odd"'</p><p># Generate an array with even numbers from 1 to 100<br />perl -le '@even = grep {$_ % 2 == 0} 1..100; print "@even"'</p><p># Find the length of the string<br />perl -le 'print length "one-liners are great"'</p><p># Find the number of elements in an array<br />perl -le '@array = ("a".."z"); print scalar @array'<br />perl -le '@array = ("a".."z"); print $#array + 1'</p><p><br />TEXT CONVERSION AND SUBSTITUTION<br />--------------------------------</p><p># ROT13 a string<br />'y/A-Za-z/N-ZA-Mn-za-m/'</p><p># ROT 13 a file<br />perl -lpe 'y/A-Za-z/N-ZA-Mn-za-m/' file</p><p># Base64 encode a string<br />perl -MMIME::Base64 -e 'print encode_base64("string")'<br />perl -MMIME::Base64 -0777 -ne 'print encode_base64($_)' file</p><p># Base64 decode a string<br />perl -MMIME::Base64 -le 'print decode_base64("base64string")'<br />perl -MMIME::Base64 -ne 'print decode_base64($_)' file</p><p># URL-escape a string<br />perl -MURI::Escape -le 'print uri_escape($string)'</p><p># URL-unescape a string<br />perl -MURI::Escape -le 'print uri_unescape($string)'</p><p># HTML-encode a string<br />perl -MHTML::Entities -le 'print encode_entities($string)'</p><p># HTML-decode a string<br />perl -MHTML::Entities -le 'print decode_entities($string)'</p><p># Convert all text to uppercase<br />perl -nle 'print uc'<br />perl -ple '$_=uc'<br />perl -nle 'print "\U$_"'</p><p># Convert all text to lowercase<br />perl -nle 'print lc'<br />perl -ple '$_=lc'<br />perl -nle 'print "\L$_"'</p><p># Uppercase only the first word of each line<br />perl -nle 'print ucfirst lc'<br />perl -nle 'print "\u\L$_"'</p><p># Invert the letter case<br />perl -ple 'y/A-Za-z/a-zA-Z/'</p><p># Camel case each line<br />perl -ple 's/(\w+)/\u$1/g'<br />perl -ple 's/(?&lt;!['])(\w+)/\u\1/g'</p><p># Strip leading whitespace (spaces, tabs) from the beginning of each line<br />perl -ple 's/^[ \t]+//'<br />perl -ple 's/^\s+//'</p><p># Strip trailing whitespace (space, tabs) from the end of each line<br />perl -ple 's/[ \t]+$//'</p><p># Strip whitespace from the beginning and end of each line<br />perl -ple 's/^[ \t]+|[ \t]+$//g'</p><p># Convert UNIX newlines to DOS/Windows newlines<br />perl -pe 's|\n|\r\n|'</p><p># Convert DOS/Windows newlines to UNIX newlines<br />perl -pe 's|\r\n|\n|'</p><p># Convert UNIX newlines to Mac newlines<br />perl -pe 's|\n|\r|'</p><p># Substitute (find and replace) "foo" with "bar" on each line<br />perl -pe 's/foo/bar/'</p><p># Substitute (find and replace) all "foo"s with "bar" on each line<br />perl -pe 's/foo/bar/g'</p><p># Substitute (find and replace) "foo" with "bar" on lines that match "baz"<br />perl -pe '/baz/ &amp;&amp; s/foo/bar/'</p><p># Binary patch a file (find and replace a given array of bytes as hex numbers)<br />perl -pi -e 's/\x89\xD8\x48\x8B/\x90\x90\x48\x8B/g' file</p><p><br />SELECTIVE PRINTING AND DELETING OF CERTAIN LINES<br />------------------------------------------------</p><p># Print the first line of a file (emulate head -1)<br />perl -ne 'print; exit'</p><p># Print the first 10 lines of a file (emulate head -10)<br />perl -ne 'print if $. &lt;= 10'<br />perl -ne '$. &lt;= 10 &amp;&amp; print'<br />perl -ne 'print if 1..10'</p><p># Print the last line of a file (emulate tail -1)<br />perl -ne '$last = $_; END { print $last }'<br />perl -ne 'print if eof'</p><p># Print the last 10 lines of a file (emulate tail -10)<br />perl -ne 'push @a, $_; @a = @a[@a-10..$#a]; END { print @a }'</p><p># Print only lines that match a regular expression<br />perl -ne '/regex/ &amp;&amp; print'</p><p># Print only lines that do not match a regular expression<br />perl -ne '!/regex/ &amp;&amp; print'</p><p># Print the line before a line that matches a regular expression<br />perl -ne '/regex/ &amp;&amp; $last &amp;&amp; print $last; $last = $_'</p><p># Print the line after a line that matches a regular expression<br />perl -ne 'if ($p) { print; $p = 0 } $p++ if /regex/'</p><p># Print lines that match regex AAA and regex BBB in any order<br />perl -ne '/AAA/ &amp;&amp; /BBB/ &amp;&amp; print'</p><p># Print lines that don't match match regexes AAA and BBB<br />perl -ne '!/AAA/ &amp;&amp; !/BBB/ &amp;&amp; print'</p><p># Print lines that match regex AAA followed by regex BBB followed by CCC<br />perl -ne '/AAA.*BBB.*CCC/ &amp;&amp; print'</p><p># Print lines that are 80 chars or longer<br />perl -ne 'print if length &gt;= 80'</p><p># Print lines that are less than 80 chars in length<br />perl -ne 'print if length &lt; 80'</p><p># Print only line 13<br />perl -ne '$. == 13 &amp;&amp; print &amp;&amp; exit'</p><p># Print all lines except line 27<br />perl -ne '$. != 27 &amp;&amp; print'<br />perl -ne 'print if $. != 27'</p><p># Print only lines 13, 19 and 67<br />perl -ne 'print if $. == 13 || $. == 19 || $. == 67'<br />perl -ne 'print if int($.) ~~ (13, 19, 67)'</p><p># Print all lines between two regexes (including lines that match regex)<br />perl -ne 'print if /regex1/../regex2/'</p><p># Print all lines from line 17 to line 30<br />perl -ne 'print if $. &gt;= 17 &amp;&amp; $. &lt;= 30'<br />perl -ne 'print if int($.) ~~ (17..30)'<br />perl -ne 'print if grep { $_ == $. } 17..30'</p><p># Print the longest line<br />perl -ne '$l = $_ if length($_) &gt; length($l); END { print $l }'</p><p># Print the shortest line<br />perl -ne '$s = $_ if $. == 1; $s = $_ if length($_) &lt; length($s); END { print $s }'</p><p># Print all lines that contain a number<br />perl -ne 'print if /\d/'</p><p># Find all lines that contain only a number<br />perl -ne 'print if /^\d+$/'</p><p># Print all lines that contain only characters<br />perl -ne 'print if /^[[:alpha:]]+$/</p><p># Print every second line<br />perl -ne 'print if $. % 2'</p><p># Print every second line, starting the second line<br />perl -ne 'print if $. % 2 == 0'</p><p># Print all lines that repeat<br />perl -ne 'print if ++$a{$_} == 2'</p><p># Print all unique lines<br />perl -ne 'print unless $a{$_}++'</p><p># Print the first field (word) of every line (emulate cut -f 1 -d ' ')<br />perl -alne 'print $F[0]'</p><p><br />HANDY REGULAR EXPRESSIONS<br />-------------------------</p><p># Match something that looks like an IP address<br />/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/<br />/^(\d{1,3}\.){3}\d{1,3}$/</p><p># Test if a number is in range 0-255<br />/^([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$/</p><p># Match an IP address<br />my $ip_part = qr|([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|;<br />if ($ip =~ /^($ip_part\.){3}$ip_part$/) {<br /> say "valid ip";<br />}</p><p># Check if the string looks like an email address<br />/\S+@\S+\.\S+/</p><p># Check if the string is a decimal number<br />/^\d+$/<br />/^[+-]?\d+$/<br />/^[+-]?\d+\.?\d*$/</p><p># Check if the string is a hexadecimal number<br />/^0x[0-9a-f]+$/i</p><p># Check if the string is an octal number<br />/^0[0-7]+$/</p><p># Check if the string is binary<br />/^[01]+$/</p><p># Check if a word appears twice in the string<br />/(word).*\1/</p><p># Increase all numbers by one in the string<br />$str =~ s/(\d+)/$1+1/ge</p><p># Extract HTTP User-Agent string from the HTTP headers<br />/^User-Agent: (.+)$/</p><p># Match printable ASCII characters<br />/[ -~]/</p><p># Match unprintable ASCII characters<br />/[^ -~]/</p><p># Match text between two HTML tags<br />m|&lt;strong&gt;([^&lt;]*)&lt;/strong&gt;|<br />m|&lt;strong&gt;(.*?)&lt;/strong&gt;|</p><p># Replace all &lt;b&gt; tags with &lt;strong&gt;<br />$html =~ s|&lt;(/)?b&gt;|&lt;$1strong&gt;|g</p><p># Extract all matches from a regular expression<br />my @matches = $text =~ /regex/g;</p><p><br />PERL TRICKS<br />-----------</p><p># Print the version of a Perl module<br />perl -MModule -le 'print $Module::VERSION'<br />perl -MLWP::UserAgent -le 'print $LWP::UserAgent::VERSION'</p>]]></description>
	<dc:creator>Shruti Paniwala</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/fun/view/14036/introduction-to-programming-write-short-programs-that-generate-graphics-and-animation</guid>
	<pubDate>Thu, 14 Aug 2014 23:29:04 -0500</pubDate>
	<link>https://bioinformaticsonline.com/fun/view/14036/introduction-to-programming-write-short-programs-that-generate-graphics-and-animation</link>
	<title><![CDATA[Introduction to programming. Write short programs that generate graphics and animation.]]></title>
	<description><![CDATA[<p>Introduction to programming. Write short programs that generate graphics and animation.</p><p>http://funprogramming.org/</p>]]></description>
	<dc:creator>Ram Yash Pal</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/36827/sex-detector-a-probabilistic-approach-to-study-sex-chromosomes-in-non-model-organisms</guid>
	<pubDate>Wed, 30 May 2018 15:57:31 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/36827/sex-detector-a-probabilistic-approach-to-study-sex-chromosomes-in-non-model-organisms</link>
	<title><![CDATA[SEX-DETector: A Probabilistic Approach to Study Sex Chromosomes in Non-Model Organisms]]></title>
	<description><![CDATA[<p>SEX-DETector is a probabilistic method that relies on RNAseq data from a cross (parents and progeny of each sex) to infer autosomal and sex-linked genes (genes located on the non recombining part of sex chromosomes).</p>
<h3>How does SEX-DETector work?</h3>
<p>SEX-DETector does not require prior sequencing of a reference genome: the same sequencing data can be used for the assembly and for the mapping of the reads. A full documentation on the pipeline can be found&nbsp;<a href="https://lbbe.univ-lyon1.fr/IMG/pdf/sex-detector_user_manual.pdf?1294/78de9ae01fbe949e85db7b4392a7854efeba225d">here</a>.</p>
<ul>
<li>we recommend&nbsp;<a href="http://github.com/trinityrnaseq/trinityrnaseq/wiki">Trinity</a>&nbsp;for the assembly.</li>
<li>Trinity components should be merged with&nbsp;<a href="http://seq.cs.iastate.edu/cap3.html">cap3</a>. Our code to perform the merging is available&nbsp;<a href="http://lbbe.univ-lyon1.fr/IMG/zip/cap3_on_trinity_output-2.zip?1517/9ee57874639c69f96319b15e301705489ffce5ce">here</a>.</li>
<li>We recommend&nbsp;<a href="http://bio-bwa.sourceforge.net/">BWA</a>&nbsp;for mapping of the reads.</li>
<li>When the mapping has been perfomed, the individuals need to be genotyped; SEX-DETector takes files produced by Reads2snp (which is available for download on the&nbsp;<a href="http://kimura.univ-montp2.fr/PopPhyl/index.php?section=tools">PopPhyl website</a>) as input.</li>
</ul><p>Address of the bookmark: <a href="http://lbbe.univ-lyon1.fr/-SEX-DETector-.html?lang=eg" rel="nofollow">http://lbbe.univ-lyon1.fr/-SEX-DETector-.html?lang=eg</a></p>]]></description>
	<dc:creator>Surabhi Chaudhary</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/37584/mulan-multiple-sequence-local-alignment-and-visualization-for-studying-function-and-evolution</guid>
	<pubDate>Fri, 24 Aug 2018 09:50:01 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/37584/mulan-multiple-sequence-local-alignment-and-visualization-for-studying-function-and-evolution</link>
	<title><![CDATA[Mulan: Multiple-sequence local alignment and visualization for studying function and evolution]]></title>
	<description><![CDATA[<p>Mulan: Multiple-sequence local alignment and visualization for studying function and evolution</p>
<p><span>Mulan (</span><a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC540288/#ref44">http://mulan.dcode.org/</a><span>), a novel method and a network server for comparing multiple draft and finished-quality sequences to identify functional elements conserved over evolutionary time. Mulan brings together several novel algorithms: the TBA multi-aligner program for rapid identification of local sequence conservation, and the multiTF program for detecting evolutionarily conserved transcription factor binding sites in multiple alignments. In addition, Mulan supports two-way communication with the GALA database; alignments of multiple species dynamically generated in GALA can be viewed in Mulan, and conserved transcription factor binding sites identified with Mulan/multiTF can be integrated and overlaid with extensive genome annotation data using GALA.</span></p><p>Address of the bookmark: <a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC540288/" rel="nofollow">https://www.ncbi.nlm.nih.gov/pmc/articles/PMC540288/</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/opportunity/view/17504/postdoc-scientist-bioinformatics-at-ccmb</guid>
  <pubDate>Fri, 26 Sep 2014 19:58:41 -0500</pubDate>
  <link></link>
  <title><![CDATA[PostDoc Scientist Bioinformatics at CCMB]]></title>
  <description><![CDATA[
<p>1. Project Assistant/Junior Research Fellow/ Project Fellow [PA_JRF_PF]</p>

<p>a) M.Sc/or equivalent in biological sciences/related areas [Position Code: PA_JRF_PF_a]<br />b) B.E/B.Tech/ M.Sc in biotechnology/bioinformatics/computer science/Chemistry/Physics or MCA [Position Code: PA_JRF_PF_b]<br />c) M.Sc/or equivalent in wildlife sciences/ecology/environmental sciences or MBBS/BVSc/MVSc. [Position Code: PA_JRF_PF_c]</p>

<p>(Candidates with result awaited are NOT eligible to apply)</p>

<p>Upper Age limit 28years</p>

<p>Rs.12000 / Rs.16000 (as sanctioned by the funding agency)</p>

<p>2. Post Doctoral Fellow/Research Associate in multiple research areas [PDF_RA]</p>

<p>Ph.D. (submitted/awarded) in any branch of biological Sciences. Candidates with Ph.D. in other sciences are also encouraged to apply.</p>

<p>Experience in molecular biology, biochemistry, structural biology, cell biology, infectious disease, conservation genetics, veterinary science, reproductive biology, and molecular diagnostics is desired but not mandatory.</p>

<p>[Position Code: PDF_RA]</p>

<p>UpperAge limit 35years</p>

<p>Rs. 22000- 26000 (as sanctioned by the funding agency)</p>

<p>3. Post Doctoral Scientist Fellow [PDSF]</p>

<p>Ph.D in any of the following areas: bioinformatics, next generation sequencing, high throughput data analysis, proteomics, bio-statistics, computer science, information technology, computer hardware and networking/clustering, parallel processing.<br />[Position Code: PDSF]</p>

<p>Upper Age limit 40 years</p>

<p>Rs. 40000 consolidated (as sanctioned by the funding agency)</p>

<p>Download Application: Last date for apply online: 09th Oct 2014</p>

<p>Advertisement: www.ccmb.res.in//index.php?view=notifications&amp;mid=0&amp;id=71&amp;nid=38</p>

<p>Apply online http://www.ccmb.res.in/positions/temp_notif/online_form.html</p>

<p>More at http://www.ccmb.res.in//index.php?view=notifications&amp;mid=0&amp;id=71&amp;nid=38</p>
]]></description>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/researchlabs/view/17652/arraygen-bioinformatics-genomics-group</guid>
  <pubDate>Sun, 28 Sep 2014 14:09:55 -0500</pubDate>
  <link></link>
  <title><![CDATA[ArrayGen Bioinformatics Genomics Group]]></title>
  <description><![CDATA[
<p>ArrayGen is a global bioinformatics company which is a one stop solution for microarray designing and genomics data analysis. Our novel Array Design Approach Strategy (ADAS) aims to condense the time lag between demands of scientific community and manufacture industry, thereby expediting research processes.</p>

<p>ArrayGen specializes in Genomics data analysis and research, as we believe in the level of precision, predictability, benchmark-ability, and data analysis capability of genomics data over other forms of biological data. ArrayGen constantly strives to develop new solutions, and plug the existing gaps in the technological advancement of the field.</p>

<p>More http://www.arraygen.com/</p>
]]></description>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/opportunity/view/17873/postdoc-position-in-protein-annotation-and-machine-learning-paris-france</guid>
  <pubDate>Sat, 04 Oct 2014 08:10:45 -0500</pubDate>
  <link></link>
  <title><![CDATA[Postdoc position in protein annotation and machine learning - Paris, France]]></title>
  <description><![CDATA[
<p>We are interested in finding an excellent postdoc with interests in protein functional annotation, machine learning and computer grids. The position is open for 3.5 years at the Université Pierre et Marie Curie, in the heart of Paris.</p>

<p>Research topic: Protein function annotation, multiple probabilistic models, domain architecture, machine learning, combinatorial optimization, computer grid.</p>

<p>This project is run on the Laboratoire de Biologie Computationnelle et Quantitative UMR7238 CNRS-UPMC – Analytical Genomics team, headed by A.Carbone. It is co-advised with Pierre-Henri Wuillemin, Laboratoire d’Informatique de Paris 6 – Equipe DECISION.</p>

<p>The postdoc will be payed under a contract of Ingénieur de Recherche lasting 3.5 years and it is available from September 1st, 2014.</p>

<p>Group Web Page: http://www.lcqb.upmc.fr/AnalGenom/home.html</p>

<p>Ref. E-Mail: Alessandra Carbone alessandra.carbone@lip6.fr</p>
]]></description>
</item>

<item>
  <guid isPermaLink='true'>https://bioinformaticsonline.com/opportunity/view/18819/jrfsrf-at-jawaharlal-nehru-institute-ofadvanced-studies-jnias-hyderabad</guid>
  <pubDate>Fri, 31 Oct 2014 08:48:23 -0500</pubDate>
  <link></link>
  <title><![CDATA[JRF/SRF at Jawaharlal Nehru Institute ofAdvanced Studies (JNIAS), Hyderabad]]></title>
  <description><![CDATA[
<p>Applications for Academic Projects in Biotechnology, Bioinformatics, Environmental Sciences and Computer Science &amp; Engineering</p>

<p>About JNIAS<br />Jawaharlal Nehru Institute of Advanced Studies (JNIAS), Hyderabad has been established by Dr. D. Swaminadhan Research Foundation (DSRF), Hyderabad as a Research and Educational Institution with a view to contribute in developing advanced technologies and build „core competence‟ in specific areas. The activities of JNIAS involves: Education, Research Training and Innovations in the fields of Sciences, Technologies, Humanities and Social Sciences. It aims to blossom into an Advanced Institute of education and research with a reservoir of expertise and experience in the relevant fields and the necessary capability to harness multi-disciplinary research and studies. JNIAS has been recognized as an Advanced Research Institute by Jawaharlal Nehru Technological University Hyderabad (JNTUH), Hyderabad and Jawaharlal Nehru Technological University Anantapur (JNTUA), for offering Ph.D., P.G M.Phil, P.G Diploma and Training Programmes in Sciences and Engineering &amp; Technology.</p>

<p>Jawaharlal Nehru Architecture and Fine Arts University (JNAFAU) Hyderabad also recognized JNIAS for offering UG, PG degree in Architecture.</p>

<p>Projects &amp; Facilities</p>

<p>JNIAS offers wide range of projects:</p>

<p>Biotechnology area:</p>

<p>Molecular Biology<br />Microbiology<br />Nanotechnology<br />Bioinformatics (Schrodinger Software)<br />In Silico studies &amp; Drug Designing<br />Sequence analysis<br />Protein structure function studies</p>

<p>Registration<br />Tuition Fees: Interested students need to pay the following tuition fees:<br />1. Six Month’s Project: Rs. 20,000/-<br />2. Four Month’s Project: Rs. 15,000/-<br />3. Three Month’s Project: Rs. 10,000/-<br />4. One Month - Hands on Training : Rs. 8,000/-</p>

<p>For enquires call:<br />91-7893203414 (Biotechnology), 91-9949582263 (Environmental Sciences) 91-8977369305 (Computer Science)</p>

<p>Interested student may download the application from the website (www.jnias.in) and send the hard copy of the completed application forms and Curriculum Vitae along with the Demand Draft drawn on any nationalized Banks in favor of “The Registrar, JNIAS, Secunderabad”. Application forms can be sent through email to academicprojects@jnias.in</p>

<p>Address<br />Jawaharlal Nehru Institute of Advanced Studies (JNIAS)<br />6th Floor, Buddha Bhavan, M.G Road,<br />Secunderabad - 500 003<br />Andhra Pradesh, India<br />Tele/Fax: 040- 27541551; 27541553<br />Mobile: 08885541554<br />Web site: www.jnias.in</p>

<p>Brochure : https://drive.google.com/file/d/0B3zPwhgA-u-nU0dyMFd2OWcxNUpSTWNYc0xDSGs5UDI4UDNB/view?usp=sharing</p>
]]></description>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/videolist/watch/18866/celebrating-crystallography-an-animated-adventure</guid>
	<pubDate>Fri, 31 Oct 2014 15:59:00 -0500</pubDate>
	<link>https://bioinformaticsonline.com/videolist/watch/18866/celebrating-crystallography-an-animated-adventure</link>
	<title><![CDATA[Celebrating Crystallography - An animated adventure]]></title>
	<description><![CDATA[<iframe width="" height="" src="https://www.youtube-nocookie.com/embed/uqQlwYv8VQI" frameborder="0" allowfullscreen></iframe>NEW: Now with French or Spanish subtitles (click on the 'Captions' icon to select). Plus... Watch the French language version here: https://www.youtube.com/watch?v=PvLu7BOsJhM

X-ray crystallography is arguably one of the greatest innovations of the twentieth century, but not that many people know what it is or how it came about.

Join us on an animated journey through the 100 year history of crystallography -- from the pioneering work of William and Lawrence Bragg in 1913 to the surface of Mars!

Narrated by structural biologist Stephen Curry and produced by animation company 12foot6, the film explores the extraordinary history of crystallography. To date 28 Nobel Prizes have been awarded to projects related to the field and X-ray crystallography remains the foremost technique in determining the structures of a huge range of complex molecules.

This film was produced in celebration of the Bragg Centenary and was funded by STFC.

Watch more science videos on the amazing Ri Channel: http://richannel.org

Watch more animations from 12foot6: http://12foot6.com/

The Ri is on Twitter: http://twitter.com/ri_science
and Facebook: http://www.facebook.com/royalinstitution
Subscribe for the latest science videos: http://richannel.org/newsletter]]></description>
	
</item>

</channel>
</rss>