SlideShare una empresa de Scribd logo
1 de 15
BioMake
Ian Holmes & Christopher Mungall
UC Berkeley,
Berkeley Lab
http://biomake.org/
Bioinformatics analysis pipelines involves
chains of dependencies
GNU make
CC = gcc
%.o: %.c
$(CC) -c -o $@ $<
Rules, patterns, variables, automatic variables
Compiling a C program
Makefile
GNU make
BWAMEM = bwa
REF = ref.fasta
%.sam: %.fastq
$(BWA) mem $(REF) $< >$@
Aligning reads
Rules, patterns, variables, automatic variables
Makefile
Dependencies
BWAMEM = bwa
REF = ref.fasta
%.sam: %.fastq $(REF).bwt
$(BWA) mem $(REF) $< >$@
%.bwt: %
$(BWA) index $<
Timestamps, dependency graphs
Functions
MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
MAKEFILE_DIR := $(dir $(MAKEFILE_PATH))
test1:
echo $(shell ls $(MAKEFILE_DIR))
FUNC = echo $1 is $2
test2:
$(call FUNC,make,cool)
Special variables, functions, user-defined functions
Issues with GNU make
• Only one wildcard per rule
• Poor support for parallelism
• Timestamps are fragile, especially on NFS
• Can’t extend build logic, e.g. add qualifiers to rules
Biomake fixes these!
Multiple wildcards per rule
$X-$Y.sam: $X.fa.bwt $Y.fastq
bwa mem $X.fa $Y.fastq >$@
biomake myref-myreads.sam
MD5 signatures
$X-$Y.sam: $X.fa.bwt $Y.fastq
bwa mem $X.fa $Y.fastq >$@
biomake --md5-hash myref-myreads.sam
md5_hash("myref-myreads.sam",12,"0f723ae7f9bf07744445e93ac5595156").
md5_valid("myref-myreads.sam",12,"0f723ae7f9bf07744445e93ac5595156",X) :-
md5_check("myref.fa.bwt",6,"b1946ac92492d2347c6235b4d2611184",X),
md5_check("myreads.fastq",6,"591785b794601e212b260e25925636fd",X).
.biomake/md5/myref-myreads.sam
Multiple queue engines
$X-$Y.sam: $X.fa.bwt $Y.fastq
bwa mem $X.fa $Y.fastq >$@
biomake -Q sge myref-myreads.sam
biomake -Q slurm myref-myreads.sam
biomake -Q pbs myref-myreads.sam
biomake -Q poolq myref-myreads.sam
Logic extensions
$X-$Y.sam: $X.fa.bwt $Y { size_file(Y,S),
S < 1000000000 }
bwa mem $X.fa $Y >$@
Can embed Prolog in Makefiles,
or auto-translate entire Makefile to Prolog
(Some of) The Competition
Language
GNU-
compatible?
MD5? Clusters?
Erlang make Erlang No No No
omake OCaML Somewhat Yes No
makepp Perl Yes Yes No
qmake C Yes No SGE
What Biomake is not(yet)
• A massively parallel data analysis framework
(try Apache Spark)
• A heavy-duty cloud-oriented workflow language
(try Common Workflow Language)
• A web application for managing jobs
(try Galaxy)
What Biomake is
A simple, drop-in replacement for GNU make that
allows you to…
• ramp up your Makefile-driven workflows to cluster
scale
• avoid costly rebuilds triggered by file copying &
unsynchronized clocks
• extend rules with wildcards and logical tests
http://www.biorxiv.org/content/early/2016/12/12/093245
https://github.com/evoldoers/biomake
http://biomake.org/
• Ian Holmes
• Contributors & testers
• Mahesh Panchal
• Markus Triska
• Jan Wielemaker - creator of SWI-Prolog

Más contenido relacionado

La actualidad más candente

Distributed work with Gearman
Distributed work with GearmanDistributed work with Gearman
Distributed work with Gearman
Dominik Jungowski
 
Object Oriented JavaScript
Object Oriented JavaScriptObject Oriented JavaScript
Object Oriented JavaScript
techwhizbang
 
chef loves windows
chef loves windowschef loves windows
chef loves windows
Mat Schaffer
 

La actualidad más candente (14)

Introduction To Lamp
Introduction To LampIntroduction To Lamp
Introduction To Lamp
 
RESTful web services
RESTful web servicesRESTful web services
RESTful web services
 
DrupalCafe4 Kiev Services
DrupalCafe4 Kiev ServicesDrupalCafe4 Kiev Services
DrupalCafe4 Kiev Services
 
Otimizando Aplicações em Rails
Otimizando Aplicações em RailsOtimizando Aplicações em Rails
Otimizando Aplicações em Rails
 
Slim RedBeanPHP and Knockout
Slim RedBeanPHP and KnockoutSlim RedBeanPHP and Knockout
Slim RedBeanPHP and Knockout
 
Perl Dancer for Python programmers
Perl Dancer for Python programmersPerl Dancer for Python programmers
Perl Dancer for Python programmers
 
Distributed work with Gearman
Distributed work with GearmanDistributed work with Gearman
Distributed work with Gearman
 
Object Oriented JavaScript
Object Oriented JavaScriptObject Oriented JavaScript
Object Oriented JavaScript
 
chef loves windows
chef loves windowschef loves windows
chef loves windows
 
Modern Perl Web Development with Dancer
Modern Perl Web Development with DancerModern Perl Web Development with Dancer
Modern Perl Web Development with Dancer
 
Keeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro frameworkKeeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro framework
 
PerlDancer for Perlers (FOSDEM 2011)
PerlDancer for Perlers (FOSDEM 2011)PerlDancer for Perlers (FOSDEM 2011)
PerlDancer for Perlers (FOSDEM 2011)
 
Loadrunner
LoadrunnerLoadrunner
Loadrunner
 
Inside Bokete: Web Application with Mojolicious and others
Inside Bokete:  Web Application with Mojolicious and othersInside Bokete:  Web Application with Mojolicious and others
Inside Bokete: Web Application with Mojolicious and others
 

Similar a BioMake PAG 2017

JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
Guillaume Laforge
 
LOSS_C11- Programming Linux 20221006.pdf
LOSS_C11- Programming Linux 20221006.pdfLOSS_C11- Programming Linux 20221006.pdf
LOSS_C11- Programming Linux 20221006.pdf
Thninh2
 
2005_Structures and functions of Makefile
2005_Structures and functions of Makefile2005_Structures and functions of Makefile
2005_Structures and functions of Makefile
NakCheon Jung
 
Laurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationLaurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus Presentation
Ajax Experience 2009
 

Similar a BioMake PAG 2017 (20)

Introduction to GNU Make Programming Language
Introduction to GNU Make Programming LanguageIntroduction to GNU Make Programming Language
Introduction to GNU Make Programming Language
 
Erubis徹底解説
Erubis徹底解説Erubis徹底解説
Erubis徹底解説
 
All about Erubis (English)
All about Erubis (English)All about Erubis (English)
All about Erubis (English)
 
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache Beam
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache BeamMalo Denielou - No shard left behind: Dynamic work rebalancing in Apache Beam
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache Beam
 
unix-editors.pdf
unix-editors.pdfunix-editors.pdf
unix-editors.pdf
 
Revoke-Obfuscation
Revoke-ObfuscationRevoke-Obfuscation
Revoke-Obfuscation
 
Twig Templating
Twig TemplatingTwig Templating
Twig Templating
 
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
 
LOSS_C11- Programming Linux 20221006.pdf
LOSS_C11- Programming Linux 20221006.pdfLOSS_C11- Programming Linux 20221006.pdf
LOSS_C11- Programming Linux 20221006.pdf
 
Practical catalyst
Practical catalystPractical catalyst
Practical catalyst
 
BioMake BOSC 2004
BioMake BOSC 2004BioMake BOSC 2004
BioMake BOSC 2004
 
2005_Structures and functions of Makefile
2005_Structures and functions of Makefile2005_Structures and functions of Makefile
2005_Structures and functions of Makefile
 
Flink Forward SF 2017: Malo Deniélou - No shard left behind: Dynamic work re...
Flink Forward SF 2017: Malo Deniélou -  No shard left behind: Dynamic work re...Flink Forward SF 2017: Malo Deniélou -  No shard left behind: Dynamic work re...
Flink Forward SF 2017: Malo Deniélou - No shard left behind: Dynamic work re...
 
Software Build processes and Git
Software Build processes and GitSoftware Build processes and Git
Software Build processes and Git
 
Laurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationLaurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus Presentation
 
Xopus Application Framework
Xopus Application FrameworkXopus Application Framework
Xopus Application Framework
 
CMake Tutorial
CMake TutorialCMake Tutorial
CMake Tutorial
 
Cより速いRubyプログラム
Cより速いRubyプログラムCより速いRubyプログラム
Cより速いRubyプログラム
 
Content-Driven Web Applications with Magnolia CMS and Ruby on Rails
Content-Driven Web Applications with Magnolia CMS and Ruby on RailsContent-Driven Web Applications with Magnolia CMS and Ruby on Rails
Content-Driven Web Applications with Magnolia CMS and Ruby on Rails
 
Why scala is not my ideal language and what I can do with this
Why scala is not my ideal language and what I can do with thisWhy scala is not my ideal language and what I can do with this
Why scala is not my ideal language and what I can do with this
 

Más de Chris Mungall

Más de Chris Mungall (20)

MADICES Mungall 2022.pptx
MADICES Mungall 2022.pptxMADICES Mungall 2022.pptx
MADICES Mungall 2022.pptx
 
Scaling up semantics; lessons learned across the life sciences
Scaling up semantics; lessons learned across the life sciencesScaling up semantics; lessons learned across the life sciences
Scaling up semantics; lessons learned across the life sciences
 
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODOLinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
 
Ontology Access Kit_ Workshop Intro Slides.pptx
Ontology Access Kit_ Workshop Intro Slides.pptxOntology Access Kit_ Workshop Intro Slides.pptx
Ontology Access Kit_ Workshop Intro Slides.pptx
 
LinkML Intro (for Monarch devs)
LinkML Intro (for Monarch devs)LinkML Intro (for Monarch devs)
LinkML Intro (for Monarch devs)
 
LinkML presentation to Yosemite Group
LinkML presentation to Yosemite GroupLinkML presentation to Yosemite Group
LinkML presentation to Yosemite Group
 
Experiences in the biosciences with the open biological ontologies foundry an...
Experiences in the biosciences with the open biological ontologies foundry an...Experiences in the biosciences with the open biological ontologies foundry an...
Experiences in the biosciences with the open biological ontologies foundry an...
 
All together now: piecing together the knowledge graph of life
All together now: piecing together the knowledge graph of lifeAll together now: piecing together the knowledge graph of life
All together now: piecing together the knowledge graph of life
 
Collaboratively Creating the Knowledge Graph of Life
Collaboratively Creating the Knowledge Graph of LifeCollaboratively Creating the Knowledge Graph of Life
Collaboratively Creating the Knowledge Graph of Life
 
Representation of kidney structures in Uberon
Representation of kidney structures in UberonRepresentation of kidney structures in Uberon
Representation of kidney structures in Uberon
 
SparqlProg (BioHackathon 2019)
SparqlProg (BioHackathon 2019)SparqlProg (BioHackathon 2019)
SparqlProg (BioHackathon 2019)
 
Ontology Development Kit: Bio-Ontologies 2019
Ontology Development Kit: Bio-Ontologies 2019Ontology Development Kit: Bio-Ontologies 2019
Ontology Development Kit: Bio-Ontologies 2019
 
US2TS: Reasoning over multiple open bio-ontologies to make machines and human...
US2TS: Reasoning over multiple open bio-ontologies to make machines and human...US2TS: Reasoning over multiple open bio-ontologies to make machines and human...
US2TS: Reasoning over multiple open bio-ontologies to make machines and human...
 
Uberon: opening up to community contributions
Uberon: opening up to community contributionsUberon: opening up to community contributions
Uberon: opening up to community contributions
 
Modeling exposure events and adverse outcome pathways using ontologies
Modeling exposure events and adverse outcome pathways using ontologiesModeling exposure events and adverse outcome pathways using ontologies
Modeling exposure events and adverse outcome pathways using ontologies
 
Causal reasoning using the Relation Ontology
Causal reasoning using the Relation OntologyCausal reasoning using the Relation Ontology
Causal reasoning using the Relation Ontology
 
US2TS presentation on Gene Ontology
US2TS presentation on Gene OntologyUS2TS presentation on Gene Ontology
US2TS presentation on Gene Ontology
 
Introduction to the BioLink datamodel
Introduction to the BioLink datamodelIntroduction to the BioLink datamodel
Introduction to the BioLink datamodel
 
Computing on Phenotypes AMP 2015
Computing on Phenotypes AMP 2015Computing on Phenotypes AMP 2015
Computing on Phenotypes AMP 2015
 
ENVO GSC 2015
ENVO GSC 2015ENVO GSC 2015
ENVO GSC 2015
 

Último

Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 

Último (20)

WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 

BioMake PAG 2017

  • 1. BioMake Ian Holmes & Christopher Mungall UC Berkeley, Berkeley Lab http://biomake.org/
  • 2. Bioinformatics analysis pipelines involves chains of dependencies
  • 3. GNU make CC = gcc %.o: %.c $(CC) -c -o $@ $< Rules, patterns, variables, automatic variables Compiling a C program Makefile
  • 4. GNU make BWAMEM = bwa REF = ref.fasta %.sam: %.fastq $(BWA) mem $(REF) $< >$@ Aligning reads Rules, patterns, variables, automatic variables Makefile
  • 5. Dependencies BWAMEM = bwa REF = ref.fasta %.sam: %.fastq $(REF).bwt $(BWA) mem $(REF) $< >$@ %.bwt: % $(BWA) index $< Timestamps, dependency graphs
  • 6. Functions MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST))) MAKEFILE_DIR := $(dir $(MAKEFILE_PATH)) test1: echo $(shell ls $(MAKEFILE_DIR)) FUNC = echo $1 is $2 test2: $(call FUNC,make,cool) Special variables, functions, user-defined functions
  • 7. Issues with GNU make • Only one wildcard per rule • Poor support for parallelism • Timestamps are fragile, especially on NFS • Can’t extend build logic, e.g. add qualifiers to rules Biomake fixes these!
  • 8. Multiple wildcards per rule $X-$Y.sam: $X.fa.bwt $Y.fastq bwa mem $X.fa $Y.fastq >$@ biomake myref-myreads.sam
  • 9. MD5 signatures $X-$Y.sam: $X.fa.bwt $Y.fastq bwa mem $X.fa $Y.fastq >$@ biomake --md5-hash myref-myreads.sam md5_hash("myref-myreads.sam",12,"0f723ae7f9bf07744445e93ac5595156"). md5_valid("myref-myreads.sam",12,"0f723ae7f9bf07744445e93ac5595156",X) :- md5_check("myref.fa.bwt",6,"b1946ac92492d2347c6235b4d2611184",X), md5_check("myreads.fastq",6,"591785b794601e212b260e25925636fd",X). .biomake/md5/myref-myreads.sam
  • 10. Multiple queue engines $X-$Y.sam: $X.fa.bwt $Y.fastq bwa mem $X.fa $Y.fastq >$@ biomake -Q sge myref-myreads.sam biomake -Q slurm myref-myreads.sam biomake -Q pbs myref-myreads.sam biomake -Q poolq myref-myreads.sam
  • 11. Logic extensions $X-$Y.sam: $X.fa.bwt $Y { size_file(Y,S), S < 1000000000 } bwa mem $X.fa $Y >$@ Can embed Prolog in Makefiles, or auto-translate entire Makefile to Prolog
  • 12. (Some of) The Competition Language GNU- compatible? MD5? Clusters? Erlang make Erlang No No No omake OCaML Somewhat Yes No makepp Perl Yes Yes No qmake C Yes No SGE
  • 13. What Biomake is not(yet) • A massively parallel data analysis framework (try Apache Spark) • A heavy-duty cloud-oriented workflow language (try Common Workflow Language) • A web application for managing jobs (try Galaxy)
  • 14. What Biomake is A simple, drop-in replacement for GNU make that allows you to… • ramp up your Makefile-driven workflows to cluster scale • avoid costly rebuilds triggered by file copying & unsynchronized clocks • extend rules with wildcards and logical tests http://www.biorxiv.org/content/early/2016/12/12/093245 https://github.com/evoldoers/biomake
  • 15. http://biomake.org/ • Ian Holmes • Contributors & testers • Mahesh Panchal • Markus Triska • Jan Wielemaker - creator of SWI-Prolog