Skip to content

Latest commit

 

History

History
1076 lines (858 loc) · 24.1 KB

api_attribute_model_dev.rst

File metadata and controls

1076 lines (858 loc) · 24.1 KB

Attribute model - development

Note

This is the API documentation for upcoming features, already available on the dev server at https://dev.bio.tools.

This page documents the structure of a JSON object that describes a bio.tools tool.

Submission JSON

To submit a tool via our bio.tools API you’ll need to POST a JSON / XML / YAML document to the tool endpoint.

A sample JSON document may look like this:

{
  "name": "SignalP",
  "topic": [
    {
      "uri": "http://edamontology.org/topic_0003",
      "term": "Topic"
    }
  ],
  "function": [
    {
      "comment": "predicts the presence and location of signal peptide cleavage sites in amino acid sequences from different organisms",
      "handle": "--someOption",
      "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_2305",
              "term": "GFF"
            }
            ]
        }
      ]
    }
  ],
  "homepage": "http://cbs.dtu.dk/services/SignalP/",
  "description": "Prediction of the presence and location of signal peptide cleavage sites in amino acid sequences from different organisms.",
  "cost": "Free of charge (with restrictions)",
  "maturity": "Mature",
  "credit": [
    {
      "name": "TN Petersen",
      "email": "[email protected]",
      "orcidid": "test",
      "gridid": "test",
      "typeEntity": "Person",
      "typeRole": "Developer",
      "comment": "test"
    }
  ],
  "link": [
    {
      "url": "http://www.cbs.dtu.dk/cgi-bin/sw_request?signalp",
      "type": "Repository",
      "comment": "test"
    }
  ],
  "download": [
    {
      "url": "http://www.cbs.dtu.dk/cgi-bin/sw_request?signalp",
      "type": "Source code",
      "comment": "test"
    },
    {
      "url": "http://www.cbs.dtu.dk/cgi-bin/sw_request?signalp",
      "type": "Binaries",
      "comment": "test"
    }
  ],
  "license": "Proprietary",
  "operatingSystem": [
    "Linux",
    "Mac"
  ],
  "toolType": [
    "Command-line tool",
    "Web application"
  ],
  "language": ["ActionScript"],
  "documentation": [
    {
      "url": "http://www.cbs.dtu.dk/services/SignalP",
      "type": "General",
      "comment": "test"
    }
  ],
  "publication": [
    {
      "pmcid": "21959131",
      "pmid": "21959131",
      "doi": "doi:10.1038/nmeth.1701",
      "type": "Primary"
    },
    {
      "pmcid": "21959131",
      "pmid": "21959131",
      "doi": "doi:10.1038/nmeth.1701",
      "type": "Other"
    }
  ],
  "collectionID": [
    "CBS"
  ],
  "contact": [
    {
      "email": "[email protected]",
      "name": "Henrik Nielsen",
      "tel": "123456798",
      "url": "https://bio.tools"
    }
  ],
  "editPermission": {
    "type": "private",
    "authors": ["ekry"]
  }
}

Note

The API supports XML and YAML format uploads and will (soon!) support XML comatible with biotoolsSchema (https://github.com/bio-tools/biotoolsschema). Example files will be added here soon.

Data model

Name

Attribute name
name
Required
Yes
Type
String
Restrictions

Max length: 50

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

Example

"name": "SignalP"

Current version

Attribute name
currentVersion
Required
No
Type
String
Restrictions
Max length: 50

Example

"currentVersion": "4.1"

Topic

Attribute name
topic
Required
Yes
Type
List of EDAM objects (1 or more)
EDAM object definition
Content
  • uri
    • Required: No (if term present)
    • Type: URL
  • term
    • Required: No (if URI present)
    • Type: String
Notes

Either term or URI can be provided, or both.

URI and term are validated against EDAM ontology.

If term does not match URI an error will be returned.

Synonym terms are accepted, however, the synonym will be replaced with main term.

Example

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

Function

Attribute name
function
Required
Yes
Type
List of function objects (1 or more)
Function object definition
Content
  • :ref:`operation`
    • Required: Yes
    • Type: List of EDAM objects
  • input
    • Required: No
    • Type: List of input objects
  • output
    • Required: No
    • Type: List of output objects
  • comment
    • Required: No
    • Type: String
    • Restrictions: max length: 1000

Example

"function": [
  {
    "comment": "predicts the presence and location of signal peptide cleavage sites in amino acid sequences from different organisms",
    "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"
          }
        ]
      }
    ]
  }
]

Operation

Attribute name
operation
Required
Yes
Child of
:ref:`function`
Type
List of EDAM objects (1 or more)
EDAM object definition
Content
  • uri
    • Required: No (if term present)
    • Type: URL
  • term
    • Required: No (if URI present)
    • Type: String
Notes

Either term or URI can be provided, or both.

URI and term are validated against EDAM ontology.

If term does not match URI an error will be returned.

Synonym terms are accepted, however, the synonym will be replaced with main term.

Example

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

Input

Attribute name
input
Required
No
Child of
:ref:`function`
Type
List of input objects (0 or more)
Input object definition
Content
  • data
    • Required: Yes
    • Type: EDAM object
  • format
    • Required: No
    • Type: List of EDAM objects

Example

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

Output

Attribute name
output
Required
No
Child of
:ref:`function`
Type
List of output objects (0 or more)
Output object definition
Content
  • data
    • Required: Yes
    • Type: EDAM object
  • format
    • Required: No
    • Type: List of EDAM objects

Example

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

Data

Attribute name
data
Required
Yes
Child of
:ref:`input` or :ref:`output`
Type
EDAM object
EDAM object definition
Content
  • uri
    • Required: No (if term present)
    • Type: URL
  • term
    • Required: No (if URI present)
    • Type: String
Notes

Either term or URI can be provided, or both.

URI and term are validated against EDAM ontology.

If term does not match URI an error will be returned.

Synonym terms are accepted, however, the synonym will be replaced with main term.

Example

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

Format

Attribute name
format
Required
No
Child of
:ref:`input` or :ref:`output`
Type
List of EDAM objects (0 or more)
EDAM object definition
Content
  • uri
    • Required: No (if term present)
    • Type: URL
  • term
    • Required: No (if URI present)
    • Type: String
Notes

Either term or URI can be provided, or both.

URI and term are validated against EDAM ontology.

If term does not match URI an error will be returned.

Synonym terms are accepted, however, the synonym will be replaced with main term.

Example

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

Homepage

Attribute name
homepage
Required
Yes
Type
URL
Restrictions

Max length: 300

Pattern: ^https?://[^s/$.?#].[^s]*$

Example

"homepage": "http://cbs.dtu.dk/services/SignalP/"

Description

Attribute name
description
Required
Yes
Type
String
Restrictions
Max length: 1000

Example

"description": "Prediction of the presence and location of signal
peptide cleavage sites in amino acid sequences from different organisms."

Cost

Attribute name
cost
Required
No
Type
ENUM
Allowed values
  • Free of charge
  • Free of charge (with restrictions)
  • Commercial

Example

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

Maturity

Attribute name
maturity
Required
No
Type
ENUM
Allowed values
  • Emerging
  • Mature
  • Legacy

Example

"maturity": "Mature"

Credit

Attribute name
credit
Required
No
Type
List of credit objects (0 or more)
Credit object definition
Content
  • name
    • Required: Yes
    • Type: String
    • Restrictions: max length: 100
  • url
    • Required: No
    • Type: URL
    • Restrictions: max length: 300
  • email
    • Required: No
    • Type: Email
    • Restrictions: max length: 300
  • orcidId
    • Required: No
    • Type: String
    • Restrictions: max length: 100
  • gridId
    • Required: No
    • Type: String
    • Restrictions: max length: 100
  • typeEntity
    • Required: No
    • Type: ENUM
    • Allowed values: Person, Project, Division, Institute, Consortium, Funding agency
  • typeRole
    • Required: No
    • Type: ENUM
    • Allowed values: Developer, Maintainer, Provider, Documentor, Contributor, Support
  • comment
    • Required: No
    • Type: String
    • Restrictions: max length: 1000

Example

"credit": [
  {
    "name": "TN Petersen",
    "url": "http://cbs.dtu.dk",
    "email": "[email protected]",
    "orcidId":"test",
    "gridId": "test",
    "typeEntity": "Person",
    "typeRole": "Developer",
    "comment": "test"
  }
]

Link

Attribute name
link
Required
No
Type
List of link objects (0 or more)
Link object definition
Content
  • url
    • Required: Yes
    • Type: URL
    • Restrictions: max length: 300
  • type
    • Required: Yes
    • Type: EDNUM
    • Allowed values: Browser, Helpdesk, Issue tracker, Mailinglist, Mirror, Registry, Repository, Social media
  • comment
    • Required: No
    • Type: String
    • Restrictions: max length: 1000

Example

"link": [
  {
    "url": "http://www.cbs.dtu.dk/cgi-bin/sw_request?signalp",
    "type": "Repository",
    "comment": "test"
  }
]

Download

Attribute name
download
Required
No
Type
List of download objects (0 or more)
Download object definition
Content
  • url
    • Required: Yes
    • Type: URL
    • Restrictions: max length: 300
  • type
    • Required: Yes
    • Type: EDNUM
    • Allowed values: API specification, Biological data, Binaries, Binary package, Command-line specification, Container file, CWL file, Icon, Ontology, Screenshot, Source code, Source package, Test data, Test script, Tool wrapper (galaxy), Tool wrapper (taverna), Tool wrapper (other), VM image
  • comment
    • Required: No
    • Type: String
    • Restrictions: max length: 1000

Example

"download": [
  {
    "url": "http://www.cbs.dtu.dk/cgi-bin/sw_request?signalp",
    "type": "Source code",
    "comment": "test"
  }
]

Documentation

Attribute name
documentation
Required
No
Type
List of documentation objects (0 or more)
Documentation object definition
Content
  • url
    • Required: Yes
    • Type: URL
    • Restrictions: max length: 300
  • type
    • Required: Yes
    • Type: EDNUM
    • Allowed values: API documentation, Citation instructions, General, Manual, Terms of use, Training material, Other
  • comment
    • Required: No
    • Type: String
    • Restrictions: max length: 1000

Example

"documentation": [
  {
    "url": "http://www.cbs.dtu.dk/services/SignalP",
    "type": "General",
    "comment": "test"
  }
]

License

Attribute name
license
Required
No
Type
ENUM
Allowed values
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, 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, 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, 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, Other

Example

"license": "Proprietary"

Operating system

Attribute name
operatingSystem
Required
No
Type
List of ENUMs
Allowed values
  • Mac
  • Linux
  • Windows

Example

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

Tool type

Attribute name
toolType
Required
Yes
Type
ENUM
Allowed values
Command-line tool, Web application, Desktop application, Script, Suite, Workbench, Database portal, Ontology, Workflow, Plug-in, Library, Web API, Web service, SPARQL endpoint

Example

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

Language

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

Example

"language": [
  "ActionScript"
]

Publication

Attribute name
publication
Required
Yes
Type
List of publication objects (1 or more)
Publication object definition
Content
  • pmcid
    • Required: No
    • Type: PMCID
  • pmid
    • Required: No
    • Type: PMID
  • doi
    • Required: No
    • Type: DOI
  • type
    • Required: No
    • Type: ENUM
    • Allowed values: Primary, Benchmark, Review, Other
  • version
    • Required: No
    • Type: String
    • Restrictions: max length: 300

Example

"publication": [
  {
    "pmcid": "21959131",
    "pmid": "21959131",
    "doi": "doi:10.1038/nmeth.1701",
    "type": "Primary",
    "version": "4.0"
  }
]

Collection

Attribute name
collectionID
Required
No
Type
List of strings
Restrictions
Max length: 300

Example

"collectionID": [
  "CBS"
]

Contact

Attribute name
contact
Required
No
Type
List of contact objects (0 or more)
Contact object definition
Content
  • name
    • Required: Yes
    • Type: String
    • Restrictions: max length: 100
  • url
    • Required: No
    • Type: URL
    • Restrictions: max length: 300
  • email
    • Required: No
    • Type: Email
    • Restrictions: max length: 300
  • tel
    • Required: No
    • Type: String
    • Restrictions: max length: 30

Example

"contact": [
  {
    "name": "Henrik Nielsen",
    "url": "http://cbs.dtu.dk",
    "email": "[email protected]",
    "tel": "123456798"
  }
]

Permissions

Attribute name
editPermission
Required
No
Type
Permission object
Permission object definition
Content
  • type
    • Required: Yes
    • Type: ENUM
    • Allowed values: private, public, group
  • authors
    • Required: No
    • Type: List of usernames
Notes
'authors' only need to be provided when type is set to group.

Example

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