Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.0.0 #92

Merged
merged 8 commits into from
Aug 10, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion Best_Practices

This file was deleted.

28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,27 +33,27 @@ A functional example of a BCO with associated input and output files, and includ

## User Guide

The [BioCompute Objects user guide](/docs/user_guide.md) provides an introduction to implementing/writing a BCO for a pipeline and/or a workflow, and is taken from the [BioCompute Objects Specification Document](/IEEE_Docs/standard.md).
The [BioCompute Objects user guide](/content/user_guide.md) provides an introduction to implementing/writing a BCO for a pipeline and/or a workflow, and is taken from the [BioCompute Objects Specification Document](/IEEE_Docs/standard.md).

### Repository

Note that unless you are viewing a [release](https://github.com/biocompute-objects/BCO_Specification/releases) this is a draft subject to change.

Table of content:

* [BioCompute Object (BCO) User Guide](/docs/user_guide.md)
* [Introduction to BioCompute Objects](/docs/introduction.md)
* [BCO domains](/docs/bco-domains.md)
* [Top level fields](/docs/top-level.md)
* [Provenance domain](/docs/provenance-domain.md)
* [Usability domain](/docs/usability-domain.md)
* [FHIR extension](/docs/extension-fhir.md)
* [SCM extension](/docs/extension-scm.md)
* [Description domain](/docs/description-domain.md)
* [Execution domain](/docs/execution-domain.md)
* [Parametric domain](/docs/parametric-domain.md)
* [Input and Output domain](/docs/io-domain.md)
* [Error domain](/docs/error-domain.md)
* [BioCompute Object (BCO) User Guide](/content/user_guide.md)
* [Introduction to BioCompute Objects](/content/introduction.md)
* [BCO domains](/content/bco-domains.md)
* [Top level fields](/content/top-level.md)
* [Provenance domain](/content/provenance-domain.md)
* [Usability domain](/content/usability-domain.md)
* [FHIR extension](/content/extension-fhir.md)
* [SCM extension](/content/extension-scm.md)
* [Description domain](/content/description-domain.md)
* [Execution domain](/content/execution-domain.md)
* [Parametric domain](/content/parametric-domain.md)
* [Input and Output domain](/content/io-domain.md)
* [Error domain](/content/error-domain.md)
* [BCO expanded view example HCV1a.json](HCV1a.json)

## Specification
Expand Down
60 changes: 60 additions & 0 deletions config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
baseURL = "/"
languageCode = "en-us"
title = "BioCompute Object Documentation"
theme = "hugo-biocompute"

enableEmoji = true
hasCJKLanguage = true

pygmentsstyle = "github"

[markup]
[markup.goldmark]
[markup.goldmark.renderer]
unsafe = true

[params]
copyright = "© 2018 - 2020 BioCompute. All rights reserved."
faviconfile = "images/favicon.png"
posts_navigation = true
uselatex = false
highlightjs = false
highlightjslanguages = ["r"]
progressively = false
#google_tag_manager = "UA-79911051-3"

contact = "[email protected]"
github = "biocompute-objects"
twitter = "BioComputeObj"
# linkedin = "example"

[[menu.primary]]
identifier = "home"
name = "Documentation Home"
url = "/"

weight = 1

[[menu.primary]]
identifier = "user_guide"
name = "User Guide"
url = "/user_guide"
weight = 2

[[menu.primary]]
identifier = "best_practices"
name = "Best Practices"
url = "/best_practices"
weight = 3

[[menu.primary]]
identifier = "sop"
name = "BioCompute Curation SOP"
url = "/sop"
weight = 4

[[menu.primary]]
identifier = "biocomputeobject.org"
name = "BioCompute Object Home"
url = "https://www.biocomputeobject.org/"
weight = 5
52 changes: 52 additions & 0 deletions content/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
title: "Home"
menu: "main"
---

<script>
((window.gitter = {}).chat = {}).options = {
room: 'biocompute-objects/BCO_Specification'
};
</script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async defer></script>

<div class="col-lg-6 offset-lg-3 text-center">
<img src="/images/logo.about.png" class="img-fluid mx-auto d-block" width="75%" alt="BioCompute Logo">
</div>

<br>

### The BioCompute Standard

Because of the many different ways to organize data, a major goal of the BioCompute project is to build and maintain a formal standard through recognized, accredited standards setting organizations like the Institute for Electrical and Electronics Engineers (IEEE) and the International Standards Organization (ISO). A formal, consensus-based standard builds predictability and even more stability into the way in which bioinformatic methods are communicated.

The standard, officially known as 2791-2020, has two parts: the standards document and the schema, which is maintained in an open source repository:

- **The current version of the standard can be found [here](https://standards.ieee.org/standard/2791-2020.html)**.
- **The schema can be found [here](https://opensource.ieee.org/2791-object/ieee-2791-schema)**.

Since the base BioCompute schema is maintained as an open source repository, it can be cloned and integrated into an organization in unique ways, which allows organizations to build off of this schema to create dependent standards for specific applications. This is similar to the different versions of WiFi based on usage, such as the 802.11a standard for fast speed, but high cost and shorter range, or the 802.11b for slower top speed, but lower cost, etc. --- all of which are built on the 802.11 base standard. It can also be used to further extend the schema, such as for handling proprietary, internal content, while still being compatible with the base standard. The open source schema also enables individuals or organizations to suggest changes to be incorporated into future versions the standard.

### Citation
This standard was originaly prepared by [The BioCompute Object working group](/BCO_Spec_V1.2.md#biocompute-object-consortium-members-bcoc) during preparation for the [2017 HTS Computational Standards for Regulatory Sciences Workshop](https://hive.biochemistry.gwu.edu/htscsrs/workshop_2017).

To reference the BCO standards, please use the following
citation inclusive of the DOI:

Simonyan, V., Goecks, J., & Mazumder, R. (2017). ***Biocompute Objects — A Step towards Evaluation and Validation of Biomedical Scientific Computations.*** PDA Journal of Pharmaceutical Science and Technology, 71(2), 136–146. doi: [10.5731/pdajpst.2016.006734](http://doi.org/10.5731/pdajpst.2016.006734)

## Support, Community and Contributing

To suggest changes to [this repository](#Repository) we welcome contributions as a [pull request](https://github.com/biocompute-objects/BCO_Specification/pulls) or [issue](https://github.com/biocompute-objects/BCO_Specification/issues) submission.

BCO_Specification is licensed under the [BSD 3-Clause "New" or "Revised" License](./LICENSE)

>A permissive license similar to the BSD 2-Clause License, but with a 3rd clause that prohibits others from using the name of the project or its contributors to promote derived products without written consent.

## Mailing List

As a subscriber to the BCO mailing list, you can post to it by sending a message [email protected] (using the email address that is subscribed). This list is semi-automated and will send your message for review.

To subscribe or unsubscribe, please visit https://hermes.gwu.edu/cgi-bin/wa?A0=BIOCOMPUTELS and click `Subscribe` or `Unsubscribe` on the lower right. You can also unsubscribe from the list at any time by sending an email to [email protected], in which the body says: `unsubscribe biocomputels`

This repository is in support of [2791-2020](https://standards.ieee.org/standard/2791-2020.html) - IEEE Approved Draft Standard for Bioinformatics Computations and Analyses Generated by High-Throughput Sequencing (HTS) to Facilitate Communication. Please also see our [OSF page](https://osf.io/h59uh/) or our [main page](https://biocomputeobject.org/)
40 changes: 29 additions & 11 deletions docs/bco-domains.md → content/bco-domains.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,22 @@
_This document is part of the [BioCompute Object User Guide](user_guide.md)_
---
title: "BCO Domains"
menu: "main"
---

<script>
((window.gitter = {}).chat = {}).options = {
room: 'biocompute-objects/BCO_Specification'
};
</script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async defer></script>

<div class="col-lg-6 offset-lg-3 text-center">
<img src="/images/logo.about.png" class="img-fluid mx-auto d-block" width="75%" alt="BioCompute Logo">
</div>

<br>

_This document is part of the [BioCompute Object User Guide](/user_guide)_

# BCO domains

Expand Down Expand Up @@ -42,7 +60,7 @@ The top level JSON object of a BCO include attributes to define the BCO itself.

Definition:

* [Top level fields](top-level.md)
* [Top level fields](/top-level)

The remaining top level fields details different _domains_ of the BCO, as listed below.

Expand All @@ -52,7 +70,7 @@ The `provenance_domain` defines the history, version and status of this BCO as p

Definition:

* [Provenance domain](provenance-domain.md)
* [Provenance domain](/provenance-domain)


## 2.2 Usability Domain "usability_domain"
Expand All @@ -61,7 +79,7 @@ The `usability_domain` is meant to improve searchability by allowing free-text d

Definition:

* [Usability domain](usability-domain.md)
* [Usability domain](/usability-domain)


## 2.3 Extension Domain "extension_domain"
Expand All @@ -70,8 +88,8 @@ The `extension_domain` is a space for a user to add additional structured inform

Definitions:

* [fhir extension](extension-fhir.md)
* [scm extension](extension-scm.md)
* [fhir extension](/extension-fhir)
* [scm extension](/extension-scm)


## 2.4 Description Domain "description_domain"
Expand All @@ -80,15 +98,15 @@ The `description_domain` contain structured field for description of external re

Definition:

* [Description domain](description-domain.md)
* [Description domain](/description-domain)

## 2.5 Execution Domain "execution_domain"

The `execution_domain` contains fields for execution of the BCO.

Definition:

* [Execution domain](execution-domain.md)
* [Execution domain](/execution-domain)


## 2.6 Parametric Domain "parametric_domain"
Expand All @@ -97,15 +115,15 @@ The `parametric_domain` represents the list of parameters customizing the comput

Definition:

* [Parametric domain](parametric-domain.md)
* [Parametric domain](/parametric-domain)

## 2.7 Input and Output Domain "io_domain"

The `io_domain` represents the list of global input and output files created by the computational workflow.

Definition:

* [Input and Output domain](io-domain.md)
* [Input and Output domain](/io-domain)


## 2.8 Error Domain, acceptable range of variability "error_domain"
Expand All @@ -114,4 +132,4 @@ The `error_domain` defines the empirical and algorithmic limits an d error sourc

Definition:

* [Error domain](error-domain.md)
* [Error domain](/error-domain)
38 changes: 30 additions & 8 deletions docs/best_practices.md → content/best_practices.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,33 @@
---
title: "BCO Best Practice"
menu: "main"
---

<script>
((window.gitter = {}).chat = {}).options = {
room: 'biocompute-objects/BCO_Specification'
};
</script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async defer></script>

<div class="col-lg-6 offset-lg-3 text-center">
<img src="/images/logo.about.png" class="img-fluid mx-auto d-block" width="75%" alt="BioCompute Logo">
</div>

<br>

<div class="text-center">
<h1>BioCompute Objects Best Practice</h1>
</div>

----

## General
* The required domains are defined by the IEEE <link>. However, a BioCompute Object is considered complete when an Error Domain exists.
* Versioning is allowed, but only if the changes do not affect the workflow or output. BCO versioning follows a minor.patch schema, no major versions are allowed (substantial changes result in a new BCO). Minor changes are things like a change of contact information for a contributor, patch changes are things like spelling and grammar fixes.
* In general, any step that does not transform data does not need to be included in the Description Domain as a formal step, and can be described instead in the Usability Domain. For example, arranging rows and columns in a table, or formatting a figure. Steps that transform data should comprise their own step in the Description Domain.
* The Usability Domain should contain enough information to enable a naïve user generally skilled in bioinformatics to understand the analysis. This means that references to commonly used resources (such as basic Unix commands, well known databases like NCBI, basic terms like “alignment,” etc.) do not need to be explained, but references to less well known resources (such as obscure python packages, etc.) should be described. Description should be tailored to the intended audience, and BCOs intended for public consumption should assume a basic level of bioinformatics proficiency.

## BioCompute Registry

The [BioCompute Registry](https://biocomputeobject.org/tst/registry.html) is a domain registry for BCO IDs in which users can register their institution or organization. Similar to a website registry, this will allow the owner of that domain to use any domain organization of their choosing, and prevent naming collisions between groups. For example, the owner of “GW” can build BCOs GW_0001.1, GW01A, GW_<lastname>, or any other naming system of their preference, and these will not conflict with another registered domain, such as FDA_0001.1, etc. The BCO Registry registration numbers may not exceed five characters, and are recommended to be three characters. Any alphanumeric characters are acceptable.
Expand All @@ -10,9 +40,6 @@ A BCO may be registered only by the author of the object, and the domain must be
* CDC
* NCI




## Preferred Ontologies

### Semantic Versioning
Expand All @@ -30,14 +57,9 @@ To preserve the provenance of each BCO, the contribution type of the reviewers a
* `suspended` flag indicates an object that was once valid is no longer considered valid.
* `rejected` flag indicates that an error or inconsistency was detected in the BCO, and it has been removed or rejected.


### Namespace: CURIE
External references field contains a list of the databases and/or ontology IDs that are cross-referenced in the BCO. The external references are used to provide more specificity in the information related to BCO entries. Cross-referenced resources need to be available in the public domain. The external references are stored in the form of prefixed identifiers (CURIEs). These CURIEs map directly to the URIs maintained by identifiers.org. See Section 3.5 for a list of the CURIEs used in this example.





## General
* The required domains are defined by the IEEE <link>. However, a BioCompute Object is considered complete when an Error Domain exists.
* Versioning is allowed, but only if the changes do not affect the workflow or output. BCO versioning follows a minor.patch schema, no major versions are allowed (substantial changes result in a new BCO). Minor changes are things like a change of contact information for a contributor, patch changes are things like spelling and grammar fixes.
Expand Down
24 changes: 21 additions & 3 deletions docs/description-domain.md → content/description-domain.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,29 @@
_This document is part of the [BioCompute Object User Guide](user_guide.md)_
---
title: "Description Domain"
menu: "main"
---

_Back to [BCO domains](bco-domains.md)_
<script>
((window.gitter = {}).chat = {}).options = {
room: 'biocompute-objects/BCO_Specification'
};
</script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async defer></script>

<div class="col-lg-6 offset-lg-3 text-center">
<img src="/images/logo.about.png" class="img-fluid mx-auto d-block" width="75%" alt="BioCompute Logo">
</div>

<br>

_This document is part of the [BioCompute Object User Guide](/user_guide)_

_Back to [BCO domains](/bco-domains)_

## 2.4 Description Domain "description_domain"


This section defines the fields of the `description_domain` part of the [BCO](bco-domains.md) structure.
This section defines the fields of the `description_domain` part of the [BCO](/bco-domains) structure.

Structured field for description of external references, the pipeline steps, and the relationship of I/O objects. Information in this domain is not used for computation. This domain is meant to capture information that is currently being provided in FDA submission in journal format. It is possible that in the future this field can be semi-automatically generated from the execution_domain information.

Expand Down
22 changes: 20 additions & 2 deletions docs/error-domain.md → content/error-domain.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,24 @@
_This document is part of the [BioCompute Object User Guide](user_guide.md)_
---
title: "Error Domain"
menu: "main"
---

_Back to [BCO domains](bco-domains.md)_
<script>
((window.gitter = {}).chat = {}).options = {
room: 'biocompute-objects/BCO_Specification'
};
</script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async defer></script>

<div class="col-lg-6 offset-lg-3 text-center">
<img src="/images/logo.about.png" class="img-fluid mx-auto d-block" width="75%" alt="BioCompute Logo">
</div>

<br>

_This document is part of the [BioCompute Object User Guide](/user_guide)_

_Back to [BCO domains](/bco-domains)_

## 2.8 Error Domain, acceptable range of variability "error_domain"

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading