<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ashish Agarwal &#187; OCaml</title>
	<atom:link href="http://ashishagarwal.org/tag/ocaml/feed/" rel="self" type="application/rss+xml" />
	<link>http://ashishagarwal.org</link>
	<description></description>
	<lastBuildDate>Mon, 11 Mar 2019 21:28:46 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Functional Big-Data Genomics</title>
		<link>http://ashishagarwal.org/2012/09/11/functional-big-data-genomics/</link>
		<comments>http://ashishagarwal.org/2012/09/11/functional-big-data-genomics/#comments</comments>
		<pubDate>Tue, 11 Sep 2012 20:11:51 +0000</pubDate>
		<dc:creator><![CDATA[ashish]]></dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Bioinformatics]]></category>
		<category><![CDATA[High Performance Computing]]></category>
		<category><![CDATA[OCaml]]></category>

		<guid isPermaLink="false">http://ashishagarwal.org/?p=180</guid>
		<description><![CDATA[Abstract High-throughput genomic sequencing is characterized by large diverse datasets and numerous analysis methods. It is normal for an individual bioinformatician to work with thousands of data files and employ hundreds of distinct computations during the course of a single &#8230; <a href="http://ashishagarwal.org/2012/09/11/functional-big-data-genomics/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>Abstract</strong><br />
High-throughput genomic sequencing is characterized by large diverse datasets and numerous analysis methods. It is normal for an individual bioinformatician to work with thousands of data files and employ hundreds of distinct computations during the course of a single project. This problem is magnified in &#8220;core facilities&#8221;, which support multiple researchers working on diverse projects. Most investigators use ad hoc methods to manage this complexity with dire consequences: analyses frequently fail to meet the scientific mandate of reproducibility; improved analysis methods are often not considered because recomputing all downstream steps would be overwhelming; hard drives and CPUs are used sub-optimally; and, in some cases, raw data is lost.</p>
<p>We describe HITSCORE, an OCaml software stack that operates all computational aspects of the Genomics Core Facility at New York University&#8217;s Center for Genomics and Systems Biology. HITSCORE has been in production use for one year, and was implemented quickly by less than two programmers following design advice from several biologists. A simple domain specific language (DSL) enables generating type safe database bindings and GUI components, and greatly eases updates and migration of our data model. We found a multi-lingual stack too burdensome in a small team setting, and credit OCaml for fulfilling the needs of our full application stack. It has good database bindings, excels at encoding complex domain logic, and now allows construction of rich websites due to the Ocsigen web programming framework. Higher level libraries for distributed computing would be a welcome improvement.</p>
<p>The opportunity to build this system did not stem directly from any strength of functional programming or OCaml. It was necessary for a person with credibility amongst biologists to champion its development, and this credibility took several years to build. Rapid development appears to be the single most important factor in allaying doubts about using a lesser known language, and we will briefly describe our experiences in bringing OCaml to several high profile projects.</p>
<p><a class="pdf" href='http://ashishagarwal.org/wp-content/uploads/2012/09/Functional-Big-Data-Genomics-CUFP2012.pdf'>Download slides</a><br />
<a class="television" href="http://www.youtube.com/watch?feature=plcp&#038;v=02YykaSMP0I">Video</a></p>
<p><strong>Citation</strong><br />
Ashish Agarwal, Sebastien Mondet, Paul Scheid, Aviv Madar, Richard Bonneau, Jane Carlton, Kristin C. Gunsalus. Functional Big-Data Genomics. <em><a href="http://cufp.org/conference/2012">Commercial Users of Functional Programming 2012</a></em>, Copenhagen, Denmark, Sep 15, 2012.</p>
]]></content:encoded>
			<wfw:commentRss>http://ashishagarwal.org/2012/09/11/functional-big-data-genomics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Biocaml: The OCaml Bioinformatics Library</title>
		<link>http://ashishagarwal.org/2012/09/10/biocaml/</link>
		<comments>http://ashishagarwal.org/2012/09/10/biocaml/#comments</comments>
		<pubDate>Mon, 10 Sep 2012 20:11:38 +0000</pubDate>
		<dc:creator><![CDATA[ashish]]></dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Bioinformatics]]></category>
		<category><![CDATA[OCaml]]></category>

		<guid isPermaLink="false">http://ashishagarwal.org/?p=179</guid>
		<description><![CDATA[Abstract Biology is an increasingly computational discipline due to rapid advances in experimental techniques, especially DNA sequencing, that are generating data at unprecedented rates. The computational techniques needed range from the complex (.e.g algorithms, distributed computing) to the simple (e.g. &#8230; <a href="http://ashishagarwal.org/2012/09/10/biocaml/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>Abstract</strong><br />
Biology is an increasingly computational discipline due to rapid advances in experimental techniques, especially DNA sequencing, that are generating data at unprecedented rates. The computational techniques needed range from the complex (.e.g algorithms, distributed computing) to the simple (e.g. scripting, parsing), and there are hundreds of thousands of Biologists now involved in computing. We propose that OCaml can serve virtually the full spectrum of computational tasks needed by Biologists, improving both programmer productivity and computational efficiency. To support this end, we have developed Biocaml.</p>
<p>Biocaml aims to be a standard library for the Biology domain. We provide features that are needed in a broad range of applications and avoid including overly specialized methods. The current feature set can be split into 3 broad categories: stream parsing/printing of many data formats, data structures for genomics, and access to public data repositories. We will demonstrate how some complex calculations can be performed quite easily with the current API, and describe our efforts to make a uniform API with comprehensive documentation. Finally, there is a BioX library for X equal to any programming language. The most widely used is BioPerl, and we will compare Biocaml with these alternatives.</p>
<p>Biocaml and other OCaml libraries have now been successfully used in multiple high-profile Biology projects (e.g. modENCODE, ENCODE, NYU&#8217;s Genomics Core Facility, and others). Some time will be spent discussing the social aspect of bringing a novel language to the Biology community. We will attempt to elucidate strategies that are successful and those that are not. In particular, it will be argued that discussions regarding programming language choices need to be more scientific.</p>
<p><a class="pdf" href='http://ashishagarwal.org/wp-content/uploads/2012/09/biocaml-OUD2012.pdf'>Download slides</a><br />
<a class="television" href="http://www.youtube.com/watch?v=rzrqcTWc2V8&#038;feature=plcp">Video</a></p>
<p><strong>Citation</strong><br />
Ashish Agarwal, Sebastien Mondet, Philippe Veber, Christophe Troestler, Francois Berenger. Biocaml: The OCaml Bioinformatics Library. <em><a href="http://oud.ocaml.org">OCaml Users and Developers Meeting 2012</a></em>, Copenhagen, Denmark, Sep 14, 2012.</p>
]]></content:encoded>
			<wfw:commentRss>http://ashishagarwal.org/2012/09/10/biocaml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Managing and Analyzing Big-Data in Genomics</title>
		<link>http://ashishagarwal.org/2012/06/29/ibm-pl-day/</link>
		<comments>http://ashishagarwal.org/2012/06/29/ibm-pl-day/#comments</comments>
		<pubDate>Fri, 29 Jun 2012 17:18:00 +0000</pubDate>
		<dc:creator><![CDATA[ashish]]></dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Bioinformatics]]></category>
		<category><![CDATA[OCaml]]></category>

		<guid isPermaLink="false">http://ashishagarwal.org/?p=176</guid>
		<description><![CDATA[Abstract Biology is an increasingly computational discipline. Rapid advances in experimental techniques, especially DNA sequencing, are generating data at exponentially increasing rates. Aside from the algorithmic challenges this poses, researchers must manage large volumes and innumerable varieties of data, run &#8230; <a href="http://ashishagarwal.org/2012/06/29/ibm-pl-day/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>Abstract</strong></p>
<blockquote><p>Biology is an increasingly computational discipline. Rapid advances in experimental techniques, especially DNA sequencing, are generating data at exponentially increasing rates. Aside from the algorithmic challenges this poses, researchers must manage large volumes and innumerable varieties of data, run computational jobs on an HPC cluster, and track the inputs/outputs of the numerous computational tools they employ. Here we describe a software stack fully implemented in OCaml that operates the Genomics Core Facility at NYU&#8217;s Center for Genomics and Systems Biology.</p>
<p>We define a domain specific language (DSL) that allows us to easily describe the data we need to track. More importantly, the DSL approach provides us with code generation capabilities. From a single description, we generate PostgreSQL schema definitions, OCaml bindings to the database, and web pages and forms for end-users to interact with the database. Strong type safety is provided at each stage. Database bindings check properties not expressible in SQL, and web pages, forms, and links are validated at compile time by the Ocsigen framework. Since the entire stack depends on this single data description, rapid updates are easy; the compiler informs us of all necessary changes.</p>
<p>The application launches compute intensive jobs on a high-performance compute (HPC) cluster, requiring consideration of concurrency and fault-tolerance. We have implemented what we call a &#8220;flow&#8221; monad that combines error and thread monads. Errors are modeled with polymorphic variants, which get arranged automatically into a hierarchical structure from lower level system calls to high level functions. The net result is extremely precise information in the case of any failures and reasonably straightforward concurrency management.</p></blockquote>
<p><a class="pdf" href='http://ashishagarwal.org/wp-content/uploads/2012/06/IBM_PL_Day_2012.pdf'>Download slides</a></p>
<p><strong>Citation</strong><br />
Sebastien Mondet, Ashish Agarwal, Paul Scheid, Aviv Madar, Richard Bonneau, Jane Carlton, Kristin C. Gunsalus. Managing and Analyzing Big-Data in Genomics. <em><a href="http://researcher.watson.ibm.com/researcher/view_project.php?id=3198">IBM Programming Languages Day 2012</a></em>, Hawthorne, NY, June 28, 2012.</p>
]]></content:encoded>
			<wfw:commentRss>http://ashishagarwal.org/2012/06/29/ibm-pl-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>logit &#8211; a simple tool to date-stamp files into a log directory</title>
		<link>http://ashishagarwal.org/2010/04/21/logit-release/</link>
		<comments>http://ashishagarwal.org/2010/04/21/logit-release/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 18:18:02 +0000</pubDate>
		<dc:creator><![CDATA[ashish]]></dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[OCaml]]></category>

		<guid isPermaLink="false">http://ashishagarwal.org/?p=59</guid>
		<description><![CDATA[http://github.com/agarwal/logit]]></description>
				<content:encoded><![CDATA[<p><a href="http://github.com/agarwal/logit">http://github.com/agarwal/logit</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ashishagarwal.org/2010/04/21/logit-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Toward Interactive Statistical Modeling</title>
		<link>http://ashishagarwal.org/2010/03/27/iccs2010/</link>
		<comments>http://ashishagarwal.org/2010/03/27/iccs2010/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 22:39:22 +0000</pubDate>
		<dc:creator><![CDATA[ashish]]></dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Publications]]></category>
		<category><![CDATA[OCaml]]></category>
		<category><![CDATA[Optimization]]></category>
		<category><![CDATA[Statistics]]></category>
		<category><![CDATA[Types]]></category>

		<guid isPermaLink="false">http://ashishagarwal.org/?p=44</guid>
		<description><![CDATA[Abstract When solving machine learning problems, there is currently little automated support for easily experimenting with alternative statistical models or solution strategies. This is because this activity often requires expertise from several diï¬€erent ï¬elds (e.g., statistics, optimization, linear algebra), and &#8230; <a href="http://ashishagarwal.org/2010/03/27/iccs2010/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>Abstract</strong></p>
<blockquote><p>When solving machine learning problems, there is currently little automated support for easily experimenting with alternative statistical models or solution strategies. This is because this activity often requires expertise from several diï¬€erent ï¬elds (e.g., statistics, optimization, linear algebra), and the level of formalism required for automation is much higher than for a human solving problems on paper. We present a system toward addressing these issues, which we achieve by (1) formalizing a type theory for probability and optimization, and (2) providing an interactive rewrite system for applying problem reformulation theorems. Automating solution strategies this way enables not only manual experimentation but also higher-level, automated activities, such as autotuning.</p></blockquote>
<p><a class="html" href="http://dx.doi.org/10.1016/j.procs.2010.04.205">Download from publisher</a><br />
<a class="pdf" href="http://ashishagarwal.org/wp-content/uploads/2010/06/ICCS_2010_Talk.pdf">Presentation slides</a></p>
<p><center></p>
<div style="width:425px" id="__ss_6242390"><object id="__sse6242390" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=iccs2010talk-101219124801-phpapp01&#038;rel=0&#038;stripped_title=iccs-2010-talk&#038;userName=agarwal1975" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse6242390" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=iccs2010talk-101219124801-phpapp01&#038;rel=0&#038;stripped_title=iccs-2010-talk&#038;userName=agarwal1975" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
<p></center></p>
<p><strong>Citation</strong><br />
Sooraj Bhat, Ashish Agarwal, Alexander Gray, Richard Vuduc (2010). Toward Interactive Statistical Modeling, In <em>Procedia Computer Science, International Conference on Computational Science ICCS 2010</em>, <strong>1</strong>(1): 1892-1838.</p>
]]></content:encoded>
			<wfw:commentRss>http://ashishagarwal.org/2010/03/27/iccs2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automating Mathematical Program Transformations</title>
		<link>http://ashishagarwal.org/2010/01/18/automating-mp-transformations/</link>
		<comments>http://ashishagarwal.org/2010/01/18/automating-mp-transformations/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 19:13:17 +0000</pubDate>
		<dc:creator><![CDATA[ashish]]></dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Publications]]></category>
		<category><![CDATA[OCaml]]></category>
		<category><![CDATA[Optimization]]></category>
		<category><![CDATA[Types]]></category>

		<guid isPermaLink="false">http://ashishagarwal.org/?p=35</guid>
		<description><![CDATA[Abstract Mathematical programs (MPs) are a class of constrained optimization problems that include linear, mixed-integer, and disjunctive programs. Strategies for solving MPs rely heavily on various transformations between these subclasses, but most are not automated because MP theory does not &#8230; <a href="http://ashishagarwal.org/2010/01/18/automating-mp-transformations/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>Abstract</strong></p>
<blockquote><p>Mathematical programs (MPs) are a class of constrained optimization problems that include linear, mixed-integer, and disjunctive programs. Strategies for solving MPs rely heavily on various transformations between these subclasses, but most are not automated because MP theory does not presently treat programs as syntactic objects. In this work, we present the ï¬rst syntactic deï¬nition of MP and of some widely used MP transformations, most notably the big-M and convex hull methods for converting disjunctive constraints. We use an embedded OCaml DSL on problems from chemical process engineering and operations research to compare our automated transformations to existing technologyâ€”ï¬nding that no one technique is always bestâ€”and also to manual reformulationsâ€”ï¬nding that our mechanizations are comparable to human experts. This work enables higher-level solution strategies that can use these transformations as subroutines.
</p></blockquote>
<p><a class="html" href="http://dx.doi.org/10.1007/978-3-642-11503-5_12">Download from publisher</a><br />
<a class="pdf" href="http://ashishagarwal.org/wp-content/uploads/2010/06/Preprint_PADL2010.pdf">Download preprint</a><br />
<a class="zip" href="http://ashishagarwal.org/wp-content/uploads/2010/03/padl2010-code.tar.gz">Associated code</a><br />
<a class="pdf" href="http://ashishagarwal.org/wp-content/uploads/2010/03/padl2010_talk.pdf">Presentation slides</a></p>
<p><center></p>
<div style="width:425px" id="__ss_6242291"><object id="__sse6242291" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=padl2010talk-101219123908-phpapp01&#038;rel=0&#038;stripped_title=padl-2010-talk&#038;userName=agarwal1975" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse6242291" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=padl2010talk-101219123908-phpapp01&#038;rel=0&#038;stripped_title=padl-2010-talk&#038;userName=agarwal1975" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
<p></center></p>
<p><strong>Citation</strong><br />
Ashish Agarwal, Sooraj Bhat, Alexander Gray, Ignacio E. Grossmann (2010). Automating Mathematical Program Transformations, in <em>Proceedings of the 12th International Symposium on Practical Aspects of Declarative Languages, PADL 2010</em>, Vol 5937 of <em>Lecture Notes in Computer Science</em>, pp. 134-148.</p>
]]></content:encoded>
			<wfw:commentRss>http://ashishagarwal.org/2010/01/18/automating-mp-transformations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
