NIH | National Cancer Institute | NCI Wiki  

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Replaced "/cygdrive/c/Users/JaneDoe" with "/NCI/JaneDoe" after discussion with Udit.

...

If your user account has the Write or Own permission level on an existing collection in DME, and if that existing collection has been configured to contain data files, you can upload a use a CLU command to update the metadata of a data file to in that collection. 

To register a data file:

The character limit for each metadata value is 2700.

To update the metadata of a data file:

  1.  In your local

  2. Choose whether to upload synchronously (from your file system) or asynchronously (from a Globus endpoint). 
    • To upload from your file system, plan to use the source file parameter to specify the file that you want to upload.
    • To upload from Globus, plan to use a JSON file to specify the file that you want to upload. 
  3. In your file system, create a JSON file that specifies the metadata for the new data file. The contents of this file depend on the source of your data:

    If you are uploading from your file system, specify the metadata that you want to upload. Click the following link to view the syntax

    :

    Code Block
    collapsetrue
    { 
        "metadataEntries": [
          {
            "attribute": "description",
            "value": "my-dataObject-description"
          },
          {
            "attribute": "
    my-second-attribute-name
    example_date",
            "value": "
    my-second-attribute-value" } ] }

    If you are uploading from Globus, specify the Globus endpoint, the file path on that endpoint, and the metadata that you want to upload. Click the following link to view the syntax:

    Code Block
    collapsetrue
    { "source": {
    20201231",
            "
    fileContainerId
    dateFormat": "
    globus-shared-endpoint-uid",
    yyyyMMdd"
        
    "fileId":
     
    "file-path-on-shared-globus-endpoint"
     }
    , "metadataEntries": [
    
        
    { "attribute": "description", "value": "my-file-description" }, { "attribute": "my-second-attribute-name", "value": "my-second-attribute-description" } ] }
    ]
    }
  4. For each date attribute, specify one of the following date formats, and specify the date value in that format:

    • yyyyMMdd
    • yyyy.MM.dd
    • yyyy-MM-dd
    • yyyy/MM/dd
    • MM/dd/yyyy
    • MM-dd-yyyy
    • MM.dd.yyyy

    The system parses your date using the date format you specify. Then however, if the date attribute has a metadata validation rule in a different format, the system stores the date in the format specified by that rule.

  5. Include Page
    shared step - update parent collection while updating collection or data file
    shared step - update parent collection while updating collection or data file
  6. Run the following command:

    Panel
    borderColorsilver
    borderStylesolid
    Clipboard
    AllowLineWraptrue

    dm_register_dataobject [optional parameters] <description.json> <destination-path>

    Run the following command:

    Code Block
    dm_register_dataobject <description.json> <destination-path> [source-file]


    The following table describes each parameter:

    ParameterDescription
    <description.json>
    A path to the JSON file that specifies the metadata for the new data file.
    <destination-path>
    A path within DME, including the name of the file you intend to upload. Specify where you want the system to create the new data file.
    [-h]If you want to print a usage (help) message for this command, specify this option.
    [-D <REST-response>]

    An optional parameter, specifying a path and filename in your local system. The system always creates a response file:

    • If you specify this parameter, the system saves the response from the server to the specified file in the specified location.
    • If you omit this parameter, the system saves the file as dataObject-registration-response-header.tmp in your home directory.
    [-o <output-json-file>]

    An optional parameter, specifying a path and filename in your local system. The system always creates an output file: 

    • If you specify this parameter, the system saves the output to the specified file in the specified location.
    • If you omit this parameter, the system saves the output as dataObject-registration-response-message.json.tmp in your home directory.

    If the command is successful, the output file is empty.

    <description.json>
    A path within a local system, including the name of the JSON file that specifies the metadata for the data file you intend to update.
    <destination-path>
    A path within DME, including the name of the file you intend to update
    [source-file]

    A path to a file in your file system:

  7. If you are uploading from your file system, use this parameter to specify the file that you want to upload.
  8. If you are uploading from Globus, omit this parameter.

For example, the following command uploads updates the metadata of the data.txt file from the JaneDoe folder in the file system to the Project_New Project1 collection in DME:

code
Panel
borderColorsilver
borderStylesolid
Clipboard
AllowLineWraptrue

dm_register_dataobject

/

cygdrive/c/Users

NCI/JaneDoe/my-metadata.json

/Example_Archive/PI_Lab1/

Project_New /cygdrive/c/Users/JaneDoe

Project1/data.txt

For instructions on performing similar tasks in the GUI, refer to Registering Data via the GUI


If you uploaded the file from a Globus endpoint, you can view the progress of the upload in the GUI. For instructions, refer to Viewing Globus Upload StatusThe JSON file must contain metadata for the data file, data.txt.