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"
  ]
}