Friday, November 28, 2008

Solexa, high accuracy with millions of 36bp reads

De-novo vs. mapping assembly

In sequence assembly, two different types can be distinguished:

1. de-novo: assembling reads together so that they form a new, previously unknown sequence
2. mapping: assembling reads against an existing backbone sequence, building a sequence that is similar but not necessarily identical to the backbone sequence

http://www.plosgenetics.org/article/info:doi/10.1371/journal.pgen.1000139

Abstract

Whole-genome sequencing is a powerful technique for obtaining the reference sequence information of multiple organisms. Its use can be dramatically expanded to rapidly identify genomic variations, which can be linked with phenotypes to obtain biological insights. We explored these potential applications using the emerging next-generation sequencing platform Solexa Genome Analyzer, and the well-characterized model bacterium Bacillus subtilis. Combining sequencing with experimental verification, we first improved the accuracy of the published sequence of the B. subtilis reference strain 168, then obtained sequences of multiple related laboratory strains and different isolates of each strain. This provides a framework for comparing the divergence between different laboratory strains and between their individual isolates. We also demonstrated the power of Solexa sequencing by using its results to predict a defect in the citrate signal transduction pathway of a common laboratory strain, which we verified experimentally. Finally, we examined the molecular nature of spontaneously generated mutations that suppress the growth defect caused by deletion of the stringent response mediator relA. Using whole-genome sequencing, we rapidly mapped these suppressor mutations to two small homologs of relA. Interestingly, stable suppressor strains had mutations in both genes, with each mutation alone partially relieving the relA growth defect. This supports an intriguing three-locus interaction module that is not easily identifiable through traditional suppressor mapping. We conclude that whole-genome sequencing can drastically accelerate the identification of suppressor mutations and complex genetic interactions, and it can be applied as a standard tool to investigate the genetic traits of model organisms.

Lions


panmictic: Referring to unstructured (random-mating) populations.

http://www.biochem.northwestern.edu/holmgren/Glossary/Definitions/Def-P/panmictic.html

How genetically structured are lion populations?

The genomic legacy of the lion, Panthera leo—one of the world's most charismatic carnivores—was studied using a large multigenic dataset. Population genomics of 357 individuals from most of the major lion populations in Africa and Asia refuted the hypothesis that African lions consist of a single, randomly breeding (panmictic) population and provided insight into the lion's natural history (see Antunes et al., doi:10.1371/journal.pgen.1000251). The high population structure observed highlights the importance of preserving lion populations in decline as opposed to prioritizing larger-scale conservation efforts.

Image Credit: Photo of lion cubs from Laikipia District, central Kenya, by James Warwick (http://www.jameswarwick.co.uk).

http://www.plosgenetics.org/article/browseIssue.action?field=issue

Thursday, November 27, 2008

Python, domain-domain interaction

Python code to take in two files, a pfam lookup table and a domain-domain interaction file.

#!/usr/bin/python

# loadin loopkup table
f = open("pfam-table.txt", "r")
pfam = {}
while True:
line = f.readline()
if (not line):
break
line = line.rstrip()
cols = line.split()
if (len(cols) < 2):
break
pfam[cols[0]] = cols[1]
f.close()

# load data to normalize
f = open("tmp2-clean.txt", "r")
dict = {}
while True:
line = f.readline()
if (not line):
break
line = line.rstrip()
cols = line.split()
if (len(cols) < 5):
break

d1 = pfam[cols[0]] #domain1
p1 = cols[1] #protein1
int = cols[2]
d2 = pfam[cols[3]]
p2 = cols[4]

key = p1+'-'+p2
key2 = p2+'-'+p1
if dict.has_key(key):
dict[key]=dict[key]+d1+'-'+d2+';'
elif dict.has_key(key2):
dict[key2]=dict[key2]+d1+'-'+d2+';'
else:
dict[key]=d1+'-'+d2+';'
f.close()

for e in dict.items():
srcdest = e[0].split('-')
print srcdest[0], srcdest[1], len(e[1].split(';'))-1, e[1]

A loooong post on astrology :D

http://dragonpower.tribe.net/thread/81eb3143-6c18-4340-9b31-db7c2740f488
http://www.suzannewhite.com/new-astrology/PiscesPig.html

luxe (lks, lks)
n.
1. The condition of being elegantly sumptuous.
2. Something luxurious; a luxury.

The degree of permeability in the Pisces/Pig subject is so elevated as to cause him or her a real burden. This person feels more deeply than we do. Pisces/Pigs are gentle souls with unlimited ambition. They are sensualists who love luxe and care immensely for tradition and custom. I'd say without hesitation that the Pisces/Pig's biggest stumbling block is the modern world. He is old-fashioned and firmly rooted in time-honored ways. Shortcuts irritate the Pisces/Pig. Nicknames grate on his nerves. Gadgets bore him. Some people accuse this person of being a clinging vine in matters of the heart. It's fully understandable because the Pisces born Pig needs the security of full-time affection and tenderness in order to survive. Without fervent full time love, he feels shipwrecked and alone. He will go to great lengths to hang onto an object of desire. Nothing, for the Pisces/Pig, can replace true love. His sex drive is known for being a tad over the top but...

Famous Pisces Pigs - Andrew Jackson, Ed McMahon...

Good Compatibilities - Cancer Cat/Rabbit...


Aquarius Pig

http://www.suzannewhite.com/new-astrology/AquariusPig.html

There evolves from the blend of Aquarius with Pig a brash quality that borders on lumpishness. Perhaps the Pig's naturally pastoral, countrified side imitates Aquarius's openness. Or maybe the Aquarian subject picks excess sincerity from the Pig and becomes too direct. But whatever the mechanics, this subject comes up both bold and forward. These people are aggressively charismatic. They know how to attract crowds and please them. Love is of the utmost importance the this reckless creature. His whisperings are full of sensuous innuendo and promises of marvelous sexual surprise. But when the lights are low and he or she gets you into bed, you might be surprised at how UN surprised you are by the follow up which...

Famous Aquarius Pigs - Ronald Reagan, John McEnroe, Sonny Bono...

Good Compatibilities - Gemini Cat/Rabbit...



Lastly, Metal begets Water, groundwater trickling its way through layers of the Earth's ore. Water's color is blue. Its season is full-blown winter. Water is always moving, fluid, and mutational. In our bodies, water's influence affects our plumbing systems, the kidneys and the bladder. The ear, too, comes under the spell of Water. Hence people born in Water-ruled years are frequently musical. They pick up on everything. Be it good or bad, they never miss a vibe. Water-ruled creatures are always very sensitive and sometimes even mentally fragile. The downside of Water's influence, then, is a stressful nervousness. To balance that fidgety, squeamish, overly sensitive side, Water endows its subjects with the noblest quality of all, kindness and sympathy. Sometimes too permeable, the Water-ruled must take precautions against drowning in the chagrin of those they see as less fortunate than themselves.

Pisces (February 19-March 20).
Cancer (June 21-July 22).
Gemini (May 21-June 20).

Rabbit
* 29 January 1903 - 15 February 1904: Water Rabbit
* 14 February 1915 - 2 February 1916: Wood Rabbit
* 2 February 1927 - 22 January 1928: Fire Rabbit
* 19 February 1939 - 7 February 1940: Earth Rabbit
* 6 February 1951 - 26 January 1952: Metal Rabbit
* 25 January 1963 - 12 February 1964: Water Rabbit
* 11 February 1975 - 30 January 1976: Wood Rabbit
* 29 January 1987 - 16 February 1988: Fire Rabbit
* 16 February 1999 - 4 February 2000: Earth Rabbit
* 3 February 2011 - 22 January 2012: Metal Rabbit
* 2023 - 2024: Water Rabbit
* 2035 - 2036: Wood Rabbit
* 2047 - 2048: Fire Rabbit

Those following traditional Chinese astrology consider people born in the Year of the Rabbit to make ideal diplomats or politicians. In Chinese astrological thought, a "rabbit person" is graceful, cultured, well-mannered, articulate, talented, and ambitious. They are virtuous, reserved, and have excellent taste. Rabbit people are admired, trusted, and are often financially lucky. Although Rabbit people get along well with many people, at heart they are considered to be basically reserved creatures, and are only truly happy when engrossed in some sort of scholarly or intellectual activity. Rabbit people are considered too sensitive for the world around them; they are not able to thrive in competitive or aggressive environments, and are anxious when others force them to take risks. Their inner world is considered too delicate for unsettled or unpredictable situations, and they tend to create peaceful and comfortable atmospheres - like rabbit dens - instinctively. According to traditional Chinese astrology, this characteristic makes them very hospitable and attentive people, who take care of those around them.

http://en.wikipedia.org/wiki/Rabbit_(zodiac)


http://en.wikipedia.org/wiki/Pig_(zodiac)

* 30 January 1911 - 17 February 1912: Metal Pig
* 16 February 1923 - 4 February 1924: Water Pig
* 4 February 1935 - 23 January 1936: Wood Pig
* 22 January 1947 - 9 February 1948: Fire Pig
* 8 February 1959 - 27 January 1960: Earth Pig
* 27 January 1971 - 14 February 1972: Metal Pig
* 13 February 1983 - 1 February 1984: Water Pig
* 31 January 1995 - 18 February 1996: Wood Pig
* 18 February 2007 - 6 February 2008: Fire Pig
* 5 February 2019 - 24 January 2020: Earth Pig
* 2031 - 2032: Metal Pig
* 2043 - 2044: Water Pig

Someone born in the year of the Boar is usually honest, straightforward and a patient person. They are a modest, shy character who prefers to work quietly behind the scenes. When others despair, they are often there to offer support. This type of person is reserved with those they do not know too well, but as time passes and they gain confidence, those around them may discover a lively and warm-hearted person behind that mask of aloofness. Despite those born in the year of the Boar having a wide circle of friends and acquaintances, they have few close friends who understand them and share their inner thoughts and feelings. It is easy to put trust in Boars; they won't let you down and will never even attempt to do so. Such people simply want to do everything right according to social norms.[9]

http://en.wikipedia.org/wiki/Pisces_(astrology)

Pisces
Attribute
Likes Feeling appreciated, feeling loved, freedom, stability, mystical settings/enchantment, dreaming, having their input valued, being unique
Dislikes Feeling vulnerable, having no goals to move toward, feeling invalidated, being criticized, illiteracy, noisy scenes and displays, having no sense of structure
Ideal careers caring for the needy as in the fields of medicine or veterinary medicine [4] • anything related to the sea [4] • acting [4] • psychics or mystics [4] • religion [4] • cooking [4] • pharmacist
The Chinese equivalent is thought to be the gentle, diplomatic Rabbit, whose lunar month is 6 March - 4 April.[14]

http://en.wikipedia.org/wiki/Aquarius_(astrology)

Aquarius
Attribute
Ideal Careers Group leadership [13] • science and research [13] • astronomy [13] • computer technology, electronics or software engineering [13] • aviation [13] • electronic communication or broadcasting [13] • photography [13] • theater [13] • social services [13] • music [13] • Anything with Drama,Music,Art and Science.[13]
Likes Friendship [15] • freedom [15] • intellectual stimulation • camaraderie • surprises • companionship • feeling understood • emotional safety.
Dislikes jealousy, possessiveness, control, ego plays, pointless meetings, narrow-mindedness, being ridiculed, routines, inequality, being taken for granted.
The Chinese equivalent is thought to be the unpredictable, charismatic Tiger, whose lunar month is 4 February - 5 March. [30]


http://www.evolvingdoor.ca/zodiac/signsindex.htm
http://chinese.astrology.com/pig.aspx

youtube avril

Woke up to the sound of Avril's Innocence

http://www.youtube.com/watch?v=TDRT-bYRvMI



"This innocence is brilliant .... It's so beautiful, it makes me want to cry ... "

web idea

Woke up today with this crazy idea of letting someone know secretly that you like them. Probably inspired by the movie `Let the Love Begin`. The concept of a secret admirer, secret saviour you name it, is very enticing. Now there's already something similar called `Send Secret Thoughts ♥` but some people complains that it shows up when you post something, so we'll try to address that issue if possible in our own implementation muwhahahaha.

expert finder, contact, location, fields, etc

Tuesday, November 25, 2008

Jobs

http://www.bioinformatics.org/jobs/?show=archives

http://bioinformatics.biology.ualberta.ca/careers.html
Pharmaceutical Science

CheminformaticianChoose to put your hands to work in a lab or on a keyboard!
Pharmacogenetician
Pharmacogenomics

Applied Science

Structural analyst
Molecular modeler
Bio-statistician
Biomechanics
Database programmer

Life Sciences

Scientific Curator
Gene analyst
Protein analyst
Phylogeneticist
Research scientist
Research associate

Computer Science & Engineering

Database programmer
Software developer
Computational biologist
Network Administrator / Analyst

http://www.centennialcollege.ca/
http://www.senecac.on.ca/
http://www.bcgsc.ca/career/BCPNCB14-01-2008
http://www.bioinformatics.sfu.ca/
http://bioinformatics.ubc.ca/
http://www.zymeworks.com/
http://www.pathogenomics.bc.ca/brinkman/
http://www.bms.com/career/data/

Public Health Agency: FA10 - Bioinformatics Research Technician

BC Disease Control
http://www.bccdc.ca/util/about/UBCCDC/People/Faculty/default.htm

UBC Michael Smith
http://www.msl.ubc.ca/faculty

Community Living BC
clbc.humanresources@gov.bc.ca

CSIS National Headquarters, Ottawa (Ontario).http://csiscareers.ca/available-jobs/3

HootSuite: Social Media Management Dashboard

Antibody, bioinformatics blogs

Antibody tutorial
http://microvet.arizona.edu/Courses/MIC419/Tutorials/antibody.html

Monday, November 24, 2008

Darwin


http://darwin-online.org.uk/

The complete work of Charles Darwin, great scientist who pioneered the term 'evolution'.

Australia 2008

This movie looks interesting (starring Nicole Kidman and Hugh Jackman - Wolverine) ...
http://www.imdb.com/title/tt0455824/

The movie's about WWII in Australia I think.

" Set in northern Australia before World War II, an English aristocrat who inherits a sprawling ranch reluctantly pacts with a stock-man in order to protect her new property from a takeover plot. As the pair drive 2,000 head of cattle over unforgiving landscape, they experience the bombing of Darwin, Australia, by Japanese forces firsthand. "

Btw, just found out that New Zealand is actually South East of Australia and not somewhere in Europe -o-

DNA Day

In 2003 Congress designated April 25th as “DNA Day” to commemorate the completion of the Human Genome Project in April 2003, and Watson and Crick’s publication of the double-helix structure of DNA in 1953.

LET THE LOVE BEGIN


http://en.wikipedia.org/wiki/Let_the_Love_Begin

This movie was pretty good, didn't like the main heroine's acting that much but overall it was pretty funny and a happy ending :D Whenever I see love stories that has something about travelling, it reminds me of her, feeling guilty somewhat ...

http://www.lyricsdownload.com/kyla-let-the-love-begin-lyrics.html

The song (LET THE LOVE BEGIN by Jerome John Hughes And Kyla) for this one is awesome.

Tuesday, November 18, 2008

Gene Ontology

http://www.geneontology.org/

The Gene Ontology project provides a controlled vocabulary to describe gene and gene product attributes in any organism. Read more about the Gene Ontology...

In computer science and information science, an ontology is a formal representation of a set of concepts within a domain and the relationships between those concepts. It is used to reason about the properties of that domain, and may be used to define the domain.

Perl Gotchas / Notes

http://www.perl.org/books/beginning-perl/
http://www.tizag.com/perlT/perlarrays.php

Perl interactive shell $ perl -de 42

And from my bioinformatics class

Always use chomp after
Always no comma after OUT ie print OUT "Foo\n";
unshift "Add" @array adds elements to the beginning of the array

Functions: chomp, split, reverse, length, tr, substr
[ppt@bioinf lec04]$ perl -e 'print split /:/,"a:b:c:d"; print "\n";'
abcd
tr = translate $DNA =~ tr/[ACTG]/[TGAC]/;

Perl variables
Scalars: $variable_name
Arrays: @array_name
Hashes: %hash_name
Subroutines: &
Filehandle: FILEHANDLE_NAME

The name must begin with a letter or underscore, and can contain as many letters, numbers or underscores as you like
$__A123; (OK) $12; (BAD)

****Preincrement vs. postincrement
$potatoes = 80; # $potatoes holds 80
$onions = ++$potatoes; # $onions holds 81, # $potatoes holds 81
$parsnips = $potatoes++; # $parsnips holds 81, # $potatoes holds 82

Arrays
$x = 65065;
$pi = 3.14;
@z = ($x, ‘abA’, $pi);
$#z equals the largest index of the array @z, so @z[$#z] returns the last element and $#z+1 returns the number of elements in the array

Push, Pop, Shift, Unshift
At the array end, push (add), pop (remove)
At the array start, unshift (add) unshift @z, 9;, shift (remove) $beginning = shift @z;

my @i = <>;
chomp @i; #remove all newlines

Hash
%translate = ( 'atg' => 'M', 'taa' => '*', 'ctt' => 'L', 'cct' => 'P', );
@keys = keys %translate;
@values = values %translate;

lec05 - Advanced Perl programming
(see bioinf.mbb.sfu.ca / lec05 / lec05.pl)

Filehandles
- open FILEHANDLE, "+<cosmids.fasta" (read and write)
- read "my.in" or "<my.in"
- out ">my.out"
- append ">>my.out" or open(FILEHANDLE, "my.in")

Basic input/output (I/O)
- close: This will also happen automatically when your program ends, or if you reuse the same filehandle name.
- close IN or warn "Errors while closing filehandle: $!";
- file operators: print "Is a directory!\n" if -d '/usr/home';
- command line arguments: $argument = shift;
- the <> operator waits for user input
- chomp() removes trailing newline character
- chop() removes the last character
- STDIN Standard input, read input; STDOUT Standard output, used to write data out; STDERR Standard error, used for diagnostic messages
- unless ($#ARGV + 1 == 1) { die "Need 1 parameter\n"; }

Comparisons
- numeric: ==, !=, <, >, <=, >=
- string: eq, ne, gt, lt, =~ (pattern matching), !~ (not of =~)

Control structures: if and unless
- if ($a < $b) { print "AB\n"; } else { print "A==B\n";
- Truth in Perl, empty, 0, undefined value are all false; everything else is true

Loops
- while ($i < 10) { print $i, "\n"; $i++;} # stops when condition becomes false
- until ($ < 0) { print $i, "\n"; $i--;} # stops when condition becomes true
- foreach $fruit ('apple', 'banana', 'orange') { print $fruit,"\n"; }
- for ($i = 0; $i < 5; $i++) { print $i,", "; } print "\n";
- infinite loop: for (;;) {} and while(1) {}

Regular expression
- A regular expression is a string template against which you can match a piece of text.
- $_ is matched by default; $_ is a special variable for line readin by calling
- $at = 'cat'; if ( $at =~ /At/i ) { print "Found regex\n" }
- $at = 'cat'; if ( $at !~ /bat/ ) { print "Regex not found\n" }
- "." character matches everything except newlines
- Predefined characters, \d digit [0-9], \w word [a-ZA-Z_0-9], \s whitespace [\t\n\r], \S non-white space
- anchors: /^Start/ /End^/ /\bWord\b/
- quantifiers: ? {0,1} like true or false :D; + {1,*}; * {0,*}; {3} exactly three; {4, } at least 4 times
- /goa?t/ matches "goat" and "got". Also any text that contains these words.
- if there's a possibility that the condition can be met, then it will be true, doesn't matter if it satisfies all criteria
eg if ('goo' =~ /go?/) { print "goo matched\n"; }
- grouping: /Who's afraid of the big (bad )?wolf\?/;
# matches "Who's afraid of the big bad wolf?" and
# "Who's afraid of the big wolf?"
- String substitution:
$h = "Who's afraid of the big bad wolf?";
$h =~ s/w.+f/goat/;
# yields "Who's afraid of the big bad goat?"
- Global matches: /g will match as many times as it can
- trick: @frame1 = $sequence =~ /(.{3})/g; # match 3 letters globally and convert scalar to array frame1
- my @col = split(/\t/, $_); my $id = $col[0];

Advanced topics:
Subroutine
- subroutines in Perl: blocks of code that can accept, operate on, and/or return variables
- call: say_hello_to("Dan");
- defn: sub say_hello_to { my $name=shift; }

module
- use File::Basename; dirname('/usr/bin'); basename('/usr/bin/perl');
- $ perldoc File::Basename

BioPerl
- http://bioperl.org
A bioinformatics toolkit for:
- format conversion, report processing, data manipulation, sequence analyses, batch processing

[ppt@bioinf tut10]$ perl -e "use File::Basename; print basename('/usr/bin/perl'); "
perl[ppt@bioinf tut10]$

Test if file exists
$ perl -e 'print "f" if -e "test.pl"'

Concatenate two arrays, slice, push:
$ cat ./list-concat.pl
#!/usr/bin/perl -w

my @a = ('a','b','c');
my @b = (1,2,3);
my @c = (@a, 0, @b);
my @d = ('d','e','f');
push @d, (0, @b);

print "A=@a\n";
print "B=@b\n";
print "C=@c\n";
print "C[1..3]=@c[1..3]\n";
print "d=@d\n";

$ ./list-concat.pl
A=a b c
B=1 2 3
C=a b c 0 1 2 3
C[1..3]=b c 0
d=d e f 0 1 2 3

Slicing arrays:
print "C[1..3]=@c[1..3]\n"; # outputs C[1..3]=b c 0


qw = quote words - given a string of unquoted words separated by spaces, each word is surrounded by quotes eg.

my @qstr = qw (This is the world I live in.); # output qstr=This is the world I live in.

So you don't need to quote each word or put commas between words when using qw

you can do this too

my @bstr = (This, is, the, world, I, live, in,);

but this throws an error because of the period after 'in'

my @bstr = (This, is, the, world, I, live, in.,);

Bioperl in action

Reads a FASTA file with multiple sequences (delimited by >) then print seq of length greater than 6000.

1 #!/usr/bin/perl
2 #
3 # print seq of length greater than 6000
4 #
5 #
6
7 use Bio::SeqIO;
8
9 unless ($#ARGV+1 == 1) { die "Need one argument\n"; }
10
11 my $infile = shift;
12
13 # !!!! use => not ->
14 my $file_obj = Bio::SeqIO->new(-file=>$infile,-formatr=>"Fasta");
15 my $cutoff = 6000;
16
17 while (my $seq_obj = $file_obj->next_seq() ) {
18 my $id = $seq_obj->id();
19 my $desc = $seq_obj->desc();
20 my $len = $seq_obj->length();
21
22 if ($len > $cutoff) {
23 # !!!!!!!!!!!! note: this prints reference
24 #print "$seq_obj->id()\t$seq_obj->desc()\n";
25
26 print "ID=$id\tDESC=$desc\tLEN=$len\n";
27 }
28 }
29
30

Imagemaps in HTML

Nifty trick to use image maps in HTML


Move the mouse over the image, and look at the status bar to see how the
coordinates change.

img src="planets.gif"
ismap width="146" height="126"

And

img src="planets.gif"
width="145" height="126"
usemap="#planetmap"

map id="planetmap" name="planetmap"

area shape="rect"
coords="0,0,82,126"
alt="Sun"
href="sun.htm"

Code from W3Schools

MediaConvert

Converted OpenOffice .ODT file to MS Word .DOC using this http://media-convert.com/

Thermodynamics

Galerie de flocons de neige, par Jerome Mathey et Valérian Mazataud. 2007 . voir Galerie de photos de flocons ou neige

Heard that it's going to be 0 degC tonight, had the notion of being isothermal at 0 degC then I googled it up and found out that adiabatic is more accurate ...

An isothermal process is a change in which the temperature of the system stays constant: ΔT = 0. This typically occurs when a system is in contact with an outside thermal reservoir (heat bath), and the change occurs slowly enough to allow the system to continually adjust to the temperature of the reservoir through heat exchange. An alternative special case in which a system exchanges no heat with its surroundings (Q = 0) is called an adiabatic process. In other words, in an isothermal process, the value ΔT = 0 but Q ≠ 0, while in an adiabatic process, ΔT ≠ 0 but Q = 0.
http://en.wikipedia.org/wiki/Isothermal

Monday, November 17, 2008

Sleep, Braveheart


Haven't been getting too many sleep these days, slowly killing myself by overdoing it, first selected a novel gene (was too boring), then the next gene (doesn't satisfy the project criteria of homology) then hopefully this last one is going to be the last. It better because the deadline is in 2 weeks! If I stucked with my first gene then I would have been looong done by now but heck, I'm learning more stuff going down this ragged terrain, so thinking back it's all worth it in the end, no matter what the outcome is, the journey I think matters more than the destination.

As an aside, read an article about standing out in a crowd and this writer mentions the old Braveheart quote,

"Everybone dies, but not everyone lives"

and this one is good too

"Challenge, by definition is the death of the old and the birth of the new."

Desrochers.

Wednesday, November 12, 2008

Knife

Knife ... cuts like a knife ... how will I ever heal ... I'm so deeply wonded .... Knife

Rockwell "Cuts Like A Knife"

Shouldn't have checked, shouldn't have visited the blog site ... at least someone's happy I guess.

Tuesday, November 11, 2008

Logo Design


Hmm... As far as I can remember, I've entered 3 logo contests to date. First one was about a restaurant, drew a plate (with a fork and spoon too), it was pretty cool and but didn't win :( Second logo was for a school union group, drew a building that resembles the place, drew tiny little windows too, again, didn't win :( Both were drew using Photoshop on Windows. But this last one, submitted yesterday was for the school's new mail webapp, submitted two of them, this time, using Vector, that's right, adios Photoshop, and welcome Inkscape. We'll see what happens this time ... But hey, even if I don't win, I gotta admit, these recent logos actually look like logos for a change and it's in vector so no loss of quality when resized, and it has only two colors, 2 logos in 4 hrs, not bad for a newbie!

Saturday, November 8, 2008

Web programming

Spent the last two days working on a site 20% writing code and another 80% uploading/refreshing/testing/googling, learned some more javascript/php/css along the way. Fun stuff. Had this crazy idea of doing a web-based sequence viewer too.

PyMol script
# show all surfaces with 50% transparency.
set transparency, 0.5
set ray_opaque_background, off
png ~/Videos/dna1.png, dpi=300

PHP DB
http://www.designdetector.com/archives/04/10/FlatFileDatabaseDemo.php
http://www.designdetector.com/archives/04/12/FlatFileDatabaseDemo2.php

IFrame Height Fix
http://guymal.com/mycode/100_percent_iframe/

XSLT
http://xslt.sitesfree.com/

CSS
http://www.webreference.com/programming/css_frames/



Now on to homework ...

Thursday, November 6, 2008

Graduate Studies

So, been thinking about graduate school or not,

I say to myself, once I find a good topic that I want to do, correction, really really want to do, then I'll go for it.... Maybe I'll take 1 yr break or something, spend time volunteering, free landscape, work part-time or something ...

Links about what graduate school is:
http://www.cs.sfu.ca/~mori/gradStudies.pdf
http://bioinfo.icapture.ubc.ca/mywiki/GradStudentAdvice

Presentation Tips

Some presentation tips from http://web.cba.neu.edu/~ewertheim/skills/oral.htm#strategy

Wednesday, November 5, 2008

US Presidential

I guess I should at least document this somewhat monumental event (I'm not really into politics), but Barack Obama (Democratic party) won the election.

Isn't it nice?

Isn't it nice to get a simple 'hi' from someone you don't see/talk/communicate/interact with everyday?


.... then on the other hand, waiting for a reply take its toll on you as well, Yin-yang of life? Perhaps.

Tuesday, November 4, 2008

A Lesson on Exponential

Went to a speaker today, something todo with the past, present and future of technology. Anyways, the speaker pointed out something about exponentials, so 2^x. Then he gives this example (from Mathworld)

Assuming it were possible to fold paper without restriction, the height of a piece of folded paper would double in thickness each time it was folded. Since one sheet of typical 20-pound paper has a thickness of about 0.1 millimeter, folding 50 times (if this were physically possible, which of course it is not) would produce a wad of height 1.13*10^11 meters, and folding one more time would make the stack higher than the distance between the Earth and Sun.

I didn't believe it at first, I did some rough calculation, so 2^50, then to simplify, 2^10 = 1024 then 1024^5 is approx 10^(15). Big number, then I go, ok, assuming the paper is 1 cm thick, so in meter terms, move 2 zeroes over, so 10^12 m. OK, still sizable I think, Earth's bigger than that I thought. So I go home, look at my friend Wikipedia, and found out that Earth's diameter is only 12,742 km. I go what, only that much? And Mount Everest is 8,848 m above local sea level and the Mariana Trench is 10,911 m below local sea level.

Hmmm.... I guess he was right after all, gotta work on my familiarity on how big stuff are, but at least I learned something new :D

Some more numbers (Wikipedia)
  • football field length 100 yd (91 m) long. Including the end zones it is 120 yd (110 m),
  • empire state building 449 m
  • speed of light 3.00×108 m/s (btw, I should've known that the diameter of earth should be less than this!)

Perl chop-sequence.pl

Perl code that takes a sequence and a read length (N) and outputs reads of size N that overlaps by two nucleotides.

Sample run
[ppt@bioinf tut09]$ ./chop-sequence.pl aacgtacgcttt 5 ; cat ./chopped-sequence.txt
aacgt
gtacg
cgctt
ttt

Code
1 #!/usr/bin/perl
2 #
3 # 1. Takes as input two parameters: (i) a DNA sequence and (ii) the size N of the chopped fragments.
4 # 2. Generates fragments of size N that are such that they overlap in two nucleotides with another fragment at its right side. Each fragment is writte n in a separate line in a file called chopped-sequence.txt.
5 # file: chop-sequences.pl
6
7 my $arg_count = $#ARGV + 1;
8 unless ($arg_count == 2) { die "Need two arguments $!\n"; }
9
10 my $out_file = "chopped-sequence.txt";
11 my $seq = shift;
12 my $chop_len = shift;
13 my $seq_len = length $seq;
14 my $overlap = 2;
15
16 open OUT, ">$out_file" or die "Can't create output file $out_file $!\n";
17
18 if ($seq_len <= $chop_len) {
19 #print "$seq\n";
20 print OUT "$seq\n";
21 close OUT;
22 exit;
23 }
24
25 for (my $i = 0; $i < $seq_len; $i += $chop_len - $overlap) {
26 $contig = substr $seq, $i, $chop_len;
27
28 # for this case, don't output tc on second line
29 # acctcacctcc 5
30 if ((length $contig) == $overlap) {
31 last;
32 }
33
34 #print "$contig $seq $i $chop_len $seq_len \n";
35 print OUT "$contig\n";
36
37 # handle boundary conditions, two case
38 # acctcc 5
39 if ( (length $contig) < $chop_len ) {
40 # reached the end
41 last;
42 }
43 }
44 close OUT;
45

Trivia:
Q. How do you copy-n-paste this code?
A. One way is to use a 1-liner awk script to filter out the first two columns.

tiny RNAs


Victor Ambros, David Baulcombe, and Gary Ruvkun
For discoveries that revealed an unanticipated world of tiny RNAs that regulate gene function in plants and animals

In summary, Ambros was working on the lin-4 gene in C. elegans (worms) which advances worm development. Another gene, lin-14 which Ruvkun is working on works the opposite way (antithesis they call it), it stops development advancement. So, the thing is, this lin-4 gene is only 22 nucleotides (nt) long but useful RNAs are typically 75 nt long. Now this tiny RNA (lin-4) binds to the 3' UTR (untranslated region downstream of the protein coding region) of lin-14, thereby inhibiting the development inhibition (double negative :D) and so development continues. So lin-4 works like a tiny RNA inhibitor of lin-14. Fun stuff.


Diagram from the laskerfoundation link below.

http://www.laskerfoundation.org/awards/2008_b_description.htm

JW FLV MEDIA PLAYER 4.2

JW FLV MEDIA PLAYER 4.2

http://www.jeroenwijering.com/?item=JW_FLV_Player

Glioma


A glioma is a type of cancer that starts in the brain or spine. It is called a glioma because it arises from glial cells. The most common site of gliomas is the brain.[1]

http://en.wikipedia.org/wiki/Glioma



Glial cells, commonly called neuroglia or simply glia (Greek for "glue"), are non-neuronal cells that provide support and nutrition, maintain homeostasis, form myelin, and participate in signal transmission in the nervous system. In the human brain, glia are estimated to outnumber neurons by about 10 to 1.[1]

Glial cells provide support and protection for neurons, the other main type of cell in the nervous system. They are thus known as the "glue" of the nervous syste

m. The four main functions of glial cells are to surround neurons and hold them in place, to supply nutrients and oxygen to neurons, to insulate one neuron from another, and to destroy pathogens and remove dead neurons. They also modulate neurotransmission.[2]

http://en.wikipedia.org/wiki/Glial_cell