<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Idea Paper: Development of a Software Framework for Formalizing Forcefield Atom-Typing for Molecular Simulation</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Christopher R. Iacovella, Janos Sallai, Christoph Klein, Tengyu Ma Vanderbilt University</institution>
          ,
          <addr-line>Nashville, TN</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Forcefields are a crucial ingredient of Molecular Dynamics (MD) simulations, describing the types and parameters of interactions between the simulated particles. These parameter sets, however, are typically specific to the molecule in which the atoms appears, where within the molecule the atom is positioned, the phase or state point of the system, as well as the simulator tool in use. This makes choosing the correct parameter values a tedious and error prone task. Forcefield parameters, furthermore, are often hard to locate: some are published in scientific papers, others come with MD tools, often with no or ambiguous documentation on their applicability. In this paper, we present a framework that aims to solve this data management issue, proposing a common format for forcefields that is self-documenting with machine readable, declarative usage rules. We believe that processes and tools that are commonly used today in software development (e.g, unit testing, verification and validation, continuous integration, and version control) are, with proper infrastructure support, applicable to forcefield development, as well. The paper describes how such an infrastructure can tackle managing and evolving forcefields by the MD community, and proposes a way to encourage and incentivize involvement by the stakeholders.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. Introduction</title>
      <p>
        Molecular simulation plays a key role in understanding
the atomistic and molecular level interactions that
underlie many natural and man-made materials and
processes. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]–[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] Classical molecular simulations rely upon
forcefields to describe the various interactions that exist
between atoms and/or groups of atoms, including
nonbonded interactions (van der Waals and electrostatics)
and bonded interactions (bonds, angles, and torsions).
These forcefields are typically expressed as a set of
analytical function with adjustable fitting parameters
for different atomic/molecular species. Considerable
efforts have been undertaken by many research groups
to develop accurate forcefields, both in determining the
mathematical functions and associated fitting parameters,
for a large variety of molecular species under
different conditions. Numerous forcefields (and associated
parameters), have been devised with acronyms such
as: AMBER [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], CHARMM [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], OPLS [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], SKS [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ],
TraPPE [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], COMPASS [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and GROMOS [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. The
availability of these forcefields can significantly reduce
or completely eliminate the difficult and costly task of
determining the interactions between species, allowing
This work is licensed under a CC-BY-4.0 license.
researchers to instead focus their efforts on the
motivating scientific questions. For example, the large number
of parameters available for the OPLS forcefield has
allowed for the automated screening of drug molecules in
order to identify promising candidates for more effective
treatments of HIV [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>Fig. 1. Perfluorobutane, CF3-CF2-CF2-CF3, molecule shown
with ball and stick representation.</p>
      <sec id="sec-1-1">
        <title>However, while researchers do not necessarily need</title>
        <p>
          to spend time developing the forcefield parameters,
determining which parameters to use (i.e., atom-typing)
is still often a tedious and error prone task. In many
forcefields, the appropriate interaction parameters will
depend on the local topological environment of atoms.
For example, the non-bonded interactions of carbon
atoms in perfluoroalkanes (PFA) are typically
different for terminal carbons verses “middle” carbons [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
Similarly, when identifying the correct parameters for
a torsional term, one must typically consider not just
the backbone, (e:g:, C-C-C-C), but also the bonds of
each atom in the backbone (e:g:, CH3-CH2-CH2-CH3,
vs: CF3-CF2-CF2-CF3) [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. Consequently, a given
forcefield may include multiple unique parameters for
a given atom, whose usage depends on the chemical
context of the atom. That is, the appropriate parameters
will typically depend on a number of factors,
including the specific molecule in which the atom appears
(e:g:, alkanes vs: perfluoroalkanes), or where in that
molecule the atom appears (e:g:, terminal vs: middle).As
a clear illustration of this, we note that the OPLS
allatom forcefield parameter database (as provided in the
TINKER molecular modeling software [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]) contains
427 different “types” of carbon atoms, which are all
differentiated based on their chemical context.
Furthermore, determining which of the multitude of forcefield
parameters is most appropriate, based on the chemical
context of an atom, is often accomplished through brief,
unstructured – and sometimes ambiguous – annotations
located in the forcefield parameter files. Even journal
articles associated with forcefield parameters can be
unclear, where parameters are typically listed in table
form, often with limited annotations or examples of
their usage. Also, given their static nature, parameters
provided in journal articles may not be the most
up-todate, whether resulting from typographic errors or
modifications in later work. As a result, for many forcefields,
the formal logic required to distinguish atom types may
be difficult to find, difficult to interpret, out-of-date, or
simply ambiguous. This ambiguity is confounded by the
fact that many published journal articles that rely on
forcefields often provide only vague citations for the
source of the parameters.
        </p>
        <p>
          Most research groups use some combination of hand
parameterization and logic based codes to facilitate the
process of atom-typing. Identifying atom types by hand,
while easy for small/simple molecules and important for
validation, becomes impractical for large molecules or
systems with significant heterogeneity. For molecules
with only a few atomic species and little variability, ad
hoc, logic-based codes are relatively straightforward to
write and test. However, as the number of unique atom
types increases, properly defining the appropriate if/else
statements required in most logic codes becomes
onerous, even for people who are well versed in programming
and have domain expertise in molecular modeling. Also,
nested logic statements are often difficult to adequately
test and debug and thus introduce a potential source
of error. Since ad hoc codes are not typically released
to the general community, any errors in the code may
go undiscovered and thus data based on flawed
atomtyping may appear in published scientific literature. To
address this, several community tools and approaches
have been developed to aid in atom-typing [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]–[
          <xref ref-type="bibr" rid="ref20">20</xref>
          ],
some of which are more generally applicable than others.
Forcefields developed in the biophysics community tend
to have exceptionally well vetted parameterization codes,
such as AMBER’s antechamber [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ], but such tools are
typically designed to only work with their associated
forcefield and may also produce output specific to a
given simulation package, rather than a general form. In
general, these tools all rely on a hierarchy where rules
that identify more specialized atom types must be called
in precise order [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ], such that more general atom types
are only chosen when more specialized matches do not
exist (i:e:, they include rule precedence). Maintaining, let
alone constructing, these hierarchies is extremely error
prone and, just as in ad hoc codes, typically results
in source code with deeply nested if/else statements.
In these hierarchical schemes, in order to add a new
atom type or correct an error, a developer must have
a complete picture of the hierarchy and know exactly
where the relevant rule should be placed, such that it does
not inadvertently override other rules. This may impose
practical limits on functionality, where, for example, a
user is not able to easily extend the rules to include newer
parameters, or that such attempts to extend rules result
in incorrect atom-typing for other molecular species.
        </p>
        <p>To address these issues, we are developing a new
framework for atom-typing, based upon first order logic
over graph structures. The novelty of our approach lies
in the declarative annotation syntax that allows for 1)
decoupling the definition of forcefield-specific
atomtyping rules from how a forcefield-agnostic tool uses
these annotations to automatically compute the
atomtyping of complex molecular systems, and 2) formally
verifying and automatically validating annotated
forcefields. Specifically, we proposed to:
establish a forcefield agnostic (i:e:, general)
formalism to express the chemical context in which
a particular force field entry is applicable (i:e:,
forcefield usage semantics);
develop a tool suite that automates atom-typing of
molecular structures using the semantics-annotated
forcefields;
and establish a development process to create,
incrementally extend, and evolve annotated forcefields,
providing tools for automated verification,
validation, and continuous integration techniques.</p>
        <p>An important goal of the project is to disseminate
results and to foster community involvement through
the creation of a centralized online forcefield repository
containing the formally annotated forcefields,
documentation of how to annotate forcefields, along with files
for benchmarking and validation of the atom-typing
software. Given the importance of accurately applying
forcefields to molecular simulation, the new atom-typing
framework developed in this work has the potential
to significantly impact the community, affording
researchers greater confidence in the model parameters
used in their studies, eliminate the need to develop ad
hoc atom-typing codes, make forcefield parameter usage
clearer, and significantly reduce incorrect atom-typing as
a source of error and inconsistency in published results.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>II. Vision</title>
      <p>In our vision, forcefield definitions are not just sets of
tables with numerical data, but as unambiguous,
wellstructured documents with rich metadata, including the
formal description of the chemical context in which the
particular parameter values can be applied. In the future,
the tedious and error prone task of manually atom-typing
and parameterizing complex molecular models (inputs
to simulators) will be eliminated, and replaced by the
automated process that relies on the machine-readable
forcefield usage semantics.</p>
      <p>We envision forcefields as dynamic data entities
that evolve over time: parameterizations of additional
chemical species are added, already supported
chemical species are specialized, and parameter values are
tweaked for better modeling of the chemical interactions.
Forcefield definitions will be maintained by online
communities and hosted at shared repositories with version
control capabilities. These online repositories will also
support continuous integration (CI), i:e:, automated
verification, validation, and testing of the forcefields as they
evolve.</p>
      <p>We believe that the developers of forcefield definitions
deserve credit for their efforts. The online repositories
will generate permanent URL links per forcefield
versions, as well as document object identifiers (DOI) which
allow unambiguously referencing these data artifacts,
and properly citing them in scientific publications.</p>
    </sec>
    <sec id="sec-3">
      <title>III. Approach</title>
      <p>The work to be carried out can be roughly broken down
into two main efforts: (1) the development of the
atomtyping framework, including the formalism to express
forcefield usage semantics, and (2) examination of case
studies designed to test, validate, and refine the
atomtyping framework. We note that these efforts will be
executed concurrently, to provide a continual loop of
development, testing, and refinement.</p>
      <sec id="sec-3-1">
        <title>A. Annotation Syntax</title>
        <p>One of the main goals of the proposed effort is to
design a domain specific language (DSL) for annotating
forcefield parameters. The DSL will be used to express
the chemical context in which the particular atom type is
applicable. This DSL will, effectively, serve as a means
to unambiguously document the forcefield. The syntax
we propose will be expressive, unambiguous, and both
human and machine readable.</p>
        <p>
          Consider the following example of tagging the carbon
atoms in the perfluorobutane (shown in Fig. 1) with
its usage semantics to create the DSL. Atom type 791
in TINKER’s OPLS-aa parameter database [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]
corresponds to a terminal carbon of a perfluorobutane chain.
This will be annotated with the following statement:
C791 : type = C &amp;
count(bonded atoms(type = F )) = 3 &amp; (1)
count(bonded atoms(type = C)) = 1:
        </p>
        <sec id="sec-3-1-1">
          <title>This means that atom type C791 is a carbon (C) atom,</title>
          <p>which can be used in a chemical context where it has
3 bonded fluorines (F ), and one carbon. Similarly, atom
type 792, applicable to carbon atoms that are part of a
fluorocarbon backbone, would be annotated as
C792 : type = C &amp;
count(bonded atoms(type = C)) = 2 &amp; (2)
count(bonded atoms(type = F )) = 2:</p>
          <p>Notice that the above annotations are logic statements
consisting of predicates over the topology: type = C
evaluates to true if and only if the chemical species
of the atom is carbon (here, C is a built-in type);
bonded atoms() evaluates to the set of all atoms bonded
to the one of interest, which can be further filtered
by predicates. For instance, bonded atoms(type!=C)
would evaluate to a set of all non-carbon bonded atoms.
The proposed DSL will also supports functions on sets,
such as count(), and common set operations such as
union, intersection, difference, etc. Also, the formalism
will support the existential and universal quantifiers
(exists() and f or all()) to allow evaluating first-order
logic statements over sets. Furthermore, the language
will include support, through built-in functions, to
express common molecular structures that are too verbose
to express otherwise, such as, for instance, rings of a
particular size.</p>
          <p>For convenience, we will allow the annotations to
reference user-defined types in the language (not just
the built-in chemical species, such as C and F). The
statement</p>
          <p>C791 : type = C &amp;
count(bonded atoms(type = F )) = 3 &amp; (3)
count(bonded atoms(type = C792)) = 1
would specify that the carbon atom at the end of the
fluorocarbon chain must have a C729 type neighbor,
which is a carbon in the fluorocarbon backbone. This is
clearly a more restrictive atom type usage specification
than Eq. 1, allowing it to more specifically express the
chemical context.</p>
          <p>It is crucial that the annotation syntax we propose be
future-proof and support the evolution of forcefields.
Evolution can mean two things: a.) the forcefield gets
extended with support for new chemical species, or b.)
already supported species get more specialized.
Annotating the atom types for the newly added chemical species
can trivially be done incrementally. However, when an
existing atom type is specialized, other existing
atomtyping rules referencing the specialized one can also be
affected. For instance, let us assume that we want to
distinguish between C791-type fluorocarbon end groups
based on what kind of carbon they are bonded to. Let us
assume that to do this, we would remove the C791 atom
type from the forcefield and replace it with C791A for
a chemical context when the carbon neighbor is part of
a fluorocarbon backbone (C791), and with C791B if it is
not. Since the generic C791 type has been removed from
the forcefield, all existing annotations that reference it
need to be changed to reference C791A and/or C791B.</p>
          <p>We want to avoid this, because it would make
extending annotated forcefields a laborious and error-prone
task, which would hinder the wide-spread acceptance
of our proposed formalism, and would jeopardize the
success of our efforts. To tackle this issue, the
annotation language will allow multiple atom types to be
handle molecules with ring structures, a global invariant
can state that:
f or all(type = C; !in ring()):
(6)
We note that as part of defining the DSL for annotating
the forcefield, we will develop various “helper” tools to
ensure proper syntax usage.
assigned to a given atom in a molecule, but the atom
type annotations will be required to explicitly express
the specialization relations (i:e:, that atom type C792A
overrides C792). This way, if multiple atom types are
applicable to particular chemical context, it is the most
specialized one that will get assigned to the given atom.
The following example demonstrates a possible syntax
to achieve that, by including the definition of a more
generic perfluoroalkane carbon, CP F A.</p>
          <p>CP F A : type = C &amp;</p>
          <p>Support for overriding annotations is important for
two reasons. First, it allows for incremental development
of forcefields, and second, the overridden, more general
atom types can be used as wildcards in references.
Consider the following annotation of a torsional term defined
over four carbon atoms on a fluorocarbon backbone
(bonds, and angles are annotated similarly):</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>This annotation defines that the torsional term</title>
          <p>C13 C13 C13 C13P F A is applicable to a series of
four carbon atoms such that the first and the last one
can be any kind of carbon in a fluorocarbon molecule,
but the two middle atoms must be of a more specific
type, C792, with exactly two carbon neighbors. This
allows us to uniquely identify bonded interactions for
atom-types that are of the same “atom class.” The DSL
can also be extended to provide other parameters that
may be required, for example, a molecular length option
to unique identify instances when a specific torsion
parameter should be used.</p>
          <p>
            Apart from annotating atom types and various bonded
interaction types (bonds, angles, torsions) in the
forcefield, the proposed language supports global invariants,
as well. These invariants can be used to express
constraints on the applicability of the forcefield as a whole,
and are essential to prevent force field use on
unsupported topologies. For example, if the force field cannot
topology. This ensures that all referenced atom-typing mapped to Datalog, what are the performance
implirules are evaluated before those that reference them. If cations, including Datalog query execution scales with
multiple annotations evaluated to true for a given atom the topology size and the number of atom types in the
in the input topology (e:g: CP F A, C791, and C791A), the forcefield.
most specialized type (C791A) will be chosen, following Subgraph isomorphism. We expect that many (but
the @overrides relations of the annotations. Obviously, not all) of the forcefield annotations will, implicitly,
this naive approach would fail if no partial ordering describe the chemical context as a subgraph. While the
of atom type annotations would exist, i:e:, if there are subgraph isomorphism problem, in the general case, is
annotations that mutually reference each other, or if NP-complete [
            <xref ref-type="bibr" rid="ref27">27</xref>
            ], this is not the case with the problem
circular dependencies exist. of finding where a particular chemical neighborhood is
          </p>
          <p>
            Fixpoint-based method. Allowing recursion in anno- present in the overall topology [
            <xref ref-type="bibr" rid="ref28">28</xref>
            ]. This is due to the
tations would make the language more expressive. But in fact that chemical topologies belong a special class of
order to accommodate recursive annotations, we need to graphs (planar graphs) where the maximum number of
tweak the naive approach. First, the fixpoint-based solver bonded atoms is well defined (i:e:, never more than 4 for
evaluates the primitive rules, i:e:; the ones that do not covalently bonded systems), and that the chemical
neighreference others, for every atom in the topology. If an borhoods in question tend to be relatively small. State of
annotation evaluates to true (on any atom), it enables the art graph matching solutions that employ a plethora
those annotations that reference it. When the enabled of optimization techniques and exploit parallelism today
annotation is then evaluated, it, in turn, may enable or re- can scale up to graphs with 109 nodes [
            <xref ref-type="bibr" rid="ref29">29</xref>
            ].
enable others. This continues until no further annotations We suspect that for certain kinds of annotations,
are enabled (that is, a fixpoint is reached), which is the especially those involving ring structures, a subgraph
termination condition of the iteration. matching based approach would provide better
perfor
          </p>
          <p>
            Logic programming. Logic programming lan- mance than directly mapping such atom type annotations
guages [
            <xref ref-type="bibr" rid="ref24">24</xref>
            ], such as Prolog [
            <xref ref-type="bibr" rid="ref25">25</xref>
            ] or Datalog [
            <xref ref-type="bibr" rid="ref26">26</xref>
            ], that to, for instance, Datalog rules. Therefore, we envision
have been designed for deductive reasoning, are partic- that the final version of the atom-typing tool will borrow
ularly useful in this context. Logic programs consists of from multiple of the above mentioned approaches.
facts, i:e:; things that always hold true (e:g:, “Mickey It is important to note that the declarative nature of
is a mouse”, “Pluto is a dog”, “Mars is a planet”), the proposed annotation language allows us to decouple
and deduction rules that can be used to define relations the forcefield specification (what statements must hold
(e:g:, “a mouse is an animal”, “a dog is an animal”). true for a correctly atom-typed topology) from execution
The program is then run by the user posting queries (how it is achieved). That is, the particular execution
(e:g:, “list all animals”), which the interpreter runtime approach we will eventually choose is orthogonal to
executes and evaluates (returning Mickey and Pluto in the forcefield annotation syntax, so the implementation
this example). By representing the “bonded-to” relations of the atom-typer tool can evolve independently of the
of the input topology as tuples, and evaluating certain forcefield annotations.
non-logic functions in advance (e:g:, enumerating ring
structures), we can encode them as facts in a logic pro- C. Automated Verification, Validation, and Testing
gram (e:g:, “atom1 is a carbon”, “atom2 is a hydrogen”, Annotating a forcefield with atom-typing semantics is
“atom1 is part of ring1”, “atom1 is bonded to atom2”, a major undertaking, and it is inevitable that we make
etc.). Similarly, the annotations of the forcefield’s atom errors on the way. The same is true for a complex piece
types will be mapped to deduction rules, (e:g:; “a carbon of software, such as the atom-typer tool. We believe that
atom with 4 bonded hydrogens is a methane carbon”). through proper testing, verification, and validation, we
Then, the logic program can be run by executing queries can build quality forcefield annotations and tools that
to list atoms with each atom type (e:g:; “list all methane either produce the correct atom-typing results, or fail
carbons”). with adequate warnings or error messages. Our approach
          </p>
          <p>An important difference between Prolog and Datalog is unique in that it provides two very distinct types of
is that while Prolog is an expressive, general purpuse testing: 1) verification of the underlying rules to
evallogic programming language, Datalog is not Turing- uate inconsistencies and 2) validation of the outputted
complete, and mostly focuses on reasoning about data. molecular models.</p>
          <p>Also, Datalog imposes restrictions on the the use of 1) Verification
negation and recursion (Prolog does not), however, Dat- With verification, we want to answer the question: “Are
alog queries are always guaranteed to terminate (while we annotating the forcefield correctly?” The fact that our
in Prolog, there are no such guarantee). proposed annotation syntax can be mapped to first-order</p>
          <p>In the proposed effort, we will investigate how force- logic statements makes it possible to “reason about” the
field usage specifications and input topologies can be annotated forcefield as system of atom-typing rules, even
We propose to develop a validator tool that does just
this this: takes an annotated forcefield as an input, and
iterates through a large number of correctly atom-typed
topologies ensuring that the atom-type annotations and
global invariants are never violated. If the validator finds
a topology that is in contradiction with the forcefield
annotations, it is the chemical scientist who needs to
revisit and correct the forcefield, rather than a source
code issue.</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>3) Testing The Atom-Typer Tool</title>
        <p>
          The development and testing of the atom-typer tool is
much alike that of any software. Importantly, it can be
carried out without chemical domain expertise. This is
analogous to developing and testing a database server:
the software developers are not concerned with what
data, in what schemas, will the users store in the
database, but rather focus on testing the functionality that
implements how queries are answered. In the proposed
effort, we will use state-of-the-art software testing tools,
including unit tests packaged into test suites, as well
as coverage tools to quantify the degree to which the
source code is tested. The source code of the tools will
be stored on GitHub [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ], leveraging its collaborative
development, version control, and issue tracking
facilities.
without applying them to molecular topologies. That is,
in logic programming terms, we can reason about the
rules without the facts. We cannot emphasize enough
the importance of formal verification here. It may reveal
subtle and latent errors in the annotation logic of the
forcefield that would be only possible to detect through
thorough testing by running the atom-typer on a large
swath of different topologies.
        </p>
        <p>
          Are there rules that are not decidable? Are there any
annotations that will never evaluate to true, irrespective
of the input chemical topology? Can it ever happen that
two rules may hold true at the same time, without one
overriding the other? Are there any atom-typing rules
that are in contradiction with the global invariants? If
the answer to any of the above questions is yes, it
indicates an error in the logical structure of the forcefield
annotations. We propose to verify such properties on the
system of forcefield annotations, and will provide a set
of development tools that help the forcefield developers
pinpoint these inconsistencies early in the forcefield
development process. We expect that some of the above
violations will be detectable by the Datalog interpreter
after the annotations are mapped to Datalog syntax,
while others, pertaining to ensuring boolean satisfiability,
will require us to integrate a theorem prover such as the
widely used Z3 solver from Microsoft Research [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ].
        </p>
        <p>Our proposed goal is to prove that the forcefield is
complete in the logical sense, that is, if the forcefield’s
annotations evaluate to “true” on a correctly atom-typed
topology, then the atom-typing tool is guaranteed to
compute the correct atom-typing, given the annotated
forcefield, the chemical species of the atoms and their
connectivity as inputs. We will strive to reach this goal,
even at the cost of reducing the expressiveness of the
annotation language.</p>
      </sec>
      <sec id="sec-3-3">
        <title>D. Continuous Integration</title>
        <p>
          Continuous integration (CI) is a software development
practice that encourages members of the development
team to integrate code into a shared repository several
times a day. On each check-in, the software is
automatically built and tested, allowing teams to detect
problems early. Commonly, CI is provided as a cloud
service. Developers set up a project with a CI service
provider (e:g:; Travis CI [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ], CodeShip [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ], etc.), and
2) Validation of Forcefield Annotations it is the CI service that watches the project’s source code
With validation, we want to answer the question: “Did repository (e:g:, GitHub) for changes, attempts to build
we come up with the correct annotations?” If we and test the code in virtual machines in the cloud, and
run the atom-typer on a molecular topology and it does reports build and test results to the developers.
not produce the expected results, it is vital to know – In the proposed effort, we will apply the CI approach
particularly for an interdisciplinary team of chemical to the development process of both the annotated
forcescientists and computer engineers – whether the error fields and the corresponding software tools (atom-typer,
is in the forcefield annotations or in the atom-typer’s verifier, validator, etc.). For the software artifacts, CI
source code. With validation, we want to focus on will be hosted at Travis CI. For the automated
verifierrors in the forcefield annotations, without having to cation and validation (V&amp;V) of annotated forcefields,
worry about potential software bugs in the atom-typer’s we propose to develop our own cloud service, based on
implementation. BuildBot [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ], an open-source framework for automating
        </p>
        <p>Notice that if an annotated forcefield passes verifica- software build, test, and release processes. The proposed
tion (i.e., it is complete in the logical sense), we can forcefield CI service (see Fig. 2) will watch the
reposvalidate it in an isolated way, without having to execute itories where the annotated forcefield files are hosted.
the atom-typer tool. It is sufficient to check that the Also, it will integrate with existing online repositories
forcefield’s annotation statements hold true on a set of that host correctly atom-typed molecules, which will be
correctly atom-typed topologies (test cases), which will automatically downloaded and used as the “ground truth”
entail, due to the completeness property, that the atom- for forcefield validation. V&amp;V of annotated force field
typer will be able to compute the correct atom-typing. files will be triggered when either a.) changes in the
repository are detected b.) new correctly-typed molecules
are added.</p>
      </sec>
      <sec id="sec-3-4">
        <title>E. Incentivizing Community Involvement</title>
        <p>Although there exist some meticulously well maintained
and “alive” forcefield repositories, that are, not
surprisingly, typically specific to a particular simulator tool
or chemical or biomolecular domain, cataloging
forcefield development of the past decades into a coherent,
unified, searchable online forcefield database would be
an enormous undertaking, which is not feasible without
community involvement.</p>
        <p>The implementation of such an online database would
not be technically challenging. Neither would be
operating and maintaining such a service. However, convincing
the developers of new forcefields to upload their
parameter sets, to correctly tag them with how and in what
context the values are applicable, to supply test cases,
etc., would surely be a futile attempt.</p>
        <p>It is well known it is notoriously hard to get outside
users to upload their work to a repository. A novel aspect
of our community building approach is that we will
incentivize our users to do so by giving them free access
to our continuous integration infrastructure: outside users
will register their own repositories with the forcefield
CI service, which will provide automatic, continuous
verification, validation, and testing for their forcefields
at no cost.</p>
        <p>Whenever a new commit or pull request adds or
modifies forcefield related files in the users’ registered
repositories, the CI service will trigger the verification
and validation workflow. Once a forcefield (or a new
version of a forcefield) passes all tests, the CI service
will publish it (that is, the annotated parameter set,
its source URL, and the test results) to our online
forcefield repository, assigning to it a permanent URL
and a document object identifier (DOI) for referencing
and attribution purposes.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>IV. Conclusion</title>
      <p>Through the development of a new formalism for
chemical context and novel atom-typing scheme, our approach
unambiguously describes the appropriate usage of
forcefield parameters and helps to reduce atom-typing as a
source of error during model development. Developing
this framework will simplify the rules needed for
atomtyping, which is crucial as forcefields continue to grow,
specialize, and become more complex. The
machinereadable annotations of forcefield usage semantics will
enable automation of tedious and error prone tasks,
and will enable new application areas, ranging from
automated forcefield comparison and cross-validation,
to complex simulation workflows integrating multiple
forcefields and simulator tools. Through offering our
verification, validation, and testing infrastructure as a
free-of-charge continuous integration service to the
community, we believe that our approach has the potential to
foster community involvement through the creation of a
online forcefield repository for the annotated forcefields
that tagged with DOIs for proper referencing and
attribution, the associated software, and documentation of our
framework.</p>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgments</title>
      <p>This work is supported by the National Science
Foundation under grant number ACI 1535150.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>J. I.</given-names>
            <surname>Siepmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Karaborni</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Smit</surname>
          </string-name>
          , “
          <article-title>Simulating the critical behaviour of complex fluids</article-title>
          ,
          <source>” Nature</source>
          , vol.
          <volume>365</volume>
          , pp.
          <fpage>330</fpage>
          -
          <lpage>332</lpage>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Auer</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Frenkel</surname>
          </string-name>
          , “
          <article-title>Prediction of absolute crystal-nucleation rate in hard-sphere colloids</article-title>
          .,
          <source>” Nature</source>
          , vol.
          <volume>409</volume>
          , pp.
          <fpage>1020</fpage>
          -
          <lpage>1023</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Haji-Akbari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Engel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Keys</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Zheng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. G.</given-names>
            <surname>Petschek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Palffy-Muhoray</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S. C.</given-names>
            <surname>Glotzer</surname>
          </string-name>
          , “
          <article-title>Disordered, quasicrystalline and crystalline phases of densely packed tetrahedra</article-title>
          .,
          <source>” Nature</source>
          , vol.
          <volume>462</volume>
          , pp.
          <fpage>773</fpage>
          -
          <lpage>777</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>G.</given-names>
            <surname>Feng and P. T. Cummings</surname>
          </string-name>
          , “
          <article-title>Supercapacitor capacitance exhibits oscillatory behavior as a function of nanopore size</article-title>
          ,
          <source>” Journal of Physical Chemistry Letters</source>
          , vol.
          <volume>2</volume>
          , pp.
          <fpage>2859</fpage>
          -
          <lpage>2864</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S. J.</given-names>
            <surname>Weiner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Kollman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. A.</given-names>
            <surname>Case</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U. C.</given-names>
            <surname>Singh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ghio</surname>
          </string-name>
          , G. Alagona,
          <string-name>
            <given-names>S.</given-names>
            <surname>Profeta</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Weinerl</surname>
          </string-name>
          , “
          <article-title>A New Force Field for Molecular Mechanical Simulation of Nucleic Acids</article-title>
          and Proteins,
          <source>” Journal of the American Chemical Society</source>
          , vol.
          <volume>106</volume>
          , pp.
          <fpage>765</fpage>
          -
          <lpage>784</lpage>
          ,
          <year>1984</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>A. D. MacKerell</surname>
            ,
            <given-names>N.</given-names>
            Banavali, and N.
          </string-name>
          <string-name>
            <surname>Foloppe</surname>
          </string-name>
          , “
          <article-title>Development and current status of the CHARMM force field for nucleic acids</article-title>
          ,” Biopolymers, vol.
          <volume>56</volume>
          , pp.
          <fpage>257</fpage>
          -
          <lpage>265</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>W. L.</given-names>
            <surname>Jorgensen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Maxwell</surname>
          </string-name>
          , and J.
          <string-name>
            <surname>Tirado-Rives</surname>
          </string-name>
          ,
          <article-title>“Development and Testing of the OPLS All-Atom Force Field on Conformational Energetics and Properties of Organic Liquids,”</article-title>
          <source>Journal of the American Chemical Society</source>
          , vol.
          <volume>118</volume>
          , pp.
          <fpage>11225</fpage>
          -
          <lpage>11236</lpage>
          , Jan.
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>J. J.</given-names>
            <surname>Potoff</surname>
          </string-name>
          and
          <string-name>
            <surname>J. I. Siepmann</surname>
          </string-name>
          , “
          <article-title>Vapor-liquid equilibria of mixtures containing alkanes, carbon dioxide, and nitrogen</article-title>
          ,”
          <source>AIChE Journal</source>
          , vol.
          <volume>47</volume>
          , pp.
          <fpage>1676</fpage>
          -
          <lpage>1682</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>H.</given-names>
            <surname>Sun</surname>
          </string-name>
          , “COMPASS:
          <article-title>An ab Initio Force-Field Optimized for Condensed-Phase Applications s Overview with Details on Alkane and Benzene Compounds,”</article-title>
          <source>Journal of Physical Chemistry</source>
          , vol.
          <volume>5647</volume>
          , pp.
          <fpage>7338</fpage>
          -
          <lpage>7364</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>C.</given-names>
            <surname>Oostenbrink</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Villa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. E.</given-names>
            <surname>Mark</surname>
          </string-name>
          , and
          <string-name>
            <surname>W. F. Van Gunsteren</surname>
          </string-name>
          ,
          <article-title>“A biomolecular force field based on the free enthalpy of hydration and solvation: The GROMOS force-field parameter sets 53A5 and 53A6</article-title>
          ,
          <source>” Journal of Computational Chemistry</source>
          , vol.
          <volume>25</volume>
          , pp.
          <fpage>1656</fpage>
          -
          <lpage>1676</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>R. C.</given-names>
            <surname>Rizzo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Tirado-Rives</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W. L.</given-names>
            <surname>Jorgensen</surname>
          </string-name>
          , “
          <article-title>Estimation of binding affinities for HEPT and nevirapine analogues with HIV-1 reverse transcriptase via Monte Carlo simulations</article-title>
          ,
          <source>” Journal of Medicinal Chemistry</source>
          , vol.
          <volume>44</volume>
          , pp.
          <fpage>145</fpage>
          -
          <lpage>154</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M. G.</given-names>
            <surname>Martin</surname>
          </string-name>
          and
          <string-name>
            <surname>J. I. Siepmann</surname>
          </string-name>
          , “
          <article-title>Transferable Potentials for Phase Equilibria. 1. United-Atom Description of n -Alkanes,”</article-title>
          <source>The Journal of Physical Chemistry B</source>
          , vol.
          <volume>102</volume>
          , no.
          <issue>97</issue>
          , pp.
          <fpage>2569</fpage>
          -
          <lpage>2577</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>E. K.</given-names>
            <surname>Watkins</surname>
          </string-name>
          and
          <string-name>
            <given-names>W. L.</given-names>
            <surname>Jorgensen</surname>
          </string-name>
          , “Perfluoroalkanes:
          <article-title>Conformational Analysis and Liquid-State Properties from ab Initio and Monte Carlo Calculations,”</article-title>
          <source>The Journal of Physical Chemistry A</source>
          , vol.
          <volume>105</volume>
          , pp.
          <fpage>4118</fpage>
          -
          <lpage>4125</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>J. W.</given-names>
            <surname>Ponder</surname>
          </string-name>
          , “TINKER Molecular Modeling Software.”
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>B. L.</given-names>
            <surname>Bush</surname>
          </string-name>
          and
          <string-name>
            <given-names>R. P.</given-names>
            <surname>Sheridan</surname>
          </string-name>
          , “
          <article-title>PATTY: A Programmable Atom Typer and Language for Automatic Classification of Atoms in Molecular Databases</article-title>
          ,
          <source>” Journal of Chemical Information and Computer Sciences</source>
          , vol.
          <volume>33</volume>
          , pp.
          <fpage>756</fpage>
          -
          <lpage>762</lpage>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>A. W. Sch</surname>
          </string-name>
          <article-title>u¨ttelkopf and</article-title>
          <string-name>
            <surname>D. M. F. Van Aalten</surname>
          </string-name>
          , “
          <article-title>PRODRG: A tool for high-throughput crystallography of protein-ligand complexes</article-title>
          ,
          <source>” Acta Crystallographica Section D: Biological Crystallography</source>
          , vol.
          <volume>60</volume>
          , pp.
          <fpage>1355</fpage>
          -
          <lpage>1363</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>A. A. S. T.</given-names>
            <surname>Ribeiro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. A. C.</given-names>
            <surname>Horta</surname>
          </string-name>
          , and
          <string-name>
            <surname>R. B. De Alencastro</surname>
          </string-name>
          , “
          <article-title>MKTOP: A program for automatic construction of molecular topologies</article-title>
          ,
          <source>” Journal of the Brazilian Chemical Society</source>
          , vol.
          <volume>19</volume>
          , no.
          <issue>7</issue>
          , pp.
          <fpage>1433</fpage>
          -
          <lpage>1435</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>A. K. Malde</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Zuo</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Breeze</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Stroet</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Poger</surname>
            ,
            <given-names>P. C.</given-names>
          </string-name>
          <string-name>
            <surname>Nair</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Oostenbrink</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A. E. Mark,</surname>
          </string-name>
          “
          <article-title>An Automated force field Topology Builder (ATB) and repository: Version 1</article-title>
          .0,
          <source>” Journal of Chemical Theory and Computation</source>
          , vol.
          <volume>7</volume>
          , pp.
          <fpage>4026</fpage>
          -
          <lpage>4037</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>K.</given-names>
            <surname>Vanommeslaeghe</surname>
          </string-name>
          and a. D. MacKerell, “
          <article-title>Automation of the CHARMM General Force Field (CGenFF) I: bond perception and atom typing</article-title>
          .,
          <source>” Journal of Chemical Information and Modeling</source>
          , vol.
          <volume>52</volume>
          , pp.
          <fpage>3144</fpage>
          -
          <lpage>54</lpage>
          , Dec.
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>J. D.</given-names>
            <surname>Yesselman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. J.</given-names>
            <surname>Price</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Knight</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C. L.</given-names>
            <surname>Brooks</surname>
          </string-name>
          , “
          <article-title>MATCH: an atom-typing toolset for molecular mechanics force fields</article-title>
          .,
          <source>” Journal of Computational Chemistry</source>
          , vol.
          <volume>33</volume>
          , pp.
          <fpage>189</fpage>
          -
          <lpage>202</lpage>
          , Jan.
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>J.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Kollman</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D. A.</given-names>
            <surname>Case</surname>
          </string-name>
          , “
          <article-title>Automatic atom type and bond type perception in molecular mechanical calculations</article-title>
          .,
          <source>” Journal of Molecular Graphics &amp; Modelling</source>
          , vol.
          <volume>25</volume>
          , pp.
          <fpage>247</fpage>
          -
          <lpage>60</lpage>
          , Oct.
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>C.</given-names>
            <surname>Klein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Sallai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. R.</given-names>
            <surname>Iacovella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>McCabe</surname>
          </string-name>
          , and P. T. Cummings, “
          <article-title>Mbuild: A Hierarchical, Component Based Molecule Builder,” in Poster Presentation: Computational Molecular Science</article-title>
          and Engineering Forum, American Institute of Chemical Engineers Annual Meeting, Atlanta,
          <string-name>
            <surname>GA</surname>
          </string-name>
          , November
          <volume>18</volume>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>J.</given-names>
            <surname>Sallai</surname>
          </string-name>
          , G. Varga,
          <string-name>
            <given-names>S.</given-names>
            <surname>Toth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Iacovella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Klein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>McCabe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ledeczi</surname>
          </string-name>
          , and P. T. Cummings, “Web- and
          <source>Cloud-based Software Infrastructure for Materials Design,” Procedia Computer Science</source>
          , vol.
          <volume>29</volume>
          , pp.
          <fpage>2034</fpage>
          -
          <lpage>2044</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>J. W.</given-names>
            <surname>Lloyd</surname>
          </string-name>
          , “
          <article-title>Foundations of logic programming; (2nd extended ed</article-title>
          .),” Jan.
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>W.</given-names>
            <surname>Clocksin</surname>
          </string-name>
          and
          <string-name>
            <given-names>C. S.</given-names>
            <surname>Mellish</surname>
          </string-name>
          , Programming in PROLOG. Springer Science &amp; Business
          <string-name>
            <surname>Media</surname>
          </string-name>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ceri</surname>
          </string-name>
          , G. Gottlob, and L. Tanca, “
          <article-title>What you always wanted to know about Datalog (and never dared to ask</article-title>
          ),
          <source>” IEEE Transactions on Knowledge and Data Engineering</source>
          , vol.
          <volume>1</volume>
          , pp.
          <fpage>146</fpage>
          -
          <lpage>166</lpage>
          , Mar.
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>S. A.</given-names>
            <surname>Cook</surname>
          </string-name>
          , “
          <article-title>The complexity of theorem-proving procedures</article-title>
          ,”
          <source>in Proceedings of the Third Annual ACM Symposium on Theory of Computing</source>
          , STOC '
          <fpage>71</fpage>
          , (New York, NY, USA), pp.
          <fpage>151</fpage>
          -
          <lpage>158</lpage>
          , ACM,
          <year>1971</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>D.</given-names>
            <surname>Eppstein</surname>
          </string-name>
          , “
          <article-title>Subgraph isomorphism in planar graphs and related problems,” in Proceedings of the Sixth Annual ACM-SIAM Symposium on Discrete Algorithms</article-title>
          , SODA '
          <fpage>95</fpage>
          , (Philadelphia, PA, USA), pp.
          <fpage>632</fpage>
          -
          <lpage>640</lpage>
          , Society for Industrial and Applied Mathematics,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Sun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Shao</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          , “
          <article-title>Efficient subgraph matching on billion node graphs</article-title>
          ,
          <source>” Proceedings of the VLDB Endowment</source>
          , vol.
          <volume>5</volume>
          , pp.
          <fpage>788</fpage>
          -
          <lpage>799</lpage>
          , May
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <surname>L. De Moura</surname>
            and
            <given-names>N.</given-names>
          </string-name>
          <article-title>Bjø rner, “Z3: An efficient SMT solver,” in Tools and Algorithms for the Construction and Analysis of Systems</article-title>
          , pp.
          <fpage>337</fpage>
          -
          <lpage>340</lpage>
          , Springer Berlin Heidelberg,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31] Http://github.com, “
          <article-title>GitHub: powerful collaboration, code review, and code management for open source and private projects</article-title>
          .”
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32] Http://travis-ci.org, “
          <string-name>
            <surname>Travis</surname>
            <given-names>CI</given-names>
          </string-name>
          :
          <article-title>A hosted continuous integration service</article-title>
          .”
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33] Http://codeship.com, “
          <article-title>Codeship: A free hosted Continuous Delivery Service</article-title>
          .”
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34] Http://buildbot.net, “
          <article-title>Buildbot: An open-source framework for automating software build, test, and release processes</article-title>
          ..”
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>