From 20f0787e1bf1f2b9182202ed7d68a8665193ab74 Mon Sep 17 00:00:00 2001 From: laurent bouri Date: Thu, 7 Nov 2024 15:46:06 +0100 Subject: [PATCH 1/4] update documentation --- README.md | 2 +- mars-cli/README.md | 86 ++++++++++++++++------------------- repository-services/README.md | 10 ++-- 3 files changed, 48 insertions(+), 50 deletions(-) diff --git a/README.md b/README.md index 4619e9f..a620f21 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ Track the status of each repository here: | Repository | Programmatic submission | Development status | Deployed? | Source code | |---|---|---|---|---| | [BioSamples](https://www.ebi.ac.uk/biosamples/) | yes | Ready to be tested | no | [GitHub](repository-services/isajson-biosamples) | -| [ENA](https://www.ebi.ac.uk/ena/browser/) | yes | Ready to be tested | no | [GitHub](repository-services/isajson-json) | +| [ENA](https://www.ebi.ac.uk/ena/browser/) | yes | Ready to be tested | no | [GitHub](repository-services/isajson-ena) | | [MetaboLights](https://www.ebi.ac.uk/metabolights/) | NA | Not started | no | | | [BioStudies/ArrayExpress](https://www.ebi.ac.uk/biostudies/arrayexpress) | yes, in dev | Not started | no | | | [e!DAL-PGP](https://edal-pgp.ipk-gatersleben.de/) | NA | Not started | no | | diff --git a/mars-cli/README.md b/mars-cli/README.md index 2a4683e..d6768c0 100644 --- a/mars-cli/README.md +++ b/mars-cli/README.md @@ -107,6 +107,7 @@ Options: Commands: health-check Check the health of the target repositories. + set-password Store a password in the keyring. submit Start a submission to the target repositories. validate-isa-json Validate the ISA JSON file. ``` @@ -121,23 +122,28 @@ Output: ``` ➜ mars-cli submit --help -############# Welcome to the MARS CLI. ############# -Running in Production environment -Usage: mars-cli submit [OPTIONS] CREDENTIALS_FILE ISA_JSON_FILE +Usage: mars-cli submit [OPTIONS] ISA_JSON_FILE Start a submission to the target repositories. Options: - -d, --development Boolean indicating the usage of the development - environment of the target repositories. If not present, - the production instances will be used. - --help Show this message and exit. - -Commands: - health-check Check the health of the target repositories. - set-password Store a password in the keyring. - submit Start a submission to the target repositories. - validate-isa-json Validate the ISA JSON file. + --output TEXT + --investigation-is-root BOOLEAN + Boolean indicating if the investigation is + the root of the ISA JSON. Set this to True + if the ISA-JSON does not contain a + 'investigation' field. + --submit-to-metabolights BOOLEAN + Submit to Metabolights. + --data-files FILENAME Path of files to upload + --file-transfer TEXT provide the name of a file transfer + solution, like ftp or aspera + --submit-to-ena BOOLEAN Submit to ENA. + --submit-to-biosamples BOOLEAN Submit to BioSamples. + --credentials-file FILENAME Name of a credentials file + --username-credentials TEXT Username from the keyring + --credential-service-name TEXT service name from the keyring + --help Show this message and exit. ``` ## Development @@ -161,10 +167,9 @@ Output: ############# Welcome to the MARS CLI. ############# Running in Production environment Checking the health of the target repositories. -Checking production instances. -Webin (https://www.ebi.ac.uk/ena/submit/webin/auth) is healthy. -ENA (https://www.ebi.ac.uk/ena/submit/webin-v2/) is healthy. -Biosamples (https://www.ebi.ac.uk/biosamples/samples/) is healthy. +Service 'webin' healthy and ready to use! +Service 'ena' healthy and ready to use! +Service 'biosamples' healthy and ready to use! ``` ## using the keychain @@ -191,7 +196,7 @@ Options: ## Submitting to repository services -TODO +The MARS-CLI tool is a powerful interface for submitting metadata and associated files to various biological repository services like ENA, BioSamples, and MetaboLights. This command-line tool is useful for managing and validating metadata submissions in a isa-json, as well as for automating aspects of repository submissions. Below are command line options for submitting to each of these repository services. ### Options @@ -201,6 +206,13 @@ TODO mars-cli submit --submit-to-ena False my-credentials my-isa-json.json ``` +- `--file-transfer`: Provide the name of a file transfer solution, like ftp or aspera + +- `--data-file`: Paths of files to upload. +```sh +mars-cli submit --file-transfer ftp --data-files ../data/file_to_upload.fastq.gz my-credentials my-isa-json.json +``` + - `--submit-to-metabolights`: By default set to `True`. Will try to submit ISA-JSON metadata towards Metabolights. Setting it to `False` will skip sending the ISA-JSON's metadata to Metabolights. @@ -216,6 +228,12 @@ the flag `--investigation-is-root` to `True` in order to validate the ISA-JSON. mars-cli submit --investigation-is-root True my-credentials my-isa-json.json ``` +`--output`: By default "output_{datetime.now()}", the name of the isa final output. + +```sh +mars-cli submit --output my-credentials my-isa-json.json +``` + ## Validation of the ISA JSON You can perform a syntactic validation of the ISA-JSON, without submitting to the target repositories. @@ -380,35 +398,11 @@ public class BiosamplesIntegration { } } ```` -# Testing BioSamples submission using the local docer converter instance or a remote converter instance - -## Getting Started - -To set up and run the MARS tool locally using Docker, follow these steps: - -### Prerequisites - -- [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/) installed on your system. - -### Running the Docker Containers - -1. **Navigate** to the `repository-services` directory in your cloned repository. - -2. **Start the Docker containers** by running the following command: - - ```bash - docker compose up - ``` - -3. **Check the BioSamples submission service** by visiting: - - ``` - http://localhost:8032/isabiosamples/swagger-ui/index.html - ``` +## Deploy repository services - This URL will indicate if the BioSamples submission Docker container is up and running. +[To set up and run the MARS tool locally using Docker, follow these steps](../repository-services/README.md) -### Configuration +## Configuration To configure MARS for submissions, modify the configuration file `settings.ini` located at `~/.mars/settings.ini`. Ensure the following content is set: @@ -432,7 +426,7 @@ production-url = https://www.ebi.ac.uk/biosamples/samples/ production-submission-url = https://www.ebi.ac.uk/biosamples/samples/ ``` -### Running MARS Submission +## Running MARS Submission After configuring the `settings.ini` file, you can run the MARS CLI tool to submit data: diff --git a/repository-services/README.md b/repository-services/README.md index 3291ed3..0027c20 100644 --- a/repository-services/README.md +++ b/repository-services/README.md @@ -2,15 +2,19 @@ In order to test the metadata submission to BioSamples and ENA, two Java Spring web services can be deployed, using docker. There is no compilation step necessary prior to deployment. -## Deployment +## Prerequisites -Change to the correct directory: +- [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/) installed on your system. + +## Deployment - Running the Docker Containers + +1. **Navigate** to the `repository-services` directory in your cloned repository. ```sh cd repository-test-services ``` -Use docker compose to deploy both services simultaneously: +2. **Start the Docker containers** to deploy both services simultaneously: ```sh docker compose up From 37d00dfb4a600757d08ab3f54d7a87adaf15e864 Mon Sep 17 00:00:00 2001 From: laurent bouri Date: Thu, 7 Nov 2024 16:39:43 +0100 Subject: [PATCH 2/4] add exemples and specify validation ISA json to be developed --- mars-cli/README.md | 55 +++++++++++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 15 deletions(-) diff --git a/mars-cli/README.md b/mars-cli/README.md index d6768c0..3d62bdb 100644 --- a/mars-cli/README.md +++ b/mars-cli/README.md @@ -200,22 +200,36 @@ The MARS-CLI tool is a powerful interface for submitting metadata and associated ### Options -- `--submit-to-ena`: By default set to `True`. Will try submit ISA-JSON metadata towards ENA. Setting it to `False` will skip sending the ISA-JSON's metadata to ENA. +#### Biosamples submissions +`--submit-to-biosamples`: By default set to `True`. Will try submit ISA-JSON metadata towards Biosamples. Setting it to `False` will skip sending the ISA-JSON's metadata to Biosamples. +Following command line will avoid submission to Biosamples repository: +```sh +mars-cli submit --submit-to-biosamples False my-credentials my-isa-json.json +``` + +#### ENA submissions +`--submit-to-ena`: By default set to `True`. Will try submit ISA-JSON metadata towards ENA. Setting it to `False` will skip sending the ISA-JSON's metadata to ENA. + +Following command line will avoid submission to ENA repository: ```sh mars-cli submit --submit-to-ena False my-credentials my-isa-json.json ``` -- `--file-transfer`: Provide the name of a file transfer solution, like ftp or aspera +`--file-transfer`: Provide the name of a file transfer solution, like ftp or aspera + +`--data-file`: Paths of files to upload. -- `--data-file`: Paths of files to upload. +Following command line will submit isa-file and data-file using FTP solution to Biosamples and ENA: ```sh -mars-cli submit --file-transfer ftp --data-files ../data/file_to_upload.fastq.gz my-credentials my-isa-json.json +mars-cli submit --submit-to-metabolights False --file-transfer ftp --data-files ../data/file_to_upload.fastq.gz my-credentials my-isa-json.json ``` -- `--submit-to-metabolights`: By default set to `True`. Will try to submit ISA-JSON metadata towards Metabolights. +#### Metabolights submissions +`--submit-to-metabolights`: By default set to `True`. Will try to submit ISA-JSON metadata towards Metabolights. Setting it to `False` will skip sending the ISA-JSON's metadata to Metabolights. +Following command line will avoid submission to metabolights repository: ```sh mars-cli submit --submit-to-metabolights False my-credentials my-isa-json.json ``` @@ -231,10 +245,13 @@ mars-cli submit --investigation-is-root True my-credentials my-isa-json.json `--output`: By default "output_{datetime.now()}", the name of the isa final output. ```sh -mars-cli submit --output my-credentials my-isa-json.json +mars-cli submit --output final_isa my-credentials my-isa-json.json ``` -## Validation of the ISA JSON +## Feature: Validation of the ISA JSON +> **Status**: 🚧 To Be Developed + +This feature is planned but not yet implemented. Further details will be provided as development progresses. You can perform a syntactic validation of the ISA-JSON, without submitting to the target repositories. @@ -249,8 +266,6 @@ of the ISA-JSON and, in some cases, automatically patch inconsistencies. This feature is implemented as a set of additional validation rules a user can customize according to the submission needs. -TODO - ```sh mars-cli validate-isa-json --investigation-is-root True ../test-data/biosamples-input-isa.json ``` @@ -272,10 +287,10 @@ The script takes in a dictionary of BioSamples' accessions and their associated To summarize, the steps of the code are: 1. Takes the BioSamples' submitter credentials and an input file containing a set of BioSamples accessions and their associated external references - 1. Validates inputs -1. For each BioSamples' accession, it downloads its JSON record from BioSamples -1. Extend the BioSamples' JSON with the ``externalReferences`` of the input file -1. Submit the extended JSON to BioSamples to replace the existing one +2. Validates inputs +3. For each BioSamples' accession, it downloads its JSON record from BioSamples +4. Extend the BioSamples' JSON with the ``externalReferences`` of the input file +5. Submit the extended JSON to BioSamples to replace the existing one ## Examples ### BioSamples JSON @@ -416,8 +431,10 @@ production-token-url = https://www.ebi.ac.uk/ena/submit/webin/auth/token [ena] development-url = http://localhost:8042/isaena development-submission-url = http://localhost:8042/isaena/submit +development-data-submission-url = webin2.ebi.ac.uk production-url = https://www.ebi.ac.uk/ena/submit/webin-v2/ production-submission-url = https://www.ebi.ac.uk/ena/submit/drop-box/submit/?auth=ENA +production-data-submission-url = webin2.ebi.ac.uk [biosamples] development-url = http://localhost:8032/isabiosamples @@ -428,7 +445,9 @@ production-submission-url = https://www.ebi.ac.uk/biosamples/samples/ ## Running MARS Submission -After configuring the `settings.ini` file, you can run the MARS CLI tool to submit data: +### Submit isa-json to biosamples + +After configuring the `settings.ini` file, you can run the MARS CLI tool to submit the isa-json: ```bash python mars_cli.py --development submit --submit-to-metabolights False --submit-to-ena False --credential-service-name --username-credentials ../test-data/biosamples-input-isa.json @@ -440,8 +459,14 @@ python mars_cli.py --development submit --submit-to-metabolights False --submit- Aternatively, you can also use a credentials file to authenticate to the services. An example can be found here: https://github.com/elixir-europe/MARS/blob/main/mars-cli/tests/test_credentials_example.json -Run the MARS CLI tool to submit the data: +Run the MARS CLI tool to submit the isa-json using credentials file: ```bash python mars_cli.py --development submit --submit-to-metabolights False --submit-to-ena False --credentials-file ../test-data/biosamples-input-isa.json +``` + +### Submit data files and isa-json and to biosamples and ENA + +```bash +python mars_cli.py --credential-service-name biosamples --username-credentials --file-transfer ftp --data-files ../data/ENA_data.R1.fastq.gz --submit-to-metabolights False --output final-isa ../data/biosamples-input-isa.json ``` \ No newline at end of file From 1cc9ad49e47f520e8c67d0ed4d07b772d0a3e748 Mon Sep 17 00:00:00 2001 From: laurent bouri Date: Thu, 7 Nov 2024 16:45:50 +0100 Subject: [PATCH 3/4] add notes to mars-cli exemples --- mars-cli/README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mars-cli/README.md b/mars-cli/README.md index 3d62bdb..d951f38 100644 --- a/mars-cli/README.md +++ b/mars-cli/README.md @@ -203,7 +203,7 @@ The MARS-CLI tool is a powerful interface for submitting metadata and associated #### Biosamples submissions `--submit-to-biosamples`: By default set to `True`. Will try submit ISA-JSON metadata towards Biosamples. Setting it to `False` will skip sending the ISA-JSON's metadata to Biosamples. -Following command line will avoid submission to Biosamples repository: +> **Note**: Following command line will avoid submission to Biosamples repository: ```sh mars-cli submit --submit-to-biosamples False my-credentials my-isa-json.json ``` @@ -211,7 +211,7 @@ mars-cli submit --submit-to-biosamples False my-credentials my-isa-json.json #### ENA submissions `--submit-to-ena`: By default set to `True`. Will try submit ISA-JSON metadata towards ENA. Setting it to `False` will skip sending the ISA-JSON's metadata to ENA. -Following command line will avoid submission to ENA repository: +> **Note**: Following command line will avoid submission to ENA repository: ```sh mars-cli submit --submit-to-ena False my-credentials my-isa-json.json ``` @@ -220,12 +220,14 @@ mars-cli submit --submit-to-ena False my-credentials my-isa-json.json `--data-file`: Paths of files to upload. -Following command line will submit isa-file and data-file using FTP solution to Biosamples and ENA: +> **Note**: Following command line will submit isa-file and data-file using FTP solution to Biosamples and ENA: ```sh mars-cli submit --submit-to-metabolights False --file-transfer ftp --data-files ../data/file_to_upload.fastq.gz my-credentials my-isa-json.json ``` -#### Metabolights submissions +#### Metabolights submissions +> **Status**: 🚧 To Be Developed + `--submit-to-metabolights`: By default set to `True`. Will try to submit ISA-JSON metadata towards Metabolights. Setting it to `False` will skip sending the ISA-JSON's metadata to Metabolights. From b3e71e47f95a0f1228cc32b888bc84dd32b70a49 Mon Sep 17 00:00:00 2001 From: Bert Droesbeke <44875756+bedroesb@users.noreply.github.com> Date: Fri, 8 Nov 2024 07:59:26 +0100 Subject: [PATCH 4/4] Update README.md --- mars-cli/README.md | 224 +++++++++++---------------------------------- 1 file changed, 54 insertions(+), 170 deletions(-) diff --git a/mars-cli/README.md b/mars-cli/README.md index d951f38..875d8df 100644 --- a/mars-cli/README.md +++ b/mars-cli/README.md @@ -1,4 +1,8 @@ -# Installing the mars-cli +# MARS-CLI + +The MARS-CLI tool is a powerful interface for submitting metadata and associated files to various biological repository services like ENA, BioSamples, and MetaboLights. This command-line tool is useful for managing and validating metadata submissions in a ISA-JSON, as well as for automating aspects of repository submissions. + +## Installation This installation procedure describes a typical Linux installation. This application can perfectly work on Windows and MacOS but some of the steps might be different. @@ -37,7 +41,7 @@ echo 'export MARS_SETTINGS_DIR=' >> $HOM Once installed, the CLI application will be available from the terminal. -# Configuration +## Configuration Installing this application will also generate a `settings.ini` file in `$HOME/.mars/`. @@ -49,7 +53,34 @@ log_max_size = 1024 log_max_files = 5 ``` -## Logging +### Repository services + +To configure MARS for submissions, modify the configuration file `settings.ini` located at `~/.mars/settings.ini`. Ensure the following content is set: + +```ini +[webin] +development-url = https://wwwdev.ebi.ac.uk/ena/dev/submit/webin/auth +development-token-url = https://wwwdev.ebi.ac.uk/ena/dev/submit/webin/auth/token +production-url = https://www.ebi.ac.uk/ena/submit/webin/auth +production-token-url = https://www.ebi.ac.uk/ena/submit/webin/auth/token + +[ena] +development-url = http://localhost:8042/isaena +development-submission-url = http://localhost:8042/isaena/submit +development-data-submission-url = webin2.ebi.ac.uk +production-url = https://www.ebi.ac.uk/ena/submit/webin-v2/ +production-submission-url = https://www.ebi.ac.uk/ena/submit/drop-box/submit/?auth=ENA +production-data-submission-url = webin2.ebi.ac.uk + +[biosamples] +development-url = http://localhost:8032/isabiosamples +development-submission-url = http://localhost:8032/isabiosamples/submit +production-url = https://www.ebi.ac.uk/biosamples/samples/ +production-submission-url = https://www.ebi.ac.uk/biosamples/samples/ +``` + + +### Logging The MARS-CLI will automatically log events to a `.log` file. @@ -67,7 +98,7 @@ __log_max_size__: The maximum size in kB for the log file. By default the maximu __log_max_files__: The maximum number of old log files to keep. By default, this is set to 5 -## Target repository settings +### Target repository settings Each of the target repositories have a set of settings: @@ -76,7 +107,7 @@ Each of the target repositories have a set of settings: - production-url: URL to the production server when performing a health-check - production-submission-url: URL to the production server when performing a submissionW -# Using the MARS-CLI +## Usage If you wish to use a different location for the `.mars' folder: @@ -85,8 +116,6 @@ export MARS_SETTINGS_DIR= mars-cli [options] ARGUMENT ``` -## Help - The mars-cli's help text can be found from the command line as such: ```sh @@ -146,13 +175,13 @@ Options: --help Show this message and exit. ``` -## Development +### Development vs production By default, the mars-CLI will try to submit the ISA-JSON's metadata towards the repositories' production servers. Passing the development flag will run it in development mode and substitute the production servers with the development servers. -## Health check repository services +### Health check repository services You can check whether the supported repositories are healthy, prior to submission, by doing a health-check. @@ -172,11 +201,11 @@ Service 'ena' healthy and ready to use! Service 'biosamples' healthy and ready to use! ``` -## using the keychain +### Credential management -This CLI application comes with functionality to interact with your device's keychain backend. +This CLI application comes with functionality to interact with your device's keychain backend in order to fetch the necessary credentials. -### Store a password +#### Store a password You can add a password to keychain: @@ -194,9 +223,6 @@ Options: --help Show this message and exit. ``` -## Submitting to repository services - -The MARS-CLI tool is a powerful interface for submitting metadata and associated files to various biological repository services like ENA, BioSamples, and MetaboLights. This command-line tool is useful for managing and validating metadata submissions in a isa-json, as well as for automating aspects of repository submissions. Below are command line options for submitting to each of these repository services. ### Options @@ -282,170 +308,22 @@ the flag `--investigation-is-root` to `True` in order to validate the ISA-JSON. mars-cli validate-isa-json my-isa-investigation.json ``` -# Extending BioSamples' records -The Python script ``biosamples-externalReferences.py`` defines a class BiosamplesRecord for managing biosample records. This class is designed to interact with the BioSamples database, allowing operations like fetching, updating, and extending biosample records. +## Feature: Extending BioSamples' records +> **Status**: 🚧 To Be Developed + +This part is designed to interact with the BioSamples database, allowing operations like fetching, updating, and extending biosample records. The script takes in a dictionary of BioSamples' accessions and their associated external references, and expands the former with the latter. To summarize, the steps of the code are: -1. Takes the BioSamples' submitter credentials and an input file containing a set of BioSamples accessions and their associated external references +1. Takes the BioSamples' submitter credentials and a set of BioSamples accessions and their associated external references 2. Validates inputs 3. For each BioSamples' accession, it downloads its JSON record from BioSamples 4. Extend the BioSamples' JSON with the ``externalReferences`` of the input file 5. Submit the extended JSON to BioSamples to replace the existing one -## Examples -### BioSamples JSON -Mock example ([``SAMEA112654119``](https://www.ebi.ac.uk/biosamples/samples/SAMEA112654119)): -- Record (JSON) **before** extending with ``externalReferences``: -```` -{ - "name" : "AngH91", - "accession" : "SAMEA112654119", - ... -} -```` -- Record (JSON) **after** extending with ``externalReferences``: -```` -{ - "name" : "AngH91", - "accession" : "SAMEA112654119", - ... - "externalReferences" : [ { - "url" : "https://ega-archive.org/datasets/EGAD00010002458", - "duo" : [ ] - }, { - "url" : "https://ega-archive.org/metadata/v2/samples/EGAN00004248937", - "duo" : [ ] - }, { - "url" : "https://www.ebi.ac.uk/ena/browser/view/SAMEA112654119", - "duo" : [ ] - } ] - ... -} -```` -### Script input -In the following example, we would be adding 3 URLs to ``SAMEA112654119`` and one to ``SAMEA419425`` as ``externalReferences``. -```` -{ - "biosampleExternalReferences": [ - { - "biosampleAccession": "SAMEA112654119", - "externalReferences": [ - { - "url": "https://ega-archive.org/datasets/EGAD00010002458" - }, - { - "url": "https://ega-archive.org/metadata/v2/samples/EGAN00004248937" - }, - { - "url": "https://www.ebi.ac.uk/ena/browser/view/SAMEA112654119" - } - ] - }, - { - "biosampleAccession": "SAMEA419425", - "externalReferences": [ - { - "url": "https://ega-archive.org/datasets/EGAD00010002458" - } - ] - } - ] -} -```` -## Usage -### Command line -````bash -$ python3 biosamples-externalReferences.py --help -usage: biosamples-externalReferences.py [-h] [--production] biosamples_credentials biosamples_externalReferences - -This script extends a set of existing Biosamples records with a list of provided external references. - -positional arguments: - biosamples_credentials - Either a dictionary or filepath to the BioSamples credentials. - biosamples_externalReferences - Either a dictionary or filepath to the BioSamples' accessions mapping with external references. - -options: - -h, --help show this help message and exit - --production Boolean indicating the usage of the production environment of BioSamples. If not present, the development instance will be used. -```` -### Interfacing with BiosamplesRecord Class in Java [_By ChatGPT_] -#### Prerequisites -- **Jython**: A Java implementation of the Python interpreter. It allows running Python code within a Java application. -- **Environment Setup**: Ensure Python and all necessary libraries (``requests``, ``json``, etc.) are installed and accessible to Jython. - -#### Basic Steps for Integration -1. **Importing Jython in Java**: Add Jython as a dependency in your Java project. -1. **Executing Python Script**: Use Jython's ``PythonInterpreter`` class to execute the Python script. -1. **Creating BiosamplesRecord Instance**: Instantiate the BiosamplesRecord class through the interpreter. -1. **Interacting with BiosamplesRecord Methods**: Utilize methods like ``fetch_bs_json``, ``extend_externalReferences``, etc., via the interpreter. -1. **Integrating with the Main Function**: - - The ``main`` function in the script acts as an entry point for command-line usage. - - In Java, replicate the logic in ``main``. -1. **Data Handling**: Data passed between Java and Python must be in a compatible format (e.g., JSON). -1. **Error Handling**: Properly handle Python exceptions raised by the script in Java. - -Sample Java Integration Code: -````java -import org.python.util.PythonInterpreter; -import org.python.core.*; - -public class BiosamplesIntegration { - public static void main(String[] args) { - PythonInterpreter interpreter = new PythonInterpreter(); - - // Load and execute Python script - interpreter.execfile("path/to/biosamples-externalReferences.py"); - - // Create a BiosamplesRecord instance - PyObject biosamplesRecordClass = interpreter.get("BiosamplesRecord"); - PyObject biosamplesRecord = biosamplesRecordClass.__call__(new PyString("SAMPLE_ACCESSSION")); - - // Use methods of BiosamplesRecord - PyObject result = biosamplesRecord.invoke("fetch_bs_json", new PyString("biosamples_endpoint")); - System.out.println(result.toString()); - - - - - // Handle other operations similarly - } -} -```` -## Deploy repository services -[To set up and run the MARS tool locally using Docker, follow these steps](../repository-services/README.md) - -## Configuration - -To configure MARS for submissions, modify the configuration file `settings.ini` located at `~/.mars/settings.ini`. Ensure the following content is set: - -```ini -[webin] -development-url = https://wwwdev.ebi.ac.uk/ena/dev/submit/webin/auth -development-token-url = https://wwwdev.ebi.ac.uk/ena/dev/submit/webin/auth/token -production-url = https://www.ebi.ac.uk/ena/submit/webin/auth -production-token-url = https://www.ebi.ac.uk/ena/submit/webin/auth/token - -[ena] -development-url = http://localhost:8042/isaena -development-submission-url = http://localhost:8042/isaena/submit -development-data-submission-url = webin2.ebi.ac.uk -production-url = https://www.ebi.ac.uk/ena/submit/webin-v2/ -production-submission-url = https://www.ebi.ac.uk/ena/submit/drop-box/submit/?auth=ENA -production-data-submission-url = webin2.ebi.ac.uk - -[biosamples] -development-url = http://localhost:8032/isabiosamples -development-submission-url = http://localhost:8032/isabiosamples/submit -production-url = https://www.ebi.ac.uk/biosamples/samples/ -production-submission-url = https://www.ebi.ac.uk/biosamples/samples/ -``` - -## Running MARS Submission +## Examples ### Submit isa-json to biosamples @@ -469,6 +347,12 @@ python mars_cli.py --development submit --submit-to-metabolights False --submit- ### Submit data files and isa-json and to biosamples and ENA + +## Deploy repository services + +[To set up and run the MARS tool locally using Docker, follow these steps](../repository-services/README.md) + + ```bash python mars_cli.py --credential-service-name biosamples --username-credentials --file-transfer ftp --data-files ../data/ENA_data.R1.fastq.gz --submit-to-metabolights False --output final-isa ../data/biosamples-input-isa.json -``` \ No newline at end of file +```