SlideShare une entreprise Scribd logo
1  sur  68
Télécharger pour lire hors ligne
Research Computing
& Bioinformatics
@yannick__
y.wurm@qmul.ac.uk

QMUL Masters/PhD 11-2013
http://yannick.poulet.org
© Alex Wild & others
Atta leaf-cutter ants

© National Geographic
Atta leaf-cutter ants

© National Geographic
Atta leaf-cutter ants

© National Geographic
Oecophylla Weaver ants

© ameisenforum.de
Fourmis tisserandes

© ameisenforum.de
Oecophylla Weaver ants

© ameisenforum.de
© wynnie@flickr

© forestryimages.org
Forelius pusillus

Tofilski et al 2008
Forelius pusillus hides the nest entrance at night

Tofilski et al 2008
Forelius pusillus hides the nest entrance at night

Tofilski et al 2008
Forelius pusillus hides the nest entrance at night

Tofilski et al 2008
Forelius pusillus hides the nest entrance at night

Tofilski et al 2008
Forelius pusillus hides the nest entrance at night
Avant

Workers staying outside die
« preventive self-sacrifice »
Tofilski et al 2008
Dorylus driver ants: ants with no home

© BBC
Animal biomass (Brazilian rainforest)

Soil fauna excluding
earthworms,
ants & termites
Spiders
Earthworms
Mammals
Ants & termites
Other insects

Birds
Reptiles
Amphibians

from Fittkau & Klinge 1973
(my background)

(my interests)
Big data is invading biology
Any lab can
sequence
anything!

454
Illumina
Solid...

This changes
everything.
Big data is invading biology
•

Genomics
•

Biodiversity assessments

•

Stool microbiome sequencing

•

Personalized medicine

•

Cancer genomics

•

Sensor networks - e.g tracking microclimates

•

Aerial surveys (Drones) - e.g. crop productivity; rainforest cover

•

Camera traps
Plan:

1. Unix/High Performance Computing/Cluster stuff
2. Programming in R
3. TBD
Unix/High Performance
Computing/Cluster
Recap/Questions

•

How do you connect to Apocrita?

•

Where do you run jobs?

•

How do you run something on Apocrita?
Examples
Case Study 2
• Create ssh private/public key-pair
• Log in to the head node using ssh key
• Connect to sm11 via ssh
– Hint: use agent forwarding: -A

•
•
•
•

Create ssh shortcuts (on your local machine)
Connect to sm11 via ssh proxy
Start sample application (top, or xclock)
Move it between foreground/background
– Hint: use bg and fg

• Start the application in the background
– Hint: use & (ampersand)
Case Study 2 (2)
• Monitor processes
– Hint: use top, ps, pstree

• Experiment with top parameters (man top)
• Stop selected process
– Hint: use kill

• Start multiple process of the same thing
• Check if they running
– Hint: use ps and grep, pstree and top

• Stop all of them
– Hint: use killall
Case Study 3
• Log in to sm11 via ssh
• Start virtual terminal
– Hint: use screen

• Start a process in it (use top)
• Detach from the screen session
– Hint: use Ctr+a d

• Log out and back in
• List current screen sessions
– Hint: screen -ls
Case Study 3 (2)
• Attach to screen session
– Hint: screen –r [sessionID]

• Destroy screen session
– Hint: Ctr+a k

• Check if the screen session is destroyed
• Experiment with nohup and disown
– Hint: use nohup application name
– Hint: use disown –h jobID

• Check if they are running
Case Study 4
• Log in to the head node via ssh
• Obtain the test dataset file from
http://www.antgenomes.org/~yannickwurm/tmp/Si_gnF.454scaffolds.fasta

• Compress it using gzip
• Compare the sizes
– Hint: use ls –la[h], or du [–s]

• Analyse the contents of the gzipped archive
– Hint: use zcat

• Search for a pattern in the gzipped archive
– Hint: use zgrep

• Extract the contents of the archive
Case Study 4 (2)
• Compress multiple text files into single archive
– Hint: use tar

• Compress a directory containing multiple files
– Hint: use tar

• tar
• or
•

• List the contents of the tar archive

zip

– Hint: use tar -tvf
Case Study 5
• Log in to sm11
• Download code from
https://github.com/lh3/seqtk/archive/master.zip

•
•
•
•

Extract the contents
Compile
Analyse the results of the compilation
Add the binaries to the PATH
Case Study 5 (2)
• Run it on the Si_gnF.scaffold.fasta data
– Use it to extract the following sequences
Si_gnF.scaffold05788
Si_gnF.scaffold05760
Si_gnF.scaffold01035
Si_gnF.scaffold07345
Si_gnF.scaffold07801
Si_gnF.scaffold07087
Si_gnF.scaffold05362
Si_gnF.scaffold08533
Si_gnF.scaffold02116
Si_gnF.scaffold08406
Case Study 5 (3)
• Can it run on gzipped version?
• If so how?

• Repeat for the code from
https://github.com/stamatak/standardRAxML/archive/master.zip
Programming in R

• Regular

Expressions

• Functions
• Loops
Programming in R
Quick refresher
• creating a vector
• three synonyms:
> myvector
> myvector
> myvector
> myvector
[1] 5 6

<- 5:11
<- seq(from=5, to=11, by=1)
<- c(5, 6, 7, 8, 9, 10, 11)
7

8

9 10 11

• accessing

a subset
• of a vector

> bigvector <- 150:100
> bigvector
[1] 150 149 148 147 146 145 144 143 142 141 140 139 138 137 136 1
[20] 131 130 129 128 127 126 125 124 123 122 121 120 119 118 117 1
[39] 112 111 110 109 108 107 106 105 104 103 102 101 100
> mysubset <- bigvector[myvector]
> mysubset
[1] 146 145 144 143 142 141 140

> subset(bigvector, bigvector > 120)
[1] 150 149 148 147 146 145 144 143 142 141 140 139 138 137 136 1
[20] 131 130 129 128 127 126 125 124 123 122 121
Regular expressions:
Text search on steroids.

Regular expression
David
Dav(e|id)
Dav(e|id|ide|o)
At{1,2}enborough

Atte[nm]borough
At{1,2}[ei][nm]bo{0,1}ro(ugh){0,1}

Finds
David
David, Dave
David, Dave, Davide, Davo

Attenborough,
Atenborough
Attenborough,
Attemborough
Atimbro, attenbrough, etc.

Easy counting, replacing all with “Sir David Attenborough”
Regular expressions
Synonymous with
d
[:digit:]

[0-9]

[A-z]

[A-z], ie [A-Za-z]

s

whitespace

.

any single character

.+

one to many of anything

b*

between 0 and infinity letter ‘b’

[^abc]

any character other than a, b or c.

(

(

[:punct:]

any of these: ! " # $ % & ' ( ) * + ,
- . / : ; < = > ? @ [  ] ^ _ ` { |

• Google “Regular
• ?regexp

expression cheat sheet”
• for

subsetting/counting:
grep()

• for

replacing:
gsub()
Functions
•R

has many. e.g.: plot(), t.test()

• Making

your own:

tree_age_estimate <- function(diameter, species) {
[...do the magic...
# maybe something like:
growth.rate <- growth.rates[ species ]
age.estimate <- diameter / growth.rate
...]
return(age.estimate)
}
>
+
>
+

tree_age_estimate(25, "White Oak")
66
tree_age_estimate(60, "Carya ovata")
190
“for”
Loop

> possible_colours <- c('blue', 'cyan', 'sky-blue', 'navy blue',
'steel blue', 'royal blue', 'slate blue', 'light blue', 'dark
blue', 'prussian blue', 'indigo', 'baby blue', 'electric blue')
> possible_colours
[1] "blue"
"cyan"
"sky-blue"
[5] "steel blue"
"royal blue"
"slate blue"
[9] "dark blue"
"prussian blue" "indigo"
[13] "electric blue"
> for (colour in possible_colours) {
+
print(paste("The sky is oh so, so", colour))
+ }
[1]
[1]
[1]
[1]
[1]
[1]
[1]
[1]
[1]
[1]
[1]
[1]

"The
"The
"The
"The
"The
"The
"The
"The
"The
"The
"The
"The

sky
sky
sky
sky
sky
sky
sky
sky
sky
sky
sky
sky

is
is
is
is
is
is
is
is
is
is
is
is

so,
so,
so,
so,
so,
so,
so,
so,
so,
so,
so,
so,

oh
oh
oh
oh
oh
oh
oh
oh
oh
oh
oh
oh

so
so
so
so
so
so
so
so
so
so
so
so

blue"
cyan"
sky-blue"
navy blue"
steel blue"
royal blue"
slate blue"
light blue"
dark blue"
prussian blue"
indigo"
baby blue"

"navy blue"
"light blue"
"baby blue"
Lets do it
Regular expressions.

http://goo.gl/diSGvb
Lets do it part 2

http://goo.gl/K0Nq0N
Reproducible Research &
Scientific Computing
Why care?
Some sources of inspiration
(steve@practicalcomputing.org),†† University of Wisconsin (khuff@cae.w
Mary University of London (mark.plumbley@eecs.qmul.ac.uk),¶¶ Unive
University D.A. Aruliah † , C. Titus Brown ‡ , Neil P. ChueUniversityDavisWisconsin Guy ,
(ethan@weecology.org), and ††† Hong § , Matt of ¶ , Richard T. (wils
∗
Greg Wilson ,

Best Practices for Scientific Computing

Steven H.D. Haddock ∗∗ , Katy Huff †† , Ian M. Mitchell ‡‡ , Mark D. Plumbley §§ , Ben Waugh ¶¶ ,
Ethan P. White ∗∗∗ , Paul Wilson †††

Software Carpentry (gvwilson@software-carpentry.org),† University of Ontario Institute of Technology (Dhavide.Aru
State University (ctb@msu.edu),§ Software Sustainability Institute (N.ChueHong@epcc.ed.ac.uk),¶ Space Telescope
(mrdavis@stsci.edu), University of Toronto (guy@cs.utoronto.ca),∗∗ Monterey Bay Aquarium Research Institute
(steve@practicalcomputing.org),†† University of Wisconsin (khuff@cae.wisc.edu),‡‡ University of British Columbia (mi
Mary University of London (mark.plumbley@eecs.qmul.ac.uk),¶¶ University College London (b.waugh@ucl.ac.uk),∗∗
University (ethan@weecology.org), and ††† University of Wisconsin (wilsonp@engr.wisc.edu)
∗

arXiv:1210.0530v3 [cs.MS] 29 Nov 2012

Scientists spend an increasing amount of time building and using
a
software. However, most scientists are never taught how to do this
i
efficiently. As a result, many are unaware of tools and practices that
d
would allow them to write more reliable and maintainable code with
p
less effort. We describe a set of best practices for scientific software
m
Scientists spend an increasing amount of time building and using research and software development [61
and open source experience,
development that have solid foundations in ical studies of scientific computing [4, 31,
software. However, most scientists are never taught how to do this
e
efficiently. As a improve are unaware of tools and practices thatand the reliability of their
and that result, many scientists’ productivity
development in general (summarized in
would allow them to write more reliable and maintainable code with
software. describe a set of best practices for scientific software practices will guarantee efficient, error-frt
less effort. We

ment, but used in concert they will red

f

development that have solid foundations in research and experience,
and that improve scientists’ productivitypeople, reliability of their
and the not computers. errors in scientific software, make it easie
1. Write programs for
the authors of the software time and effo
software.

Software is as important to modern focusing on the underlying scientific ques
scientific research as
2. Automate repetitive tasks.
3. Use important to tubes. From groups
the test modern scientific research
telescopesasand computer to record history. as that work exclusively
Software is
1
telescopes andMaketubes. From groups that work exclusively
test incremental changes.
4.
on computationalto traditional laboratory and field 1. laboratory andpeople, not c
problems, to traditional Write programs for field
on computational problems, control.
5. Use version
Scientists writing software need to writeS
scientists, more and more of the daily operation of science re- operation of science rescientists, more and more of the daily cutes correctly and can be easily read and
6. computers. This includes the development of
volves aroundDon’t repeat yourself (or others).
c
programmers (especially the author’s fut
volves 7. Plan for mistakes.
around computers. This includes the development of
new algorithms, managing and analyzing the large amounts
cannot be easily read and understood it is
p
of data algorithms, managing andworksand
that are generated in single research projects, correctly.the large amounts
new 8. Optimize software only after it analyzingknow that it is actually doing what it i
to
combining disparate datasets to assess synthetic problems.
c
9. Document the designown software single research projects, and must t
and purpose ofthese rather than itssoftware developers
code be productive, mechanics.
of Scientists that are generated in for
data typically develop their
aspects of human cognition into account
t
10. Conduct requires substantial domain-specific
purposes because doing so code reviews.
human working memory is limited, huma
R style guide

• http://google-styleguide.googlecode.com/svn/trunk/Rguide.xml
Education

A Quick Guide to Organizing Computational Biology
Projects
William Stafford Noble1,2*
1 Department of Genome Sciences, School of Medicine, University of Washington, Seattle, Washington, United States of America, 2 Department of Computer Science and
Engineering, University of Washington, Seattle, Washington, United States of America

Introduction

under a common root directory. The
understanding your work or who may be
exception to this rule is source code or
evaluating your research skills. Most comMost bioinformatics coursework focusscripts that are used in multiple projects.
monly, however, that ‘‘someone’’ is you. A
es on algorithms, with perhaps some
Each such program might have a project
few months from now, you may not
components devoted to learning prodirectory of its own.
remember what you were up to when you
gramming skills and learning how to
Within a given project, I use a top-level
created a particular set of files, or you may
use existing bioinformatics software. Unorganization that is logical, with chrononot remember what conclusions you drew.
fortunately, for students who are preparlogical organization at the next level, and
You will either have to then spend time
ing for a research career, this type of
logical organization below that. A sample
reconstructing your previous experiments
curriculum fails to address many of the
project, called msms, is shown in Figure 1.
or lose whatever insights you gained from
day-to-day organizational challenges asAt the root of most of my projects, I have a
those experiments.
sociated with performing computational
data directory for storing fixed data sets, a
This leads to the second principle,
experiments. In practice, the principles
results directory for tracking computawhich is actually more like a version of
Figure
names are
typeface, and filenames are
behind organizing and documenting 1. Directory structure for a sample project. Directorydo, youin large tional experiments in smaller typeface. Only a subset of
Murphy’s that the dates are formatted ,year.-,month.-,day. so that they can bepeformed on that data,
the files are shown here. NoteLaw: Everything you
sorted in chronological order. The
computational experiments are often code src/ms-analysis.c have to to do over again. and is documented in doc/ms-analysis.html. The README
source
is compiled
create bin/ms-analysis a doc directory with one subdirectory per
will probably
files in
what date. The driver script results/2009-01-15/runall
learned on the fly, and this learning is the data directories specify who downloaded the data files from what URL on manuscript, and directories such as src
automatically Inevitably, you will discover some flaw split3, corresponding to three cross-validation splits. The bin/parsegenerates the three subdirectories split1, split2, and in
sqt.py
strongly influenced by personal predilec- script is called by bothpreparation driverthe data being
for source code and bin for compiled
your initial of the runall of scripts.
doi:10.1371/journal.pcbi.1000424.g001
tions as well as by chance interactions
binaries or scripts.
analyzed, or you will get access to new
with collaborators or colleagues.
Within the data and results a complete
data, the distinction be- The your paramThese types of entries provide directowith this approach,or you will decide that Lab Notebook
The purpose of this article is to describe data and results may of a particular model was not
picture of the development a similar,
tween
not be useful.
ries, it is often tempting to apply of the project
eterization
In parallel with this chronological
over time.
Instead,
could
one good strategy for carrying out com- onebroad imagine a top-level means structure,the find itlogical toorganization. For example, you
enough. This directory that I
useful
directory called something like experiIn practice, I ask members of my
putational experiments. I will not describe , with subdirectories with names like last week, chronologically organizedhave two or group to data sets notebooks
maintain a or even
may lab research three put their lab against
ments
experiment you did
notebook. This is a document that resides
2008-12-19. Optionally, the directory
profound issues such as how to formulate
which
plan to password protection if
the set of experiments you’veroot of the results directory andyou online, behind benchmark your
in the been workname
also include a
or two
necessary. When I meet with a member
hypotheses, design experiments, or draw might ing on over word past month, will probably
that records your progress algorithms, ofso lab or a could team, we can one
in detail.
indicating the topic of the the
experiment
my you project create refer
Entries in the notebook
conclusions. Rather, I will focus therein. In practice,to single experiment you have organized should be dated, for each of lab notebook, focusing on
on
directory
need a be redone. If and they should be relatively verbose, with to the online them under data.
will often require more than one day of
the current entry but scrolling up to
relatively mundane issues such as organizthis
and documented your work clearly, thenimages In my experience, entries approach is risky,
links or embedded
or tables
work, and so you may end up working a
previous
as necessary. The URL
ing files and directories and documenting or repeating creating a new displaying the results of the experiments the can also be provided toof yourcollabobecause
logical structure remote final
few days
more before the experiment with the new

In each results folder:
•script getResults.rb or WHATIDID.txt or MyAnalysis.Rnw
•intermediates
•output
Take notes in Markdown

“compile”
to html, pdf,
knitr (sweave)Analyzing & Reporting in a single file.
MyFile.Rnw
documentclass{article}
usepackage[sc]{mathpazo}
usepackage[T1]{fontenc}
usepackage{url}
begin{document}

Also works with
Markdown
instead of LaTeX!

### in R:
library(knitr)
knit(“MyFile.Rnw”)
# --> creates MyFile.tex

<<setup, include=FALSE, cache=FALSE, echo=FALSE>>=
# this is equivalent to SweaveOpts{...}
opts_chunk$set(fig.path='figure/minimal-', fig.align='center', fig.show='hold')
options(replace.assign=TRUE,width=90)
@

title{A Minimal Demo of knitr}

### in shell:
pdflatex MyFile.tex
# --> creates MyFile.pdf

author{Yihui Xie}

A Minimal Demo of knitr

maketitle
You can test if textbf{knitr} works with this minimal demo. OK, let's
get started with some boring random numbers:

Yihui Xie
February 26, 2012

<<boring-random,echo=TRUE,cache=TRUE>>=
set.seed(1121)
(x=rnorm(20))
mean(x);var(x)
@

You can test if knitr works with this minimal demo. OK, let’s get started with s
numbers:

The first element of texttt{x} is Sexpr{x[1]}. Boring boxplots
and histograms recorded by the PDF device:

set.seed(1121)
(x <- rnorm(20))

<<boring-plots,cache=TRUE,echo=TRUE>>=
## two plots side by side
par(mar=c(4,4,.1,.1),cex.lab=.95,cex.axis=.9,mgp=c(2,.7,0),tcl=-.3,las=1)
boxplot(x)
hist(x,main='')
@
Do the above chunks work? You should be able to compile the TeX{}

## [1] 0.14496 0.43832
## [10] -0.02531 0.15088
## [19] 0.13272 -0.15594
mean(x)
## [1] 0.3217
var(x)

0.15319
0.11008

1.08494 1.99954 -0.81188
1.35968 -0.32699 -0.71638

0.16027
1.80977

0
0
Choosing a programming language
Good for

Bad:

Excel

quick & dirty

R

numbers, stats, genomics

easy to make
mistakes
programming

Unix commandline (i.e., shell,
i.e., bash)

Can’t escape it.
Quick & Dirty

programming,
complicated things

Java

User interfaces in the
1990s.

overcomplicated.

Perl

1980s.

Everything.

Python

scripting, text

Ruby

scripting, text

Javascript

web apps
Ruby.

“Friends don’t let friends do Perl” - reddit user
example: reverse the contents of each line in a file
### in PERL:
open INFILE, "my_file.txt";
while (defined ($line = <INFILE>)) {
chomp($line);
@letters = split(//, $line);
@reverse_letters = reverse(@letters);
$reverse_string = join("", @reverse_letters);
print $reverse_string, "n";
}
### in Ruby:
File.open("my_file.txt").each do |line|
puts line.chomp.reverse
end
More ruby examples.

5.times do
puts "Hello world"
end
# Sorting people
people_sorted_by_age = people.sort_by{ |person| person.age}
Getting help.
• In

real life: Make friends with people. Talk to them.

• Online:
• Specific discussion mailing lists (e.g.: R, Stacks, bioruby, MAKER...)
• Programming: http://stackoverflow.com
• Bioinformatics: http://www.biostars.org
• Sequencing-related: http://seqanswers.com
• Stats: http://stats.stackexchange.com
Lets do it part 2

http://goo.gl/K0Nq0N

Contenu connexe

Tendances

Keynote 1 - Engineering Software Analytics Studies
Keynote 1 - Engineering Software Analytics StudiesKeynote 1 - Engineering Software Analytics Studies
Keynote 1 - Engineering Software Analytics StudiesESEM 2014
 
Observable Node.js Applications - EnterpriseJS
Observable Node.js Applications - EnterpriseJSObservable Node.js Applications - EnterpriseJS
Observable Node.js Applications - EnterpriseJSYunong Xiao
 
Building a DSL with GraalVM (VoxxedDays Luxembourg)
Building a DSL with GraalVM (VoxxedDays Luxembourg)Building a DSL with GraalVM (VoxxedDays Luxembourg)
Building a DSL with GraalVM (VoxxedDays Luxembourg)Maarten Mulders
 
ch8-pv1-the-virtual-filesystem
ch8-pv1-the-virtual-filesystemch8-pv1-the-virtual-filesystem
ch8-pv1-the-virtual-filesystemyushiang fu
 
Pcapy and dpkt - tcpdump on steroids - Ran Leibman - DevOpsDays Tel Aviv 2018
Pcapy and dpkt - tcpdump on steroids - Ran Leibman - DevOpsDays Tel Aviv 2018Pcapy and dpkt - tcpdump on steroids - Ran Leibman - DevOpsDays Tel Aviv 2018
Pcapy and dpkt - tcpdump on steroids - Ran Leibman - DevOpsDays Tel Aviv 2018DevOpsDays Tel Aviv
 
BOSH deploys distributed systems, and Diego runs any containers
BOSH deploys distributed systems, and Diego runs any containersBOSH deploys distributed systems, and Diego runs any containers
BOSH deploys distributed systems, and Diego runs any containersBenjamin Gandon
 
Τα Πολύ Βασικά για την Python
Τα Πολύ Βασικά για την PythonΤα Πολύ Βασικά για την Python
Τα Πολύ Βασικά για την PythonMoses Boudourides
 
Low Overhead System Tracing with eBPF
Low Overhead System Tracing with eBPFLow Overhead System Tracing with eBPF
Low Overhead System Tracing with eBPFAkshay Kapoor
 
Slides Δικτυακών Υπολογισμών με την Python
Slides Δικτυακών Υπολογισμών με την PythonSlides Δικτυακών Υπολογισμών με την Python
Slides Δικτυακών Υπολογισμών με την PythonMoses Boudourides
 
Ανάλυση Δικτύων με το NetworkX της Python: Μια προκαταρκτική (αλλά ημιτελής ω...
Ανάλυση Δικτύων με το NetworkX της Python: Μια προκαταρκτική (αλλά ημιτελής ω...Ανάλυση Δικτύων με το NetworkX της Python: Μια προκαταρκτική (αλλά ημιτελής ω...
Ανάλυση Δικτύων με το NetworkX της Python: Μια προκαταρκτική (αλλά ημιτελής ω...Moses Boudourides
 
Java/Scala Lab: Руслан Шевченко - Implementation of CSP (Communication Sequen...
Java/Scala Lab: Руслан Шевченко - Implementation of CSP (Communication Sequen...Java/Scala Lab: Руслан Шевченко - Implementation of CSP (Communication Sequen...
Java/Scala Lab: Руслан Шевченко - Implementation of CSP (Communication Sequen...GeeksLab Odessa
 
Memory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native CollectionsMemory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native CollectionsYoshifumi Kawai
 
Digital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meetingDigital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meetingHenry Schreiner
 
KCDC - .NET memory management
KCDC - .NET memory managementKCDC - .NET memory management
KCDC - .NET memory managementbenemmett
 
Пример отчета по анализу вредоносного кода Zeus, подготовленного Cisco AMP Th...
Пример отчета по анализу вредоносного кода Zeus, подготовленного Cisco AMP Th...Пример отчета по анализу вредоносного кода Zeus, подготовленного Cisco AMP Th...
Пример отчета по анализу вредоносного кода Zeus, подготовленного Cisco AMP Th...Cisco Russia
 

Tendances (18)

Keynote 1 - Engineering Software Analytics Studies
Keynote 1 - Engineering Software Analytics StudiesKeynote 1 - Engineering Software Analytics Studies
Keynote 1 - Engineering Software Analytics Studies
 
Observable Node.js Applications - EnterpriseJS
Observable Node.js Applications - EnterpriseJSObservable Node.js Applications - EnterpriseJS
Observable Node.js Applications - EnterpriseJS
 
Building a DSL with GraalVM (VoxxedDays Luxembourg)
Building a DSL with GraalVM (VoxxedDays Luxembourg)Building a DSL with GraalVM (VoxxedDays Luxembourg)
Building a DSL with GraalVM (VoxxedDays Luxembourg)
 
ch8-pv1-the-virtual-filesystem
ch8-pv1-the-virtual-filesystemch8-pv1-the-virtual-filesystem
ch8-pv1-the-virtual-filesystem
 
Pcapy and dpkt - tcpdump on steroids - Ran Leibman - DevOpsDays Tel Aviv 2018
Pcapy and dpkt - tcpdump on steroids - Ran Leibman - DevOpsDays Tel Aviv 2018Pcapy and dpkt - tcpdump on steroids - Ran Leibman - DevOpsDays Tel Aviv 2018
Pcapy and dpkt - tcpdump on steroids - Ran Leibman - DevOpsDays Tel Aviv 2018
 
Streams for the Web
Streams for the WebStreams for the Web
Streams for the Web
 
PyHEP 2019: Python 3.8
PyHEP 2019: Python 3.8PyHEP 2019: Python 3.8
PyHEP 2019: Python 3.8
 
BOSH deploys distributed systems, and Diego runs any containers
BOSH deploys distributed systems, and Diego runs any containersBOSH deploys distributed systems, and Diego runs any containers
BOSH deploys distributed systems, and Diego runs any containers
 
Τα Πολύ Βασικά για την Python
Τα Πολύ Βασικά για την PythonΤα Πολύ Βασικά για την Python
Τα Πολύ Βασικά για την Python
 
Low Overhead System Tracing with eBPF
Low Overhead System Tracing with eBPFLow Overhead System Tracing with eBPF
Low Overhead System Tracing with eBPF
 
Slides Δικτυακών Υπολογισμών με την Python
Slides Δικτυακών Υπολογισμών με την PythonSlides Δικτυακών Υπολογισμών με την Python
Slides Δικτυακών Υπολογισμών με την Python
 
Ανάλυση Δικτύων με το NetworkX της Python: Μια προκαταρκτική (αλλά ημιτελής ω...
Ανάλυση Δικτύων με το NetworkX της Python: Μια προκαταρκτική (αλλά ημιτελής ω...Ανάλυση Δικτύων με το NetworkX της Python: Μια προκαταρκτική (αλλά ημιτελής ω...
Ανάλυση Δικτύων με το NetworkX της Python: Μια προκαταρκτική (αλλά ημιτελής ω...
 
2015 bioinformatics bio_python_partii
2015 bioinformatics bio_python_partii2015 bioinformatics bio_python_partii
2015 bioinformatics bio_python_partii
 
Java/Scala Lab: Руслан Шевченко - Implementation of CSP (Communication Sequen...
Java/Scala Lab: Руслан Шевченко - Implementation of CSP (Communication Sequen...Java/Scala Lab: Руслан Шевченко - Implementation of CSP (Communication Sequen...
Java/Scala Lab: Руслан Шевченко - Implementation of CSP (Communication Sequen...
 
Memory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native CollectionsMemory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native Collections
 
Digital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meetingDigital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meeting
 
KCDC - .NET memory management
KCDC - .NET memory managementKCDC - .NET memory management
KCDC - .NET memory management
 
Пример отчета по анализу вредоносного кода Zeus, подготовленного Cisco AMP Th...
Пример отчета по анализу вредоносного кода Zeus, подготовленного Cisco AMP Th...Пример отчета по анализу вредоносного кода Zeus, подготовленного Cisco AMP Th...
Пример отчета по анализу вредоносного кода Zeus, подготовленного Cisco AMP Th...
 

En vedette

GS Rubber Industries
GS Rubber IndustriesGS Rubber Industries
GS Rubber Industriesjrodriguesjr
 
20120622 fridayadelboden
20120622 fridayadelboden20120622 fridayadelboden
20120622 fridayadelbodenYannick Wurm
 
2014 11-13-sbsm032-reproducible research
2014 11-13-sbsm032-reproducible research2014 11-13-sbsm032-reproducible research
2014 11-13-sbsm032-reproducible researchYannick Wurm
 
Semut programming minds
Semut programming mindsSemut programming minds
Semut programming mindsAo Hayabuza
 
yw jakartarb20101031
yw jakartarb20101031yw jakartarb20101031
yw jakartarb20101031Yannick Wurm
 
Improvement of Military Planes From War to War
Improvement of Military Planes From War to WarImprovement of Military Planes From War to War
Improvement of Military Planes From War to WarTodd Roberts
 
Evolution lectures 5 6 2012b
Evolution lectures 5   6 2012bEvolution lectures 5   6 2012b
Evolution lectures 5 6 2012bYannick Wurm
 
Blue Designs Presentation
Blue Designs PresentationBlue Designs Presentation
Blue Designs PresentationClaireCardwell
 
2014 10-01-assembly summaryvariantsoverview
2014 10-01-assembly summaryvariantsoverview2014 10-01-assembly summaryvariantsoverview
2014 10-01-assembly summaryvariantsoverviewYannick Wurm
 
A Isings Joomla Presentation[1]
A Isings Joomla Presentation[1]A Isings Joomla Presentation[1]
A Isings Joomla Presentation[1]guest4cbfd6
 
2014 evolution-week1
2014 evolution-week12014 evolution-week1
2014 evolution-week1Yannick Wurm
 
Mundo perdido
Mundo perdidoMundo perdido
Mundo perdidoAVATARX1X
 
Evolution lectures1&2 2012 slideshare
Evolution lectures1&2 2012 slideshareEvolution lectures1&2 2012 slideshare
Evolution lectures1&2 2012 slideshareYannick Wurm
 

En vedette (18)

GS Rubber Industries
GS Rubber IndustriesGS Rubber Industries
GS Rubber Industries
 
20120622 fridayadelboden
20120622 fridayadelboden20120622 fridayadelboden
20120622 fridayadelboden
 
2014 11-13-sbsm032-reproducible research
2014 11-13-sbsm032-reproducible research2014 11-13-sbsm032-reproducible research
2014 11-13-sbsm032-reproducible research
 
Semut programming minds
Semut programming mindsSemut programming minds
Semut programming minds
 
yw jakartarb20101031
yw jakartarb20101031yw jakartarb20101031
yw jakartarb20101031
 
Improvement of Military Planes From War to War
Improvement of Military Planes From War to WarImprovement of Military Planes From War to War
Improvement of Military Planes From War to War
 
2014 12-09-oulu
2014 12-09-oulu2014 12-09-oulu
2014 12-09-oulu
 
Evolution lectures 5 6 2012b
Evolution lectures 5   6 2012bEvolution lectures 5   6 2012b
Evolution lectures 5 6 2012b
 
Blue Designs Presentation
Blue Designs PresentationBlue Designs Presentation
Blue Designs Presentation
 
Linux Routing
Linux RoutingLinux Routing
Linux Routing
 
2014 10-01-assembly summaryvariantsoverview
2014 10-01-assembly summaryvariantsoverview2014 10-01-assembly summaryvariantsoverview
2014 10-01-assembly summaryvariantsoverview
 
Employment.Konrad + Ilkay
Employment.Konrad + IlkayEmployment.Konrad + Ilkay
Employment.Konrad + Ilkay
 
Human evolution
Human evolutionHuman evolution
Human evolution
 
A Isings Joomla Presentation[1]
A Isings Joomla Presentation[1]A Isings Joomla Presentation[1]
A Isings Joomla Presentation[1]
 
2014 evolution-week1
2014 evolution-week12014 evolution-week1
2014 evolution-week1
 
Mundo perdido
Mundo perdidoMundo perdido
Mundo perdido
 
Evolution lectures1&2 2012 slideshare
Evolution lectures1&2 2012 slideshareEvolution lectures1&2 2012 slideshare
Evolution lectures1&2 2012 slideshare
 
Photo mix
Photo mixPhoto mix
Photo mix
 

Similaire à Masters bioinfo 2013-11-14-15

2015 bioinformatics python_io_wim_vancriekinge
2015 bioinformatics python_io_wim_vancriekinge2015 bioinformatics python_io_wim_vancriekinge
2015 bioinformatics python_io_wim_vancriekingeProf. Wim Van Criekinge
 
2014 10-15-Nextbug edinburgh
2014 10-15-Nextbug edinburgh2014 10-15-Nextbug edinburgh
2014 10-15-Nextbug edinburghYannick Wurm
 
Reproducible, Automated and Portable Computational and Data Science Experimen...
Reproducible, Automated and Portable Computational and Data Science Experimen...Reproducible, Automated and Portable Computational and Data Science Experimen...
Reproducible, Automated and Portable Computational and Data Science Experimen...Ivo Jimenez
 
2014 manchester-reproducibility
2014 manchester-reproducibility2014 manchester-reproducibility
2014 manchester-reproducibilityc.titus.brown
 
The genesis of clusterlib - An open source library to tame your favourite sup...
The genesis of clusterlib - An open source library to tame your favourite sup...The genesis of clusterlib - An open source library to tame your favourite sup...
The genesis of clusterlib - An open source library to tame your favourite sup...Arnaud Joly
 
Certified Reasoning for Automated Verification
Certified Reasoning for Automated VerificationCertified Reasoning for Automated Verification
Certified Reasoning for Automated VerificationAsankhaya Sharma
 
04_ForkPipe.pptx
04_ForkPipe.pptx04_ForkPipe.pptx
04_ForkPipe.pptxvnwzympx
 
The Popper Experimentation Protocol and CLI tool
The Popper Experimentation Protocol and CLI toolThe Popper Experimentation Protocol and CLI tool
The Popper Experimentation Protocol and CLI toolIvo Jimenez
 
Secure Programming Practices in C++ (NDC Oslo 2018)
Secure Programming Practices in C++ (NDC Oslo 2018)Secure Programming Practices in C++ (NDC Oslo 2018)
Secure Programming Practices in C++ (NDC Oslo 2018)Patricia Aas
 
2014 nicta-reproducibility
2014 nicta-reproducibility2014 nicta-reproducibility
2014 nicta-reproducibilityc.titus.brown
 
Kotlin+MicroProfile: Ensinando 20 anos para uma linguagem nova
Kotlin+MicroProfile: Ensinando 20 anos para uma linguagem novaKotlin+MicroProfile: Ensinando 20 anos para uma linguagem nova
Kotlin+MicroProfile: Ensinando 20 anos para uma linguagem novaVíctor Leonel Orozco López
 
SplunkLive! Washington DC May 2013 - Splunk Security Workshop
SplunkLive! Washington DC May 2013 - Splunk Security WorkshopSplunkLive! Washington DC May 2013 - Splunk Security Workshop
SplunkLive! Washington DC May 2013 - Splunk Security WorkshopSplunk
 
Rust: Reach Further (from QCon Sao Paolo 2018)
Rust: Reach Further (from QCon Sao Paolo 2018)Rust: Reach Further (from QCon Sao Paolo 2018)
Rust: Reach Further (from QCon Sao Paolo 2018)nikomatsakis
 
Javascript done right - Open Web Camp III
Javascript done right - Open Web Camp IIIJavascript done right - Open Web Camp III
Javascript done right - Open Web Camp IIIDirk Ginader
 
Machine Learning on Code - SF meetup
Machine Learning on Code - SF meetupMachine Learning on Code - SF meetup
Machine Learning on Code - SF meetupsource{d}
 

Similaire à Masters bioinfo 2013-11-14-15 (20)

Labs_20210809.pdf
Labs_20210809.pdfLabs_20210809.pdf
Labs_20210809.pdf
 
2015 bioinformatics python_io_wim_vancriekinge
2015 bioinformatics python_io_wim_vancriekinge2015 bioinformatics python_io_wim_vancriekinge
2015 bioinformatics python_io_wim_vancriekinge
 
2014 10-15-Nextbug edinburgh
2014 10-15-Nextbug edinburgh2014 10-15-Nextbug edinburgh
2014 10-15-Nextbug edinburgh
 
Reproducible, Automated and Portable Computational and Data Science Experimen...
Reproducible, Automated and Portable Computational and Data Science Experimen...Reproducible, Automated and Portable Computational and Data Science Experimen...
Reproducible, Automated and Portable Computational and Data Science Experimen...
 
2014 manchester-reproducibility
2014 manchester-reproducibility2014 manchester-reproducibility
2014 manchester-reproducibility
 
L27
L27L27
L27
 
Python Orientation
Python OrientationPython Orientation
Python Orientation
 
The genesis of clusterlib - An open source library to tame your favourite sup...
The genesis of clusterlib - An open source library to tame your favourite sup...The genesis of clusterlib - An open source library to tame your favourite sup...
The genesis of clusterlib - An open source library to tame your favourite sup...
 
Fuzzing - A Tale of Two Cultures
Fuzzing - A Tale of Two CulturesFuzzing - A Tale of Two Cultures
Fuzzing - A Tale of Two Cultures
 
Certified Reasoning for Automated Verification
Certified Reasoning for Automated VerificationCertified Reasoning for Automated Verification
Certified Reasoning for Automated Verification
 
04_ForkPipe.pptx
04_ForkPipe.pptx04_ForkPipe.pptx
04_ForkPipe.pptx
 
The Popper Experimentation Protocol and CLI tool
The Popper Experimentation Protocol and CLI toolThe Popper Experimentation Protocol and CLI tool
The Popper Experimentation Protocol and CLI tool
 
Secure Programming Practices in C++ (NDC Oslo 2018)
Secure Programming Practices in C++ (NDC Oslo 2018)Secure Programming Practices in C++ (NDC Oslo 2018)
Secure Programming Practices in C++ (NDC Oslo 2018)
 
Binary Analysis - Luxembourg
Binary Analysis - LuxembourgBinary Analysis - Luxembourg
Binary Analysis - Luxembourg
 
2014 nicta-reproducibility
2014 nicta-reproducibility2014 nicta-reproducibility
2014 nicta-reproducibility
 
Kotlin+MicroProfile: Ensinando 20 anos para uma linguagem nova
Kotlin+MicroProfile: Ensinando 20 anos para uma linguagem novaKotlin+MicroProfile: Ensinando 20 anos para uma linguagem nova
Kotlin+MicroProfile: Ensinando 20 anos para uma linguagem nova
 
SplunkLive! Washington DC May 2013 - Splunk Security Workshop
SplunkLive! Washington DC May 2013 - Splunk Security WorkshopSplunkLive! Washington DC May 2013 - Splunk Security Workshop
SplunkLive! Washington DC May 2013 - Splunk Security Workshop
 
Rust: Reach Further (from QCon Sao Paolo 2018)
Rust: Reach Further (from QCon Sao Paolo 2018)Rust: Reach Further (from QCon Sao Paolo 2018)
Rust: Reach Further (from QCon Sao Paolo 2018)
 
Javascript done right - Open Web Camp III
Javascript done right - Open Web Camp IIIJavascript done right - Open Web Camp III
Javascript done right - Open Web Camp III
 
Machine Learning on Code - SF meetup
Machine Learning on Code - SF meetupMachine Learning on Code - SF meetup
Machine Learning on Code - SF meetup
 

Plus de Yannick Wurm

2018 09-03-ses open-fair_practices_in_evolutionary_genomics
2018 09-03-ses open-fair_practices_in_evolutionary_genomics2018 09-03-ses open-fair_practices_in_evolutionary_genomics
2018 09-03-ses open-fair_practices_in_evolutionary_genomicsYannick Wurm
 
2018 08-reduce risks of genomics research
2018 08-reduce risks of genomics research2018 08-reduce risks of genomics research
2018 08-reduce risks of genomics researchYannick Wurm
 
2017 11-15-reproducible research
2017 11-15-reproducible research2017 11-15-reproducible research
2017 11-15-reproducible researchYannick Wurm
 
2016 09-16-fairdom
2016 09-16-fairdom2016 09-16-fairdom
2016 09-16-fairdomYannick Wurm
 
2016 05-31-wurm-social-chromosome
2016 05-31-wurm-social-chromosome2016 05-31-wurm-social-chromosome
2016 05-31-wurm-social-chromosomeYannick Wurm
 
2016 05-30-monday-assembly
2016 05-30-monday-assembly2016 05-30-monday-assembly
2016 05-30-monday-assemblyYannick Wurm
 
2016 05-29-intro-sib-springschool-leuker bad
2016 05-29-intro-sib-springschool-leuker bad2016 05-29-intro-sib-springschool-leuker bad
2016 05-29-intro-sib-springschool-leuker badYannick Wurm
 
2015 12-18- Avoid having to retract your genomics analysis - Popgroup Reprodu...
2015 12-18- Avoid having to retract your genomics analysis - Popgroup Reprodu...2015 12-18- Avoid having to retract your genomics analysis - Popgroup Reprodu...
2015 12-18- Avoid having to retract your genomics analysis - Popgroup Reprodu...Yannick Wurm
 
2015 11-17-programming inr.key
2015 11-17-programming inr.key2015 11-17-programming inr.key
2015 11-17-programming inr.keyYannick Wurm
 
2015 11-10-bio-in-docker-oswitch
2015 11-10-bio-in-docker-oswitch2015 11-10-bio-in-docker-oswitch
2015 11-10-bio-in-docker-oswitchYannick Wurm
 
Week 5 genetic basis of evolution
Week 5   genetic basis of evolutionWeek 5   genetic basis of evolution
Week 5 genetic basis of evolutionYannick Wurm
 
Biol113 week4 evolution
Biol113 week4 evolutionBiol113 week4 evolution
Biol113 week4 evolutionYannick Wurm
 
2015 10-7-11am-reproducible research
2015 10-7-11am-reproducible research2015 10-7-11am-reproducible research
2015 10-7-11am-reproducible researchYannick Wurm
 
2015 10-7-9am regex-functions-loops.key
2015 10-7-9am regex-functions-loops.key2015 10-7-9am regex-functions-loops.key
2015 10-7-9am regex-functions-loops.keyYannick Wurm
 
2015 9-30-sbc361-research methcomm
2015 9-30-sbc361-research methcomm2015 9-30-sbc361-research methcomm
2015 9-30-sbc361-research methcommYannick Wurm
 
2015 09-29-sbc322-methods.key
2015 09-29-sbc322-methods.key2015 09-29-sbc322-methods.key
2015 09-29-sbc322-methods.keyYannick Wurm
 
2015 09-28 bio721 intro
2015 09-28 bio721 intro2015 09-28 bio721 intro
2015 09-28 bio721 introYannick Wurm
 

Plus de Yannick Wurm (20)

2018 09-03-ses open-fair_practices_in_evolutionary_genomics
2018 09-03-ses open-fair_practices_in_evolutionary_genomics2018 09-03-ses open-fair_practices_in_evolutionary_genomics
2018 09-03-ses open-fair_practices_in_evolutionary_genomics
 
2018 08-reduce risks of genomics research
2018 08-reduce risks of genomics research2018 08-reduce risks of genomics research
2018 08-reduce risks of genomics research
 
2017 11-15-reproducible research
2017 11-15-reproducible research2017 11-15-reproducible research
2017 11-15-reproducible research
 
2016 09-16-fairdom
2016 09-16-fairdom2016 09-16-fairdom
2016 09-16-fairdom
 
2016 05-31-wurm-social-chromosome
2016 05-31-wurm-social-chromosome2016 05-31-wurm-social-chromosome
2016 05-31-wurm-social-chromosome
 
2016 05-30-monday-assembly
2016 05-30-monday-assembly2016 05-30-monday-assembly
2016 05-30-monday-assembly
 
2016 05-29-intro-sib-springschool-leuker bad
2016 05-29-intro-sib-springschool-leuker bad2016 05-29-intro-sib-springschool-leuker bad
2016 05-29-intro-sib-springschool-leuker bad
 
2015 12-18- Avoid having to retract your genomics analysis - Popgroup Reprodu...
2015 12-18- Avoid having to retract your genomics analysis - Popgroup Reprodu...2015 12-18- Avoid having to retract your genomics analysis - Popgroup Reprodu...
2015 12-18- Avoid having to retract your genomics analysis - Popgroup Reprodu...
 
2015 11-17-programming inr.key
2015 11-17-programming inr.key2015 11-17-programming inr.key
2015 11-17-programming inr.key
 
2015 11-10-bio-in-docker-oswitch
2015 11-10-bio-in-docker-oswitch2015 11-10-bio-in-docker-oswitch
2015 11-10-bio-in-docker-oswitch
 
Week 5 genetic basis of evolution
Week 5   genetic basis of evolutionWeek 5   genetic basis of evolution
Week 5 genetic basis of evolution
 
Biol113 week4 evolution
Biol113 week4 evolutionBiol113 week4 evolution
Biol113 week4 evolution
 
Evolution week3
Evolution week3Evolution week3
Evolution week3
 
2015 10-7-11am-reproducible research
2015 10-7-11am-reproducible research2015 10-7-11am-reproducible research
2015 10-7-11am-reproducible research
 
2015 10-7-9am regex-functions-loops.key
2015 10-7-9am regex-functions-loops.key2015 10-7-9am regex-functions-loops.key
2015 10-7-9am regex-functions-loops.key
 
Evolution week2
Evolution week2Evolution week2
Evolution week2
 
2015 9-30-sbc361-research methcomm
2015 9-30-sbc361-research methcomm2015 9-30-sbc361-research methcomm
2015 9-30-sbc361-research methcomm
 
2015 09-29-sbc322-methods.key
2015 09-29-sbc322-methods.key2015 09-29-sbc322-methods.key
2015 09-29-sbc322-methods.key
 
Sbc322 intro.key
Sbc322 intro.keySbc322 intro.key
Sbc322 intro.key
 
2015 09-28 bio721 intro
2015 09-28 bio721 intro2015 09-28 bio721 intro
2015 09-28 bio721 intro
 

Dernier

MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 

Dernier (20)

MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

Masters bioinfo 2013-11-14-15

  • 1. Research Computing & Bioinformatics @yannick__ y.wurm@qmul.ac.uk QMUL Masters/PhD 11-2013 http://yannick.poulet.org
  • 2. © Alex Wild & others
  • 3.
  • 4. Atta leaf-cutter ants © National Geographic
  • 5. Atta leaf-cutter ants © National Geographic
  • 6. Atta leaf-cutter ants © National Geographic
  • 7.
  • 8. Oecophylla Weaver ants © ameisenforum.de
  • 10. Oecophylla Weaver ants © ameisenforum.de
  • 13. Forelius pusillus hides the nest entrance at night Tofilski et al 2008
  • 14. Forelius pusillus hides the nest entrance at night Tofilski et al 2008
  • 15. Forelius pusillus hides the nest entrance at night Tofilski et al 2008
  • 16. Forelius pusillus hides the nest entrance at night Tofilski et al 2008
  • 17. Forelius pusillus hides the nest entrance at night Avant Workers staying outside die « preventive self-sacrifice » Tofilski et al 2008
  • 18. Dorylus driver ants: ants with no home © BBC
  • 19. Animal biomass (Brazilian rainforest) Soil fauna excluding earthworms, ants & termites Spiders Earthworms Mammals Ants & termites Other insects Birds Reptiles Amphibians from Fittkau & Klinge 1973
  • 21. Big data is invading biology
  • 23. Big data is invading biology • Genomics • Biodiversity assessments • Stool microbiome sequencing • Personalized medicine • Cancer genomics • Sensor networks - e.g tracking microclimates • Aerial surveys (Drones) - e.g. crop productivity; rainforest cover • Camera traps
  • 24.
  • 25.
  • 26. Plan: 1. Unix/High Performance Computing/Cluster stuff 2. Programming in R 3. TBD
  • 28. Recap/Questions • How do you connect to Apocrita? • Where do you run jobs? • How do you run something on Apocrita?
  • 30. Case Study 2 • Create ssh private/public key-pair • Log in to the head node using ssh key • Connect to sm11 via ssh – Hint: use agent forwarding: -A • • • • Create ssh shortcuts (on your local machine) Connect to sm11 via ssh proxy Start sample application (top, or xclock) Move it between foreground/background – Hint: use bg and fg • Start the application in the background – Hint: use & (ampersand)
  • 31. Case Study 2 (2) • Monitor processes – Hint: use top, ps, pstree • Experiment with top parameters (man top) • Stop selected process – Hint: use kill • Start multiple process of the same thing • Check if they running – Hint: use ps and grep, pstree and top • Stop all of them – Hint: use killall
  • 32. Case Study 3 • Log in to sm11 via ssh • Start virtual terminal – Hint: use screen • Start a process in it (use top) • Detach from the screen session – Hint: use Ctr+a d • Log out and back in • List current screen sessions – Hint: screen -ls
  • 33. Case Study 3 (2) • Attach to screen session – Hint: screen –r [sessionID] • Destroy screen session – Hint: Ctr+a k • Check if the screen session is destroyed • Experiment with nohup and disown – Hint: use nohup application name – Hint: use disown –h jobID • Check if they are running
  • 34. Case Study 4 • Log in to the head node via ssh • Obtain the test dataset file from http://www.antgenomes.org/~yannickwurm/tmp/Si_gnF.454scaffolds.fasta • Compress it using gzip • Compare the sizes – Hint: use ls –la[h], or du [–s] • Analyse the contents of the gzipped archive – Hint: use zcat • Search for a pattern in the gzipped archive – Hint: use zgrep • Extract the contents of the archive
  • 35. Case Study 4 (2) • Compress multiple text files into single archive – Hint: use tar • Compress a directory containing multiple files – Hint: use tar • tar • or • • List the contents of the tar archive zip – Hint: use tar -tvf
  • 36. Case Study 5 • Log in to sm11 • Download code from https://github.com/lh3/seqtk/archive/master.zip • • • • Extract the contents Compile Analyse the results of the compilation Add the binaries to the PATH
  • 37. Case Study 5 (2) • Run it on the Si_gnF.scaffold.fasta data – Use it to extract the following sequences Si_gnF.scaffold05788 Si_gnF.scaffold05760 Si_gnF.scaffold01035 Si_gnF.scaffold07345 Si_gnF.scaffold07801 Si_gnF.scaffold07087 Si_gnF.scaffold05362 Si_gnF.scaffold08533 Si_gnF.scaffold02116 Si_gnF.scaffold08406
  • 38. Case Study 5 (3) • Can it run on gzipped version? • If so how? • Repeat for the code from https://github.com/stamatak/standardRAxML/archive/master.zip
  • 39. Programming in R • Regular Expressions • Functions • Loops
  • 41. • creating a vector • three synonyms: > myvector > myvector > myvector > myvector [1] 5 6 <- 5:11 <- seq(from=5, to=11, by=1) <- c(5, 6, 7, 8, 9, 10, 11) 7 8 9 10 11 • accessing a subset • of a vector > bigvector <- 150:100 > bigvector [1] 150 149 148 147 146 145 144 143 142 141 140 139 138 137 136 1 [20] 131 130 129 128 127 126 125 124 123 122 121 120 119 118 117 1 [39] 112 111 110 109 108 107 106 105 104 103 102 101 100 > mysubset <- bigvector[myvector] > mysubset [1] 146 145 144 143 142 141 140 > subset(bigvector, bigvector > 120) [1] 150 149 148 147 146 145 144 143 142 141 140 139 138 137 136 1 [20] 131 130 129 128 127 126 125 124 123 122 121
  • 42. Regular expressions: Text search on steroids. Regular expression David Dav(e|id) Dav(e|id|ide|o) At{1,2}enborough Atte[nm]borough At{1,2}[ei][nm]bo{0,1}ro(ugh){0,1} Finds David David, Dave David, Dave, Davide, Davo Attenborough, Atenborough Attenborough, Attemborough Atimbro, attenbrough, etc. Easy counting, replacing all with “Sir David Attenborough”
  • 43. Regular expressions Synonymous with d [:digit:] [0-9] [A-z] [A-z], ie [A-Za-z] s whitespace . any single character .+ one to many of anything b* between 0 and infinity letter ‘b’ [^abc] any character other than a, b or c. ( ( [:punct:] any of these: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ ] ^ _ ` { | • Google “Regular • ?regexp expression cheat sheet”
  • 45. Functions •R has many. e.g.: plot(), t.test() • Making your own: tree_age_estimate <- function(diameter, species) { [...do the magic... # maybe something like: growth.rate <- growth.rates[ species ] age.estimate <- diameter / growth.rate ...] return(age.estimate) } > + > + tree_age_estimate(25, "White Oak") 66 tree_age_estimate(60, "Carya ovata") 190
  • 46. “for” Loop > possible_colours <- c('blue', 'cyan', 'sky-blue', 'navy blue', 'steel blue', 'royal blue', 'slate blue', 'light blue', 'dark blue', 'prussian blue', 'indigo', 'baby blue', 'electric blue') > possible_colours [1] "blue" "cyan" "sky-blue" [5] "steel blue" "royal blue" "slate blue" [9] "dark blue" "prussian blue" "indigo" [13] "electric blue" > for (colour in possible_colours) { + print(paste("The sky is oh so, so", colour)) + } [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] "The "The "The "The "The "The "The "The "The "The "The "The sky sky sky sky sky sky sky sky sky sky sky sky is is is is is is is is is is is is so, so, so, so, so, so, so, so, so, so, so, so, oh oh oh oh oh oh oh oh oh oh oh oh so so so so so so so so so so so so blue" cyan" sky-blue" navy blue" steel blue" royal blue" slate blue" light blue" dark blue" prussian blue" indigo" baby blue" "navy blue" "light blue" "baby blue"
  • 47. Lets do it Regular expressions. http://goo.gl/diSGvb
  • 48. Lets do it part 2 http://goo.gl/K0Nq0N
  • 49.
  • 50.
  • 53.
  • 54. Some sources of inspiration
  • 55. (steve@practicalcomputing.org),†† University of Wisconsin (khuff@cae.w Mary University of London (mark.plumbley@eecs.qmul.ac.uk),¶¶ Unive University D.A. Aruliah † , C. Titus Brown ‡ , Neil P. ChueUniversityDavisWisconsin Guy , (ethan@weecology.org), and ††† Hong § , Matt of ¶ , Richard T. (wils ∗ Greg Wilson , Best Practices for Scientific Computing Steven H.D. Haddock ∗∗ , Katy Huff †† , Ian M. Mitchell ‡‡ , Mark D. Plumbley §§ , Ben Waugh ¶¶ , Ethan P. White ∗∗∗ , Paul Wilson ††† Software Carpentry (gvwilson@software-carpentry.org),† University of Ontario Institute of Technology (Dhavide.Aru State University (ctb@msu.edu),§ Software Sustainability Institute (N.ChueHong@epcc.ed.ac.uk),¶ Space Telescope (mrdavis@stsci.edu), University of Toronto (guy@cs.utoronto.ca),∗∗ Monterey Bay Aquarium Research Institute (steve@practicalcomputing.org),†† University of Wisconsin (khuff@cae.wisc.edu),‡‡ University of British Columbia (mi Mary University of London (mark.plumbley@eecs.qmul.ac.uk),¶¶ University College London (b.waugh@ucl.ac.uk),∗∗ University (ethan@weecology.org), and ††† University of Wisconsin (wilsonp@engr.wisc.edu) ∗ arXiv:1210.0530v3 [cs.MS] 29 Nov 2012 Scientists spend an increasing amount of time building and using a software. However, most scientists are never taught how to do this i efficiently. As a result, many are unaware of tools and practices that d would allow them to write more reliable and maintainable code with p less effort. We describe a set of best practices for scientific software m Scientists spend an increasing amount of time building and using research and software development [61 and open source experience, development that have solid foundations in ical studies of scientific computing [4, 31, software. However, most scientists are never taught how to do this e efficiently. As a improve are unaware of tools and practices thatand the reliability of their and that result, many scientists’ productivity development in general (summarized in would allow them to write more reliable and maintainable code with software. describe a set of best practices for scientific software practices will guarantee efficient, error-frt less effort. We ment, but used in concert they will red f development that have solid foundations in research and experience, and that improve scientists’ productivitypeople, reliability of their and the not computers. errors in scientific software, make it easie 1. Write programs for the authors of the software time and effo software. Software is as important to modern focusing on the underlying scientific ques scientific research as 2. Automate repetitive tasks. 3. Use important to tubes. From groups the test modern scientific research telescopesasand computer to record history. as that work exclusively Software is 1 telescopes andMaketubes. From groups that work exclusively test incremental changes. 4. on computationalto traditional laboratory and field 1. laboratory andpeople, not c problems, to traditional Write programs for field on computational problems, control. 5. Use version Scientists writing software need to writeS scientists, more and more of the daily operation of science re- operation of science rescientists, more and more of the daily cutes correctly and can be easily read and 6. computers. This includes the development of volves aroundDon’t repeat yourself (or others). c programmers (especially the author’s fut volves 7. Plan for mistakes. around computers. This includes the development of new algorithms, managing and analyzing the large amounts cannot be easily read and understood it is p of data algorithms, managing andworksand that are generated in single research projects, correctly.the large amounts new 8. Optimize software only after it analyzingknow that it is actually doing what it i to combining disparate datasets to assess synthetic problems. c 9. Document the designown software single research projects, and must t and purpose ofthese rather than itssoftware developers code be productive, mechanics. of Scientists that are generated in for data typically develop their aspects of human cognition into account t 10. Conduct requires substantial domain-specific purposes because doing so code reviews. human working memory is limited, huma
  • 56. R style guide • http://google-styleguide.googlecode.com/svn/trunk/Rguide.xml
  • 57.
  • 58. Education A Quick Guide to Organizing Computational Biology Projects William Stafford Noble1,2* 1 Department of Genome Sciences, School of Medicine, University of Washington, Seattle, Washington, United States of America, 2 Department of Computer Science and Engineering, University of Washington, Seattle, Washington, United States of America Introduction under a common root directory. The understanding your work or who may be exception to this rule is source code or evaluating your research skills. Most comMost bioinformatics coursework focusscripts that are used in multiple projects. monly, however, that ‘‘someone’’ is you. A es on algorithms, with perhaps some Each such program might have a project few months from now, you may not components devoted to learning prodirectory of its own. remember what you were up to when you gramming skills and learning how to Within a given project, I use a top-level created a particular set of files, or you may use existing bioinformatics software. Unorganization that is logical, with chrononot remember what conclusions you drew. fortunately, for students who are preparlogical organization at the next level, and You will either have to then spend time ing for a research career, this type of logical organization below that. A sample reconstructing your previous experiments curriculum fails to address many of the project, called msms, is shown in Figure 1. or lose whatever insights you gained from day-to-day organizational challenges asAt the root of most of my projects, I have a those experiments. sociated with performing computational data directory for storing fixed data sets, a This leads to the second principle, experiments. In practice, the principles results directory for tracking computawhich is actually more like a version of Figure names are typeface, and filenames are behind organizing and documenting 1. Directory structure for a sample project. Directorydo, youin large tional experiments in smaller typeface. Only a subset of Murphy’s that the dates are formatted ,year.-,month.-,day. so that they can bepeformed on that data, the files are shown here. NoteLaw: Everything you sorted in chronological order. The computational experiments are often code src/ms-analysis.c have to to do over again. and is documented in doc/ms-analysis.html. The README source is compiled create bin/ms-analysis a doc directory with one subdirectory per will probably files in what date. The driver script results/2009-01-15/runall learned on the fly, and this learning is the data directories specify who downloaded the data files from what URL on manuscript, and directories such as src automatically Inevitably, you will discover some flaw split3, corresponding to three cross-validation splits. The bin/parsegenerates the three subdirectories split1, split2, and in sqt.py strongly influenced by personal predilec- script is called by bothpreparation driverthe data being for source code and bin for compiled your initial of the runall of scripts. doi:10.1371/journal.pcbi.1000424.g001 tions as well as by chance interactions binaries or scripts. analyzed, or you will get access to new with collaborators or colleagues. Within the data and results a complete data, the distinction be- The your paramThese types of entries provide directowith this approach,or you will decide that Lab Notebook The purpose of this article is to describe data and results may of a particular model was not picture of the development a similar, tween not be useful. ries, it is often tempting to apply of the project eterization In parallel with this chronological over time. Instead, could one good strategy for carrying out com- onebroad imagine a top-level means structure,the find itlogical toorganization. For example, you enough. This directory that I useful directory called something like experiIn practice, I ask members of my putational experiments. I will not describe , with subdirectories with names like last week, chronologically organizedhave two or group to data sets notebooks maintain a or even may lab research three put their lab against ments experiment you did notebook. This is a document that resides 2008-12-19. Optionally, the directory profound issues such as how to formulate which plan to password protection if the set of experiments you’veroot of the results directory andyou online, behind benchmark your in the been workname also include a or two necessary. When I meet with a member hypotheses, design experiments, or draw might ing on over word past month, will probably that records your progress algorithms, ofso lab or a could team, we can one in detail. indicating the topic of the the experiment my you project create refer Entries in the notebook conclusions. Rather, I will focus therein. In practice,to single experiment you have organized should be dated, for each of lab notebook, focusing on on directory need a be redone. If and they should be relatively verbose, with to the online them under data. will often require more than one day of the current entry but scrolling up to relatively mundane issues such as organizthis and documented your work clearly, thenimages In my experience, entries approach is risky, links or embedded or tables work, and so you may end up working a previous as necessary. The URL ing files and directories and documenting or repeating creating a new displaying the results of the experiments the can also be provided toof yourcollabobecause logical structure remote final few days more before the experiment with the new In each results folder: •script getResults.rb or WHATIDID.txt or MyAnalysis.Rnw •intermediates •output
  • 59. Take notes in Markdown “compile” to html, pdf,
  • 60. knitr (sweave)Analyzing & Reporting in a single file. MyFile.Rnw documentclass{article} usepackage[sc]{mathpazo} usepackage[T1]{fontenc} usepackage{url} begin{document} Also works with Markdown instead of LaTeX! ### in R: library(knitr) knit(“MyFile.Rnw”) # --> creates MyFile.tex <<setup, include=FALSE, cache=FALSE, echo=FALSE>>= # this is equivalent to SweaveOpts{...} opts_chunk$set(fig.path='figure/minimal-', fig.align='center', fig.show='hold') options(replace.assign=TRUE,width=90) @ title{A Minimal Demo of knitr} ### in shell: pdflatex MyFile.tex # --> creates MyFile.pdf author{Yihui Xie} A Minimal Demo of knitr maketitle You can test if textbf{knitr} works with this minimal demo. OK, let's get started with some boring random numbers: Yihui Xie February 26, 2012 <<boring-random,echo=TRUE,cache=TRUE>>= set.seed(1121) (x=rnorm(20)) mean(x);var(x) @ You can test if knitr works with this minimal demo. OK, let’s get started with s numbers: The first element of texttt{x} is Sexpr{x[1]}. Boring boxplots and histograms recorded by the PDF device: set.seed(1121) (x <- rnorm(20)) <<boring-plots,cache=TRUE,echo=TRUE>>= ## two plots side by side par(mar=c(4,4,.1,.1),cex.lab=.95,cex.axis=.9,mgp=c(2,.7,0),tcl=-.3,las=1) boxplot(x) hist(x,main='') @ Do the above chunks work? You should be able to compile the TeX{} ## [1] 0.14496 0.43832 ## [10] -0.02531 0.15088 ## [19] 0.13272 -0.15594 mean(x) ## [1] 0.3217 var(x) 0.15319 0.11008 1.08494 1.99954 -0.81188 1.35968 -0.32699 -0.71638 0.16027 1.80977 0 0
  • 61. Choosing a programming language Good for Bad: Excel quick & dirty R numbers, stats, genomics easy to make mistakes programming Unix commandline (i.e., shell, i.e., bash) Can’t escape it. Quick & Dirty programming, complicated things Java User interfaces in the 1990s. overcomplicated. Perl 1980s. Everything. Python scripting, text Ruby scripting, text Javascript web apps
  • 62. Ruby. “Friends don’t let friends do Perl” - reddit user example: reverse the contents of each line in a file ### in PERL: open INFILE, "my_file.txt"; while (defined ($line = <INFILE>)) { chomp($line); @letters = split(//, $line); @reverse_letters = reverse(@letters); $reverse_string = join("", @reverse_letters); print $reverse_string, "n"; } ### in Ruby: File.open("my_file.txt").each do |line| puts line.chomp.reverse end
  • 63. More ruby examples. 5.times do puts "Hello world" end # Sorting people people_sorted_by_age = people.sort_by{ |person| person.age}
  • 64. Getting help. • In real life: Make friends with people. Talk to them. • Online: • Specific discussion mailing lists (e.g.: R, Stacks, bioruby, MAKER...) • Programming: http://stackoverflow.com • Bioinformatics: http://www.biostars.org • Sequencing-related: http://seqanswers.com • Stats: http://stats.stackexchange.com
  • 65.
  • 66.
  • 67.
  • 68. Lets do it part 2 http://goo.gl/K0Nq0N