On Github ernstki / fosem2016-cressint-slides
Weirauch Transcription Factor Research Lab Center for Autoimmune Genomics and Etiology Cincinnati Children's Hospital Medical Center
Kevin Ernst / @ernstki slides: tf.cchmc.org/s/fosem2016or, What Happens When All the Graduate Students You Had Working on a Project Critical to Your Lab Graduate but the New Guy Says He Knows 'Some Web Stuff'
Computer Science Undergraduateat the University of Cincinnati minoring in Anthropology
The Weirauch Lab Studies mechanisms of gene transcriptional regulation, with a focus on transcription factors
and how they relate to the origins of diseases in humans (e.g., systemic lupus erythematosus)
We are between 3 and 8 people, depending on the season
Source: CressInt FAQ
Tab-delimited format which describes locations within chromosomes of regions of interest.
chr1 11873 14409 uc001aaa.3 0
Specification describes up to 6 columns (BED6): chr, start, stop, label, score, and strand (+/-)
UCSC Genome Browser FAQ entry on BED file formatCressInt was developed continuously Mar - Apr 2015, with another large burst in August around the time of final exams :(
Hey boss, should I <long-winded description of some trivial problem, one workable solution, and three unworkable ones>?
Do it. (send)
+ - - - - - - - - - - + +----------------------+ +----------------------+ | +----\ | | | | Web user | | | \-------+ | +----------------------+ interface | | | | | | | | | |/var/www/html| | +----------------------+ +-------------+ | | | | +----->| LSF (HPC cluster) | | | | | | +-------------+ | | +----------------------+ +-------------+ | +------------+ | | | | | +-------------+ | | | | | | +----------------------+ | | +--+---->| Perl CGI |---+-+ | . | | +-------------+ | | | | | | | . | +--------+ | | +------------+ | | . | | | Submit |---+----+ | | +----------------------+ +--------+ +----------------------+ | | +---| FastCGI / PHP +---+ - - - - - - - - - - - | +----------------------+ | +----------------------+ ^ | | Apache 2.2 | | | | | | +----------------------+ +--->| MySQL 5.x | +--------------+ | | | | | CentOS 6 (OS) | +----------------------+ | | | CentOS | +----------------------+ +----------------------+
#!/usr/bin/env perl $"x=$%="@ARGV";$~=$;='( +)';while($%>>$:++){if($"=~/$~$/^$"=~/$;$/){$ |=$?=$:>2||die"prime\n";eval"print length(\$$?)".($:>++$?&&"/length(\$ $?).'*'")while$:>$?;die$/}$;=$~;$~=~s~.*~^($&\\1+)~;$~=~s;\d+;1+$&;eg}
Perl can look like line noise.
The object system was bolted-on as an afterthought.
At least the Perl language is not a moving target.
But a single Perl CGI cannot handle 1000s of requests per second
Source: perlmonks.org<?php // Loop infinitely and fill up '/' with a 5 GB Apache access_log $fh = fopen("doesntexist.txt", "r"); while (!feof($fh)) echo "TURTLES!\n"; ?>
TURTLES! PHP Warning: feof() expects parameter 1 to be resource, boolean [...] TURTLES! PHP Warning: feof() expects parameter 1 to be resource, boolean [...] TURTLES! PHP Warning: feof() expects parameter 1 to be resource, boolean [...] TURTLES! PHP Warning: feof() expects parameter 1 to be resource, boolean [...] TURTLES!^C
feof() returns TRUE if the file pointer is at EOF or an error occurs (including socket timeout); otherwise returns FALSE.
Reference: PHP manual feof();)