BlueBrain / morphology-workflows

Workflows used for morphology processing.
https://morphology-workflows.readthedocs.io/en/stable/
Apache License 2.0
5 stars 2 forks source link

Fetch Igarashi archive of Neuromorpho #95

Closed ThibLY closed 1 year ago

ThibLY commented 1 year ago

Hi!

After using the command morphology-workflows Initialize --source-database NeuroMorpho and after editing the neuromorpho_config.json file with the following parameters:

[
    {
        "archive": "Igarashi",
        "cell_type": "mitral",
        "nb_morphologies": 9
    }
]

The command morphology-workflows Fetch outputs the following error: morphology_workflows.tasks.fetch - ERROR - Could not download the morphologies for {'archive': 'Igarashi', 'cell_type': 'mitral', 'nb_morphologies': 9} for the following reason: Query criteria value Igarashi for field archive not valid.Valid values include: ['Siegert', 'Chiang', ... , 'Sengelaub', 'Yin'] The archive "Igarashi" exists in Neuromorpho but is not in the list used by Fetch .

adrien-berchet commented 1 year ago

Hi @ThibLY Thanks for this report, I confirm I get the same error.

As far as I can see, the error actually comes from NeuroMorpho itself. If I run the following command to retrieve all the possible values for the field archive, the Igarashi value is missing:

curl -X GET "https://neuromorpho.org/api/neuron/fields/archive"

Nevertheless, this command:

curl -X GET "https://neuromorpho.org/api/neuron/select?q=archive:Igarashi&fq=cell_type:mitral"

I get the proper metadata to download the morphology files.

So I'm afraid there is no simple solution for your specific use case because we use the https://github.com/brainglobe/morphapi package to actually fetch the morphologies, so if we want to skip the validation of the criteria (i.e. check that Igarashi is a valid archive value), it should be updated there. As a first step, I'm going to forward your report to NeuroMorpho, as the main issue come from their side. In the mean time, if you want to fix your issue quickly, I think the best solution is to download these morphologies manually and then call the Initialize command using the input-dir parameter:

morphology-workflows Initialize --input-dir <dir-containing-the-morphologies>
ThibLY commented 1 year ago

Hi @adrien-berchet

Thank you for your fast reply, I will do the Initialize from my local folder! Shall I close the issue? Or leave it open and wait for the answer of NeuroMorpho?

adrien-berchet commented 1 year ago

I actually got an answer from NeuroMorpho and they gave me a solution to fix this issue in the MorphAPI package. I just submitted a PR for that: https://github.com/brainglobe/morphapi/pull/28 I will ping you when a new release of MorphAPI is available.

ThibLY commented 1 year ago

Thank you!

adrien-berchet commented 1 year ago

The new release is available: https://pypi.org/project/morphapi/0.1.9/ I tested your example and it works now (tested with morphology-workflows==0.7 and morphapi==0.1.9). I let you confirm it works for you and close the issue.

ThibLY commented 1 year ago

The whole workflow worked perfectly fine, thank you for your help!

adrien-berchet commented 1 year ago

Ok, great! :)