API Usage Guide

Attention

bio.tools implements the model of software information defined in biotoolsScheme v3.0.0 . This page summarises the structure and syntax of an XML / JSON file that describes a tool for submission to bio.tools via the API.

Payload formats

To submit a tool via the bio.tools API you’ll need to POST a tool description to the tool endpoint. The API supports XML and JSON format uploads and downloads comatible with biotoolsSchema.

Note

Support for YAML (and other) formats can be added if required. If you want this, please tell us via GitHub.

XML

See the sample XML document.

Important

When working in XML, please first read the biotoolsSchema docs. It is essential to stick to the element order (including nested elements) in the sample XML documents and as shown below.

JSON

A sample JSON document may look like this:

{
   "name": "SignalP",
   "description": "Prediction of the presence and location of signal peptide cleavage sites in amino acid sequences from different organisms.",
   "homepage": "http://cbs.dtu.dk/services/SignalP/",
   "biotoolsID": "signalp",
   "biotoolsCURIE": "biotools:signalp",
   "version":
   [
      "6.4.0.0",
      "1.1 - 1.4, 2.0-alpha, 2.0-beta-01 - 2.0-beta-04, 2.0.0"
   ]
   "otherID":
   [
      {
         "value": "RRID:SCR_015644",
         "type": "rrid",
         "version": "4.1"
      },
      {
         "value": "doi:10.1007/978-1-4939-7015-5_6",
         "type": "doi"
         "version": "4.1"
      }
   ]

   "function":
   [
      {
         "operation":
         [
            {
               "uri": "http://edamontology.org/operation_0418",
               "term": "Protein signal peptide detection"
            },
            {
               "uri": "http://edamontology.org/operation_0422",
               "term": "Protein cleavage site prediction"
            }
         ],
         "input":
         [
           {
             "data":
             {
                "uri": "http://edamontology.org/data_2044",
                "term": "Sequence"
             },
             "format":
             [
               {
                  "uri": "http://edamontology.org/format_1929",
                  "term": "FASTA"
               },
               {
                  "uri": "http://edamontology.org/format_3008",
                  "term": "MAF"
               }
             ]
           }
         ],
         "output":
         [
            {
               "data":
               {
                  "uri": "http://edamontology.org/data_1277",
                  "term": "Protein features"
               },
               "format":
               [
                  {
                     "uri": "http://edamontology.org/format_2305",
                     "term": "GFF"
                  },
                                       {
                     "uri": "http://edamontology.org/format_3164",
                     "term": "GTrack"
                  },
               ]
            },
            {
               "data":
               {
                  "uri": "http://edamontology.org/data_2955",
                  "term": "Sequence report"
               },
               "format":
               [
                  {
                     "uri": "http://edamontology.org/format_2331",
                     "term": "HTML"
                  }
               ]
            }
         ]
         "note": "Predicts the presence and location of signal peptide cleavage sites in amino acid sequences from different organisms.",
         "cmd": "--someOption",
      }
   ],
   "toolType":
   [
     "Command-line tool",
     "Web application"
   ],
   "topic":
   [
     {
       "uri": "http://edamontology.org/topic_0080",
       "term": "Sequence analysis"
     },
     {
       "uri": "http://edamontology.org/topic_0078",
       "term": "Proteins"
     }
   ],
   "operatingSystem":
   [
     "Linux",
     "Mac"
   ],
   "language":
   [
     "ActionScript",
     "C"
   ],
   "license": "Proprietary",
   "collectionID":
   [
     "CBS",
     "mytools"
   ],
   "maturity": "Mature",
   "cost": "Free of charge (with restrictions)",
   "accessibility":
   [
      "Open access",
   ],
   "link":
   [
     {
       "url": "http://www.cbs.dtu.dk/cgi-bin/sw_request?signalp",
       "type": "Repository",
       "note": "A comment goes here"
     },
     {
       "url": "http://www.cbs.dtu.dk/helpdesk",
       "type": "Helpdesk",
       "type": "Issue tracker",
       "note": "A comment goes here"
     }
   ],
   "download":
   [
     {
       "url": "http://www.cbs.dtu.dk/cgi-bin/sw_request?signalp",
       "type": "Source code",
       "note": "A comment goes here"
       "version": "1.4"
   },
     {
       "url": "http://www.cbs.dtu.dk/cgi-bin/sw_request?signalp",
       "type": "Binaries",
       "note": "A comment goes here"
       "version": "1.4"
     }
   ],
   "documentation":
   [
     {
       "url": "http://www.cbs.dtu.dk/services/SignalP",
       "type": "General",
       "type": "Code of conduct",
       "note": "A comment goes here"
     },
    {
       "url": "http://www.cbs.dtu.dk/services/SignalP",
       "type": "Citation instructions",
       "note": "A comment goes here"
     }
   ],
   "relation":
   [
     {
       "biotoolsID": "needle",
       "type": "isNewVersionOf",
     },
    {
       "biotoolsID": "emboss",
       "type": "includedIn"
     }
   ],
   "publication":
   [
     {
        "doi": "10.1038/nmeth.1701",
        "pmid": "21959131",
        "pmcid": "21959131",
        "type": "Primary",
        "note": "A comment goes here",
        "version": "1.4"
     },
     {
        "doi": "10.1038/nmeth.1701",
        "pmid": "21959131",
        "pmcid": "21959131",
        "type": "Other",
        "note": "A comment goes here",
        "version": "1.4"
     }
   ],
   "credit":
   [
      {
         "name": "TN Petersen",
         "email": "test@email.com",
         "url": "http://someurl.org",
         "orcidid": "test",
         "gridid": "test",
         "rorid": "test",
         "fundrefid": "test",
         "typeEntity": "Person",
         "typeRole": "Developer",
         "note": "A comment goes here"
      },
      {
         "elixirPlatform", "Tools",
      },
      {
         "elixirNode", "Denmark"
      }
   ],
 }

Tool attributes

Name

Canonical software name assigned by the software developer or service provider, e.g. “needle”

Attribute name

name

Required

Yes

Cardinality

1 only

Type

String

Restrictions

Min length: 1

Max length: 100

Pattern: [\p{Zs}A-Za-z0-9+\.,\-_:;()]*

Example

# XML
<name>needle</name>

# JSON
"name": "needle"

Note

  • name may only contain space, uppercase and lowercase letters, decimal digits, plus symbol, period, comma, dash, underscore, colon, semicolon and parentheses.

  • line feeds, carriage returns, tabs, leading and trailing spaces, and multiple spaces are not allowed / will be removed.

  • see the curation guidelines.

Description

Textual description of the software, e.g. “needle reads two input sequences and writes their optimal global sequence alignment to file. It uses the Needleman-Wunsch alignment algorithm to find the optimum alignment (including gaps) of two sequences along their entire length. The algorithm uses a dynamic programming method to ensure the alignment is optimum, by exploring all possible alignments and choosing the best.”

Attribute name

description

Required

Yes

Cardinality

1 only

Type

String

Restrictions

Min length: 10

Max length: 1000

Example

# XML
<description>needle reads two input sequences and writes their optimal global sequence alignment to file. It uses the Needleman-Wunsch alignment algorithm to find the optimum alignment (including gaps) of two sequences along their entire length. The algorithm uses a dynamic programming method to ensure the alignment is optimum, by exploring all possible alignments and choosing the best.</description>

# JSON
"description": "needle reads two input sequences and writes their optimal global sequence alignment to file. It uses the Needleman-Wunsch alignment algorithm to find the optimum alignment (including gaps) of two sequences along their entire length. The algorithm uses a dynamic programming method to ensure the alignment is optimum, by exploring all possible alignments and choosing the best."

Note

  • minimum 10 and maximum 1000 characters.

  • line feeds, carriage returns, tabs, leading and trailing spaces, and multiple spaces are not allowed / will be removed.

  • see the curation guidelines.

Homepage

Homepage of the software, or some URL that best serves this purpose, e.g. “http://emboss.open-bio.org/rel/rel6/apps/needle.html”

Attribute name

homepage

Required

Yes

Cardinality

1

Type

URL

Restrictions

Pattern: http(s?)://[^\s/$.?#].[^\s]*

Example

# XML
<homepage>http://emboss.open-bio.org/rel/rel6/apps/needle.html</homepage>

# JSON
"homepage": "http://emboss.open-bio.org/rel/rel6/apps/needle.html"

Note

biotoolsID

Unique ID (case insensitive) of the tool that is assigned upon registration of the software in bio.tools, normally identical to tool name, e.g. “needle”.

Attribute name

biotoolsID

Required

No

Cardinality

0 or 1

Type

String

Restrictions

Pattern: [_\-.0-9a-zA-Z]*

Example

# XML
<biotoolsID>needle</biotoolsID>

# JSON
"biotoolsID": "needle"

Attention

  • a biotoolsID is set (and can only be changed) by bio.tools admin. It can be retrieved by API, but if specified in the payload to a PUT or POST request will be disregarded.

Note

  • the biotoolssID is a URL-safe and Linked-Data-safe derivative of (often identical to) the tool name. Allowed characters are uppercase and lowercase English letters (case insensitive!), decimal digits, hyphen, period, and underscore. Spaces can be preserved as underscore (“_”).

  • see the curation guidelines.

biotoolsCURIE

bio.tools CURIE (compact URI) based on the unique bio.tools ID of the tool, e.g. “biotools:needle”

Attribute name

biotoolsCURIE

Required

No

Cardinality

0 or 1

Type

String

Restrictions

Pattern: biotools:[_\-.0-9a-zA-Z]*

Example

# XML
<biotoolsCURIE>needle</biotoolsCURIE>

# JSON
"biotoolsCURIE": "needle"

Attention

  • a biotoolsCURIE is set (and can only be changed) by bio.tools admin. It can be retrieved by API, but if specified in the payload to a PUT or POST request will be disregarded.

Note

  • the bio.tools CURIE is simply the bio.tools tool ID with the prefix “biotools:”.

  • see the curation guidelines.

Version

Version information (typically a version number) of the software applicable to this bio.tools entry, e.g. “6.4.0.0”

Attribute name

version

Required

No

Cardinality

0 to many

Type

String array

Restrictions

Min length: 1

Max length: 100

Pattern: [\p{Zs}A-Za-z0-9+\.,\-_:;()]*

Example

# XML
<version>6.4.0.0</version>
<version>1.1 - 1.4, 2.0-alpha, 2.0-beta-01 - 2.0-beta-04, 2.0.0</version>

# JSON
"version":
[
  "6.4.0.0",
  "1.1 - 1.4, 2.0-alpha, 2.0-beta-01 - 2.0-beta-04, 2.0.0"
]

Note

  • name may only contain space, uppercase and lowercase English letters, decimal digits, plus symbol, period, comma, dash, colon, semicolon and parentheses.

  • line feeds, carriage returns, tabs, leading and trailing spaces, and multiple spaces are not allowed / will be removed.

  • see the curation guidelines.

Other IDs

A unique identifier of the software, typically assigned by an ID-assignment authority other than bio.tools, e.g. “RRID:SCR_015644”

Attribute name

otherID

Required

No

Cardinality

0 to many

Type

List of otherID objects

otherID object definition
  • value
    • Required: Yes

    • Cardinality: 1 only

    • Type: String

    • Pattern: (doi|DOI):?10.[0-9]{4,9}[A-Za-z0-9:;\)\(_/.-]+

    • Pattern: (rrid|RRID):.+

    • Pattern: (cpe|CPE):.+

    • Pattern: (biotools|BIOTOOLS):[_\-.0-9a-zA-Z]*

  • type
    • Required: No

    • Cardinality: 0 or 1

    • Type: ENUM (list)

    • Allowed values (see Curators Guide)

      • doi

      • rrid

      • cpe

      • biotoolsCURIE

  • version
    • Required: No

    • Cardinality: 0 or 1

    • Type: String

    • Restrictions: Min length: 1, Max length: 100

    • Pattern: [\p{Zs}A-Za-z0-9+\.,\-_:;()]*

Example

# XML
<otherID>
      <value>RRID:SCR_015644</value>
      <type>rrid</type>
      <version>4.1</version>
</otherID>
<otherID>
      <value>doi:10.1007/978-1-4939-7015-5_6</value>
      <type>doi</type>
      <version>4.1</version>
</otherID>

# JSON
"otherID":
[
      {
          "value": "RRID:SCR_015644",
          "type:" "rrid",
          "version": "4.1"
      },
      {
          "value": "doi:10.1007/978-1-4939-7015-5_6",
          "type": "doi"
          "version": "4.1"
      }
]

Note

  • type can normally be inferred from the value but should be specified otherwise. In the example it was not actually necessary to specify “type”.

  • see the curation guidelines.

Function

Details of a function (i.e. mode of operation) the software provides, expressed in terms from the EDAM ontology.

Attribute name

function

Required

No

Cardinality

0 to many

Type

List of function objects

Function object definition
Content
  • Operation
    • Required: Yes

    • Cardinality: 1 to many

    • Type: List of EDAM objects

  • Input
    • Required: No

    • Cardinality: 0 to many

    • Type: List of input objects

  • Output
    • Required: No

    • Cardinality: 0 to many

    • Type: List of output objects

  • note
    • Required: No

    • Cardinality: 0 or 1

    • Type: String

    • Restrictions: min length: 10, max length: 1000

  • cmd
    • Required: No

    • Cardinality: 0 or 1

    • Type: String

    • Restrictions: min length: 1, max length: 1000

Note

  • note and cmd: line feeds, carriage returns, tabs, leading and trailing spaces, and multiple spaces are not allowed / will be removed.

  • see the curation guidelines for the function group, note and command.

Example

# XML
<function>
    <operation>
        <uri>http://edamontology.org/operation_0418</uri>
        <term>Protein signal peptide detection</term>
    </operation>
    <operation>
        <uri>http://edamontology.org/operation_0422</uri>
        <term>Protein cleavage site prediction</term>
    </operation>
    <input>
        <data>
          <uri>http://edamontology.org/data_2044</uri>
          <term>Sequence</term>
        </data>
        <format>
            <uri>http://edamontology.org/format_1929</uri>
            <term>FASTA</term>
        </format>
    <output>
        <data>
          <uri>http://edamontology.org/data_1277</uri>
          <term>Protein features</term>
        </data>
        <format>
            <uri>http://edamontology.org/format_2305</uri>
            <term>GFF</term>
        </format>
        <data>
          <uri>http://edamontology.org/data_2955</uri>
          <term>Sequence report</term>
        </data>
        <format>
            <uri>http://edamontology.org/format_1929</uri>
            <term>FASTA</term>
        </format>
    </output>
    <note>Predicts the presence and location of signal peptide cleavage sites in amino acid sequences from different organisms.</note>
    <cmd>-s best</cmd>
</function>


# JSON
"function":
[
  {
    "operation":
    [
      {
        "uri": "http://edamontology.org/operation_0418",
        "term": "Protein signal peptide detection"
      },
      {
        "uri": "http://edamontology.org/operation_0422",
        "term": "Protein cleavage site prediction"
      }
    ],
    "input":
    [
      {
        "data":
        {
          "uri": "http://edamontology.org/data_2044",
          "term": "Sequence"
        },
        "format":
        [
          {
            "uri": "http://edamontology.org/format_1929",
            "term": "FASTA"
          }
        ]
      }
    ],
    "output":
    [
      {
        "data":
        {
          "uri": "http://edamontology.org/data_1277",
          "term": "Protein features"
        },
        "format":
        [
          {
            "uri": "http://edamontology.org/format_2305",
            "term": "GFF"
          }
        ]
      },
      {
        "data":
        {
          "uri": "http://edamontology.org/data_2955",
          "term": "Sequence report"
        },
        "format":
        [
          {
            "uri": "http://edamontology.org/format_1929",
            "term": "FASTA"
          }
        ]
      }
    ]
    "note": "Predicts the presence and location of signal peptide cleavage sites in amino acid sequences from different organisms.",
    "cmd": "-s best",
  }
]

Operation

The basic operation(s) performed by this software function (EDAM Operation), e.g. “‘Protein signal peptide detection’ (http://edamontology.org/operation_0418)”

Attribute name

operation

Required

Yes

Cardinality

1 to many

Child of

Function

Type

List of EDAM objects

EDAM object definition
Content
  • uri
    • Required: No (if term present), Yes (otherwise)

    • Cardinality: 0 or 1

    • Type: URL

  • term
    • Required: No (if URI present), Yes (otherwise)

    • Cardinality: 0 or 1

    • Type: String

Note

Example

# XML
<operation>
        <uri>http://edamontology.org/operation_0418</uri>
        <term>Protein signal peptide detection</term>
</operation>
<operation>
        <uri>http://edamontology.org/operation_0422</uri>
        <term>Protein cleavage site prediction</term>
</operation>

# JSON
"operation":
[
    {
        "uri": "http://edamontology.org/operation_0418",
        "term": "Protein signal peptide detection"
    },
    {
        "uri": "http://edamontology.org/operation_0422",
        "term": "Protein cleavage site prediction"
    }
]

Input

Primary input data (if any)

Attribute name

input

Required

No

Cardinality

0 to many

Child of

Function

Type

List of input objects

Input object definition
Content
  • data
    • Required: Yes

    • Cardinality: 1 only

    • Type: EDAM object

  • format
    • Required: No

    • Cardinality: 0 to many

    • Type: List of EDAM objects

Example

# XML
    <data>
      <uri>http://edamontology.org/data_2044</uri>
      <term>Sequence</term>
    </data>
    <format>
        <uri>http://edamontology.org/format_1929</uri>
        <term>FASTA</term>
    </format>

# JSON
"input":
[
  {
    "data":
    {
      "uri": "http://edamontology.org/data_2044",
      "term": "Sequence"
    },
    "format":
    [
      {
        "uri": "http://edamontology.org/format_1929",
        "term": "FASTA"
      }
    ]
  }
]

Output

Primary output data (if any)

Attribute name

output

Required

No

Cardinality

0 to many

Child of

Function

Type

List of output objects

Output object definition
Content
  • data
    • Required: Yes

    • Cardinality: 1 only

    • Type: EDAM object

  • format
    • Required: No

    • Cardinality: 0 to many

    • Type: List of EDAM objects

Example

# XML
"output":
    <data>
      <uri>http://edamontology.org/data_2044</uri>
      <term>Sequence</term>
    </data>
    <format>
        <uri>http://edamontology.org/format_1929</uri>
        <term>FASTA</term>
    </format>

# JSON
"output":
[
  {
    "data":
    {
      "uri": "http://edamontology.org/data_2044",
      "term": "Sequence"
    },
    "format":
    [
      {
        "uri": "http://edamontology.org/format_1929",
        "term": "FASTA"
      }
    ]
  }
]

Data

EDAM Data concept, e.g. “‘Sequence’ (http://edamontology.org/data_2044)” Attribute name

data

Required

Yes

Cardinality

1 only

Child of

Input or Output

Type

EDAM object

EDAM object definition
Content
  • uri
    • Required: No (if term present), Yes (otherwise)

    • Cardinality: 0 or 1

    • Type: URL

  • term
    • Required: No (if URI present), Yes (otherwise)

    • Cardinality: 0 or 1

    • Type: String

Note

  • an EDAM ontology Data concept URL and / or term are specified, e.g. “Protein sequences”, http://edamontology.org/data_2976.

  • URI and term are validated against EDAM ontology; if term and URI do not match, an error will be returned.

  • synonyms of terms (as defined in EDAM) are accepted, however, the synonym will be replaced with main term.

  • see the curation guidelines.

Example

# XML
<data>
 <uri>http://edamontology.org/data_2044</uri>
 <term>Sequence</term>
</data>

# JSON
"data":
{
  "uri": "http://edamontology.org/data_2044",
  "term": "Sequence"
}

Format

EDAM Format concept, e.g. “‘FASTA’ (http://edamontology.org/format_1929)”

Attribute name

format

Required

No

Cardinality

0 to many

Child of

Input or Output

Type

List of EDAM objects

EDAM object definition
Content
  • uri
    • Required: No (if term present), Yes (otherwise)

    • Cardinality: 0 or 1

    • Type: URL

  • term
    • Required: No (if URI present), Yes (otherwise)

    • Cardinality: 0 or 1

    • Type: String

Note

  • an EDAM ontology Format concept URL and / or term are specified, e.g. “FASTA”, http://edamontology.org/format_1929.

  • URI and term are validated against EDAM ontology; if term and URI do not match, an error will be returned.

  • synonyms of terms (as defined in EDAM) are accepted, however, the synonym will be replaced with main term.

  • see the curation guidelines.

Example

# XML
<format>
 <uri>http://edamontology.org/format_1929</uri>
 <term>FASTA</term>
</format>

# JSON
"format":
[
  {
    "uri": "http://edamontology.org/format_1929",
    "term": "FASTA"
  }
]

Tool type

The type of application software: a discrete software entity can have more than one type, e.g. “Command-line tool, Web application”

Attribute name

toolType

Required

No

Cardinality

0 to many

Type

ENUM (list)

Allowed values (see Curators Guide)
  • Bioinformatics portal

  • Command-line tool

  • Database portal

  • Desktop application

  • Library

  • Ontology

  • Plug-in

  • Script

  • SPARQL endpoint

  • Suite

  • Web application

  • Web API

  • Web service

  • Workbench

  • Workflow

Example

# XML
<toolType>Command-line tool</toolType>
<toolType>Web application</toolType>

# JSON
"toolType":
[
  "Command-line tool",
  "Web application"
]

Note

Topic

General scientific domain the software serves or other general category (EDAM Topic), e.g. “‘Protein sites, features and motifs’ (http://edamontology.org/topic_3510)”

Attribute name

topic

Required

No

Cardinality

0 to many

Type

List of EDAM objects

EDAM object definition
Content
  • uri
    • Required: No (if term present), Yes (otherwise)

    • Cardinality: 0 or 1

    • Type: URL

  • term
    • Required: No (if URI present), Yes (otherwise)

    • Cardinality: 0 or 1

    • Type: String

Example

# XML
<topic>
  <uri>http://edamontology.org/topic_0605</uri>
  <term>Informatics</term>
</topic>
<topic>
  <uri>http://edamontology.org/topic_3303</uri>
  <term>Medicine</term>
</topic>

# JSON
"topic":
[
  {
    "uri": "http://edamontology.org/topic_0605",
    "term": "Informatics"
  },
  {
    "uri": "http://edamontology.org/topic_3303",
    "term": "Medicine"
  }
]

Note

  • an EDAM ontology Topic concept URL and / or term are specified, e.g. “Proteomics”, http://edamontology.org/topic_0121.

  • URI and term are validated against EDAM ontology; if term and URI do not match, an error will be returned.

  • synonyms of terms (as defined in EDAM) are accepted, however, the synonym will be replaced with main term.

  • see the curation guidelines.

Operating system

The operating system supported by a downloadable software package, e.g. “Linux”

Attribute name

operatingSystem

Required

No

Cardinality

0 to many

Type

ENUM (list)

Allowed values (see Curators Guide)
  • Linux

  • Windows

  • Mac

Example

# XML
<operatingSystem>Linux</operatingSystem>
<operatingSystem>Mac</operatingSystem>

# JSON
"operatingSystem":
[
  "Linux",
  "Mac"
]

Note

Programming language

Name of programming language the software source code was written in, e.g. “C”

Attribute name

language

Required

No

Cardinality

0 to many

Type

ENUM (list)

Allowed values (see Curators Guide)

ActionScript, Ada, AppleScript, Assembly language, AWK, Bash, C, C#, C++, COBOL, ColdFusion, CWL, D, Delphi, Dylan, Eiffel, Forth, Fortran, Groovy, Haskell, Icarus, Java, JavaScript, Julia, JSP, LabVIEW, Lisp, Lua, Maple, Mathematica, MATLAB, MLXTRAN, NMTRAN, OCaml, Pascal, Perl, PHP, Prolog, PyMOL, Python, R, Racket, REXX, Ruby, SAS, Scala, Scheme, Shell, Smalltalk, SQL, Turing, Verilog, VHDL, Visual Basic, XAML, Other

Example

# XML
<language>Python</language>
<language>C</language>

# JSON
"language":
[
  "Python",
  "C"
]

Note

License

Software or data usage license, e.g. “GPL-3.0”

Attribute name

license

Required

No

Cardinality

0 or 1

Type

ENUM

Allowed values (see Curators Guide)

0BSD, AAL, ADSL, AFL-1.1, AFL-1.2, AFL-2.0, AFL-2.1, AFL-3.0, AGPL-1.0, AGPL-3.0, AMDPLPA, AML, AMPAS, ANTLR-PD, APAFML, APL-1.0, APSL-1.0, APSL-1.1, APSL-1.2, APSL-2.0, Abstyles, Adobe-2006, Adobe-Glyph, Afmparse, Aladdin, Apache-1.0, Apache-1.1, Apache-2.0, Artistic-1.0, Artistic-1.0-Perl, Artistic-1.0-cl8, Artistic-2.0, BSD-2-Clause, BSD-2-Clause-FreeBSD, BSD-2-Clause-NetBSD, BSD-3-Clause, BSD-3-Clause-Attribution, BSD-3-Clause-Clear, BSD-3-Clause-LBNL, BSD-3-Clause-No-Nuclear-License, BSD-3-Clause-No-Nuclear-License-2014, BSD-3-Clause-No-Nuclear-Warranty, BSD-4-Clause, BSD-4-Clause-UC, BSD-Protection, BSD-Source-Code, BSL-1.0, Bahyph, Barr, Beerware, BitTorrent-1.0, BitTorrent-1.1, Borceux, CATOSL-1.1, CC-BY-1.0, CC-BY-2.0, CC-BY-2.5, CC-BY-3.0, CC-BY-4.0, CC-BY-NC-1.0, CC-BY-NC-2.0, CC-BY-NC-2.5, CC-BY-NC-3.0, CC-BY-NC-4.0, CC-BY-NC-ND-1.0, CC-BY-NC-ND-2.0, CC-BY-NC-ND-2.5, CC-BY-NC-ND-3.0, CC-BY-NC-ND-4.0, CC-BY-NC-SA-1.0, CC-BY-NC-SA-2.0, CC-BY-NC-SA-2.5, CC-BY-NC-SA-3.0, CC-BY-NC-SA-4.0, CC-BY-ND-1.0, CC-BY-ND-2.0, CC-BY-ND-2.5, CC-BY-ND-3.0, CC-BY-ND-4.0, CC-BY-SA-1.0, CC-BY-SA-2.0, CC-BY-SA-2.5, CC-BY-SA-3.0, CC-BY-SA-4.0, CC0-1.0, CDDL-1.0, CDDL-1.1, CECILL-1.0, CECILL-1.1, CECILL-2.0, CECILL-2.1, CECILL-B, CECILL-C, CNRI-Jython, CNRI-Python, CNRI-Python-GPL-Compatible, CPAL-1.0, CPL-1.0, CPOL-1.02, CUA-OPL-1.0, Caldera, ClArtistic, Condor-1.1, Crossword, CrystalStacker, Cube, D-FSL-1.0, DOC, DSDP, Dotseqn, ECL-1.0, ECL-2.0, EFL-1.0, EFL-2.0, EPL-1.0, EUDatagrid, EUPL-1.0, EUPL-1.1, Entessa, ErlPL-1.1, Eurosym, FSFAP, FSFUL, FSFULLR, FTL, Fair, Frameworx-1.0, FreeImage, GFDL-1.1, GFDL-1.2, GFDL-1.3, GL2PS, GPL-1.0, GPL-2.0, GPL-3.0, Giftware, Glide, Glulxe, HPND, HaskellReport, IBM-pibs, ICU, IJG, IPA, IPL-1.0, ISC, ImageMagick, Imlib2, Info-ZIP, Intel, Intel-ACPI, Interbase-1.0, JSON, JasPer-2.0, LAL-1.2, LAL-1.3, LGPL-2.0, LGPL-2.1, LGPL-3.0, LGPLLR, LPL-1.0, LPL-1.02, LPPL-1.0, LPPL-1.1, LPPL-1.2, LPPL-1.3a, LPPL-1.3c, Latex2e, Leptonica, LiLiQ-P-1.1, LiLiQ-R-1.1, LiLiQ-Rplus-1.1, Libpng, MIT, MIT-CMU, MIT-advertising, MIT-enna, MIT-feh, MITNFA, MPL-1.0, MPL-1.1, MPL-2.0, MPL-2.0-no-copyleft-exception, MS-PL, MS-RL, MTLL, MakeIndex, MirOS, Motosoto, Multics, Mup, NASA-1.3, NBPL-1.0, NCSA, NGPL, NLOD-1.0, NLPL, NOSL, NPL-1.0, NPL-1.1, NPOSL-3.0, NRL, NTP, Naumen, NetCDF, Newsletr, Nokia, Noweb, Nunit, OCCT-PL, OCLC-2.0, ODbL-1.0, OFL-1.0, OFL-1.1, OGTSL, OLDAP-1.1, OLDAP-1.2, OLDAP-1.3, OLDAP-1.4, OLDAP-2.0, OLDAP-2.0.1, OLDAP-2.1, OLDAP-2.2, OLDAP-2.2.1, OLDAP-2.2.2, OLDAP-2.3, OLDAP-2.4, OLDAP-2.5, OLDAP-2.6, OLDAP-2.7, OLDAP-2.8, OML, OPL-1.0, OSET-PL-2.1, OSL-1.0, OSL-1.1, OSL-2.0, OSL-2.1, OSL-3.0, OpenSSL, PDDL-1.0, PHP-3.0, PHP-3.01, Plexus, PostgreSQL, Python-2.0, QPL-1.0, Qhull, RHeCos-1.1, RPL-1.1, RPL-1.5, RPSL-1.0, RSA-MD, RSCPL, Rdisc, Ruby, SAX-PD, SCEA, SGI-B-1.0, SGI-B-1.1, SGI-B-2.0, SISSL, SISSL-1.2, SMLNJ, SMPPL, SNIA, SPL-1.0, SWL, Saxpath, Sendmail, SimPL-2.0, Sleepycat, Spencer-86, Spencer-94, Spencer-99, SugarCRM-1.1.3, TCL, TMate, TORQUE-1.1, TOSL, UPL-1.0, Unicode-TOU, Unlicense, VOSTROM, VSL-1.0, Vim, W3C, W3C-19980720, WTFPL, Watcom-1.0, Wsuipa, X11, XFree86-1.1, XSkat, Xerox, Xnet, YPL-1.0, YPL-1.1, ZPL-1.1, ZPL-2.0, ZPL-2.1, Zed, Zend-2.0, Zimbra-1.3, Zimbra-1.4, Zlib, bzip2-1.0.5, bzip2-1.0.6, curl, diffmark, dvipdfm, eGenix, gSOAP-1.3b, gnuplot, iMatix, libtiff, mpich2, psfrag, psutils, xinetd, xpp, zlib-acknowledgement, Proprietary, Freeware, Other, Not licensed

Example

# XML
<license>Proprietary</license>

# JSON
"license": "Proprietary"

Note

Collection

Unique ID of a collection that the software has been assigned to within bio.tools, e.g. “CBS

Attribute name

collectionID

Required

No

Cardinality

0 to many

Type

List of strings

Restrictions

Min length: 1

Max length: 100

Pattern: [\p{Zs}A-Za-z0-9+\.,\-_:;()]*

Example

# XML
<collectionID>CBS</collectionID>
<collectionID>NorduGrid</collectionID>

# JSON
"collectionID":
[
  "CBS",
  "NorduGrid"
]

Note

  • collection may only contain space, uppercase and lowercase letters, decimal digits, plus symbol, period, comma, dash, underscore, colon, semicolon and parentheses.

  • line feeds, carriage returns, tabs, leading and trailing spaces, and multiple spaces are not allowed / will be removed.

  • see the curation guidelines.

Maturity

How mature the software product is, e.g. “Mature”

Attribute name

maturity

Required

No

Cardinality

0 or 1

Type

ENUM

Allowed valuse (see Curators Guide)
  • Emerging

  • Mature

  • Legacy

Example

# XML
<maturity>Mature</maturity>

# JSON
"maturity": "Mature"

Note

Cost

Monetary cost of acquiring the software, e.g. “Free of charge (with retritions)”

Attribute name

cost

Required

No

Cardinality

0 or 1

Type

ENUM

Allowed values (see Curators Guide)
  • Free of charge

  • Free of charge (with restrictions)

  • Commercial

Example

# XML
<cost>Free of charge (with restrictions)</cost>

# JSON
"cost": "Free of charge (with restrictions)"

Note

Accessibility

Whether there are non-monetary restrictions on accessing an online service, e.g. “Open access”

Attribute name

accessibility

Required

No

Cardinality

0 or 1

Type

ENUM (list)

Allowed values (see Curators Guide)
  • Open access

  • Open access (with restrictions)

  • Restricted access

Example

# XML
<accessibility>Open access</accessibility>

# JSON
"accessibility":
[
  "Open access",
]

Note

ELIXIR platform

ELIXIR platform credited for developing or providing the software.

Attribute name

elixirPlatform

Required

No

Cardinality

0 to many

Type

ENUM (list)

Allowed values (see Curators Guide)

  • Data

  • Tools

  • Compute

  • Interoperability

  • Training

Example

# XML
<elixirPlatform>Open access</elixirPlatform>
<elixirPlatform>Freeware</elixirPlatform>

# JSON
"elixirPlatform":
[
  "Tools",
  "Compute"
]

Note

ELIXIR node

ELIXIR node credited for developing or providing the software - the software is in Node Service Delivery Plan.

Attribute name

elixirNode

Required

No

Cardinality

0 to many

Type

ENUM (list)

Allowed values (see Curators Guide)

  • Belgium

  • Czech Republic

  • Denmark

  • EMBL

  • Estonia

  • Finland

  • France

  • Germany

  • Greece

  • Hungary

  • Ireland

  • Israel

  • Italy

  • Luxembourg

  • Netherlands

  • Norway

  • Portugal

  • Slovenia

  • Spain

  • Sweden

  • Switzerland

  • UK

Example

# XML
<elixirNode>Denmark</elixirNode>
<elixirNode>France</elixirNode>

# JSON
"elixirNode":
[
  "Denmark",
  "France"
]

Note

ELIXIR community

ELIXIR (or associated) community to which the software is relevant.

Attribute name

elixirCommunity

Required

No

Cardinality

0 to many

Type

ENUM (list)

Allowed values (see Curators Guide)

  • 3D-BioInfo

  • Federated Human Data

  • Galaxy

  • Human Copy Number Variation

  • Intrinsically Disordered Proteins

  • Marine Metagenomics

  • Metabolomics

  • Microbial Biotechnology

  • Plant Sciences

  • Proteomics

  • Rare Diseases

Example

# XML
<elixirCommunity>Galaxy</elixirCommunity>
<elixirCommunity>Metabolomics</elixirCommunity>

# JSON
"elixirCommunity":
[
  "Galaxy",
  "Metabolomics"
]

Note

Download

Links to downloads for the software, e.g. source code, virtual machine image or container.

Attribute name

download

Required

No

Cardinality

0 to many

Type

List of download objects

Download object definition
Content
  • url
    • Required: Yes

    • Cardinality: 1 only

    • Type: URL

    • Pattern: http(s?)://[^\s/$.?#].[^\s]*

  • type
    • Required: Yes

    • Cardinality: 1 only

    • Type: ENUM

    • Allowed values: (see Curators Guide)

      • API specification

      • Biological data

      • Binaries

      • Command-line specification

      • Container file

      • Icon

      • Screenshot

      • Source code

      • Software package

      • Test data

      • Test script

      • Tool wrapper (CWL)

      • Tool wrapper (galaxy)

      • Tool wrapper (taverna)

      • Tool wrapper (other)

      • VM image

      • Downloads page

      • Other

  • note
    • Required: No

    • Cardinality: 0 or 1

    • Type: String

    • Restrictions: min length: 10, max length: 1000

  • version
    • Required: No

    • Cardinality: 0 or 1

    • Type: String

    • Restrictions: Min length: 1, Max length: 100

    • Pattern: [\p{Zs}A-Za-z0-9+\.,\-_:;()]*

Example

# XML
<download>
 <url>http://www.cbs.dtu.dk/cgi-bin/sw_request?signalp</url>
 <type>Source code</url>
 <note>Complete distibution</note>
 <version>1.4</version>
</download>

# JSON
"download":
[
  {
    "url": "http://www.cbs.dtu.dk/cgi-bin/sw_request?signalp",
    "type": "Source code",
    "note": "Complete distibution",
    "version": "1.4"
  }
]

Note

  • the note is minimum 10 and maximum 1000 characters. Line feeds, carriage returns, tabs, leading and trailing spaces, and multiple spaces are not allowed / will be removed.

  • see the curation guidelines.

Documentation

Links to documentation about the software e.g. user manual, API documentation or training material.

Attribute name

documentation

Required

No

Cardinality

0 to many

Type

List of documentation objects

Documentation object definition
Content
  • url
    • Required: Yes

    • Cardinality: 1 only

    • Type: URL

    • Pattern: http(s?)://[^\s/$.?#].[^\s]*

  • type
    • Required: Yes

    • Cardinality: 1 or more

    • Type: ENUM

    • Allowed values: (see Curators Guide)

      • API documentation

      • Citation instructions

      • Code of conduct

      • Command-line options

      • Contributions policy

      • FAQ

      • General

      • Governance

      • Installation instructions

      • User manual

      • Terms of use

      • Release notes

      • Training material

      • Other

  • note
    • Required: No

    • Cardinality: 0 or 1

    • Type: String

    • Restrictions: min legth:10, max length: 1000

Example

# XML
<documentation>
 <url>http://www.cbs.dtu.dk/services/SignalP</url>
 <type>General</type>
 <type>Code of conduct</type>
 <note>Comprehensive usage instructions.</note>
</documentation>

# JSON
"documentation":
[
  {
    "url": "http://www.cbs.dtu.dk/services/SignalP",
    "type": "General",
    "type": "Code of conduct",
    "note": "Comprehensive usage instructions"
  }
]

Note

  • the note is minimum 10 and maximum 1000 characters. Line feeds, carriage returns, tabs, leading and trailing spaces, and multiple spaces are not allowed / will be removed.

  • see the curation guidelines.

Relation

Details of a relationship this software shares with other software registered in bio.tools.

Attribute name

relation

Required

No

Cardinality

0 to many

Type

List of relation objects

Relation object definition
Content
  • biotoolsID
    • Required: Yes

    • Cardinality: 1 only

    • Type: String

    • Pattern: [_\-.0-9a-zA-Z]*

  • type
    • Required: Yes

    • Cardinality: 1 only

    • Type: ENUM

    • Allowed values: (see Curators Guide)

      • isNewVersionOf

      • hasNewVersion

      • uses

      • usedBy

      • includes

      • includedIn

Example

# XML
<relation>
 <biotoolsID>needle</biotoolsID>
 <type>isNewVersionOf</type>
</relation>

# JSON
"relation":
[
  {
    "biotoolsID": "needle",
    "type": "isNewVersionOf",
  },
  {
    "biotoolsID": "emboss",
    "type": "includedIn",
  },
]

Note

Publication

Publications about the software

Attribute name

publication

Required

Yes

Cardinality

0 to many

Type

List of publication objects

Publication object definition
Content
  • pmcid
    • Required: One of doi, pmid or pmcid must be specified.

    • Cardinality: 0 or 1

    • Type: PMCID

    • Pattern: (PMC)[1-9][0-9]{0,8}

  • pmid
    • Required: One of doi, pmid or pmcid must be specified.

    • Cardinality: 0 or 1

    • Type: PMID

    • Pattern: [1-9][0-9]{0,8}

  • doi
    • Required: One of doi, pmid or pmcid must be specified.

    • Cardinality: 0 or 1

    • Type: DOI

    • Pattern: 10.[0-9]{4,9}[A-Za-z0-9:;\)\(_/.-]+

  • type
    • Required: No

    • Cardinality: 0 to many

    • Type: ENUM

    • Allowed values: (see Curators Guide) - Primary - Method - Usage - Benchmarking study - Review - Other

  • note
    • Required: No

    • Cardinality: 0 or 1

    • Type: String

    • Restrictions: min length: 10, max length: 1000

  • version
    • Required: No

    • Cardinality: 0 or 1

    • Type: String

    • Restrictions: Min length: 1, Max length: 100

    • Pattern: [\p{Zs}A-Za-z0-9+\.,\-_:;()]*

Example

# XML
<publication>
 <pmcid>21959131</pmcid>
 <pmid>21959131</pmid>
 <doi>10.1038/nmeth.1701</doi>
 <type>Primary</type>
 <type>Method</type>
 <note>A comment goes here</type>
 <version>4.0</version>
</publication>

# JSON
"publication":
[
  {
    "pmcid": "21959131",
    "pmid": "21959131",
    "doi": "10.1038/nmeth.1701",
    "type": "Primary",
    "type": "Method",
    "note": "A comment goes here",
    "version": "4.0"
  }
]

Note

Credit

Individuals or organisations that should be credited, or may be contacted about the software.

Attribute name

credit

Required

No

Cardinality

0 to many

Type

List of credit objects

Credit object definition
Content
  • name
    • Required: Yes

    • Cardinality: 0 or 1

    • Type: String

    • Restrictions: min length: 1, max length: 100

  • orcidid
  • gridid
    • Required: No

    • Cardinality: 0 or 1

    • Type: String

    • Restrictions: pattern: grid.[0-9]{4,}.[a-f0-9]{1,2}

  • rorid
    • Required: No

    • Cardinality: 0 or 1

    • Type: String

  • fundrefid
    • Required: No

    • Cardinality: 0 or 1

    • Type: String

  • email
  • url
    • Required: No

    • Cardinality: 0 or 1

    • Type: URL

    • Restrictions: pattern: http(s?)://[^s/$.?#].[^s]*

  • typeEntity
    • Required: No

    • Cardinality: 0 or 1

    • Type: ENUM

    • Allowed values: (see Curators Guide)

      • Person

      • Project

      • Division

      • Institute

      • Consortium

      • Funding agency

  • typeRole
    • Required: No

    • Cardinality: 0 to many

    • Type: ENUM (list)

    • Allowed values: (see Curators Guide)

      • Developer

      • Maintainer

      • Provider

      • Documentor

      • Contributor

      • Support

      • Primary contact

  • note
    • Required: No

    • Cardinality: 0 or 1

    • Type: String

    • Restrictions: min length: 10, max length: 1000

Example

# XML
<credit>
 <name>TN Petersen</name>
 <orcidid>http://orcid.org/0000-0002-1825-0097</orcidid>
 <gridid>grid.5170.3</orcidid>
 <rorid>03yrm5c26</rorid>
 <fundrefid>10.13039/100009273</fundrefid>
 <email>test@cbs.dtu.dk</email>
 <url>http://cbs.dtu.dk</url>
 <typeEntity>Person</typeEntity>
 <typeRole>Developer</typeRole>
 <typeRole>Documentor</typeRole>
 <note>Lead developer</note>
</credit>

# JSON
"credit":
[
  {
    "name": "TN Petersen",
    "orcidid":"http://orcid.org/0000-0002-1825-0097",
    "gridid":"grid.5170.3",
    "rorid":"03yrm5c26",
    "fundrefid":"10.13039/100009273",
    "url": "http://cbs.dtu.dk",
    "email": "test@cbs.dtu.dk",
    "typeEntity": "Person",
    "typeRole":
    [
      "Developer",
      "Documentor"
    ]
    "note": "Lead developer"
  }
]

Example

# XML
<credit>
 <elixirPlatform>Tools</elixirPlatform>
</credit>

# JSON
"credit":
[
  {
    "elixirPlatform": "Norway"
  }
]

Note

  • one of <name>, <email> or <url> must be specified.

  • the credit name may only contain space, uppercase and lowercase letters, decimal digits, plus symbol, period, comma, dash, underscore, colon, semicolon and parentheses.

  • line feeds, carriage returns, tabs, leading and trailing spaces, and multiple spaces are not allowed / will be removed.

  • see the curation guidelines.

Entry management attributes

Permissions

Attribute name

editPermission

Required

No

Cardinality

todo

Type

Permission object

Permission object definition
Content
  • type
    • Required: Yes

    • Cardinality: todo

    • Type: ENUM

    • Allowed values: - private - public - group

  • authors
    • Required: No

    • Cardinality: todo

    • Type: List of usernames

Notes

‘authors’ only need to be provided when type is set to group.

Example

# XML

# JSON
"editPermission":
{
  "type": "group",
  "authors":
  [
    "ekry",
    "lukbe"
  ]
}