Skip to content

Add deacon and deacon DM#7473

Open
SantaMcCloud wants to merge 45 commits into
galaxyproject:mainfrom
SantaMcCloud:add_deacon
Open

Add deacon and deacon DM#7473
SantaMcCloud wants to merge 45 commits into
galaxyproject:mainfrom
SantaMcCloud:add_deacon

Conversation

@SantaMcCloud

Copy link
Copy Markdown
Contributor

FOR CONTRIBUTOR:

  • I have read the CONTRIBUTING.md document and this tool is appropriate for the tools-iuc repo.
  • License permits unrestricted use (educational + commercial)
  • This PR adds a new tool or tool collection
  • This PR updates an existing tool or tool collection
  • This PR does something else (explain below)

@SantaMcCloud

Copy link
Copy Markdown
Contributor Author

Test will error since there is still missing the format for deacon which has an open PR: galaxyproject/galaxy#21289

@SantaMcCloud SantaMcCloud changed the title Add deacon Add deacon and deacon DM Nov 17, 2025
Comment thread data_managers/data_manager_deacon/data_manager/deacon_datamanager.xml Outdated
Comment thread data_managers/data_manager_deacon/data_manager/deacon_datamanager.xml Outdated
Comment thread data_managers/data_manager_deacon/data_manager/deacon_datamanager.xml Outdated
Comment thread data_managers/data_manager_deacon/test-data/deacon.loc Outdated
Comment thread data_managers/data_manager_deacon/test-data/deacon.loc Outdated
Comment thread tools/deacon/macros.xml Outdated
Comment thread tools/deacon/macros.xml Outdated
Comment thread tools/deacon/deacon_index.xml Outdated
Comment thread tools/deacon/macros.xml Outdated
Comment thread tools/deacon/macros.xml Outdated
@SantaMcCloud

Copy link
Copy Markdown
Contributor Author

I will add the change later here since i have some testing to be done which i could done yet but some of reviews input was used to change the current state of the wrappers!

@SantaMcCloud

Copy link
Copy Markdown
Contributor Author

@bernt-matthias i did change all and test all wrapper manually. When the format was added they all should be positiv!

@bede

bede commented Nov 21, 2025

Copy link
Copy Markdown

Deacon developer here. I'm unfamiliar with Galaxy development and how to test a PR like this in a running environment, but I'm happy to answer questions, review screenshots etc.

Comment thread data_managers/data_manager_deacon/data_manager/deacon_datamanager.xml Outdated
@bernt-matthias

Copy link
Copy Markdown
Contributor

Deacon developer here. I'm unfamiliar with Galaxy development and how to test a PR like this in a running environment, but I'm happy to answer questions, review screenshots etc.

I'm sure @SantaMcCloud can provide some screenshots of the tool if you like.

@bernt-matthias

Copy link
Copy Markdown
Contributor

Btw. wonderful the get feedback from the developer of the underlying software. This is super helpful and much appreciated.

@SantaMcCloud

SantaMcCloud commented Nov 21, 2025

Copy link
Copy Markdown
Contributor Author

Deacon developer here. I'm unfamiliar with Galaxy development and how to test a PR like this in a running environment, but I'm happy to answer questions, review screenshots etc.

The way a PR is tested is that the xml file has a test section where a test is written. This means the paramter which can be used are set therer together with how many outputs are generated and then this output can be check with different ways like size compare or if certain text is in the file for example. The Problem now is that in GitHub a Galaxy instance will be simulated and the each test will be run via commandline. Now the problem is that my test doesnt work is that Galaxy has datatype which are allowed to be used and i did use a datatype which is not yet implemented in Galaxy so Galaxy blocking the files which are set to this datatype to be used which will end up in a errored Test. I did test all test localy where you can add datatype without an problme and run the same simulation as GitHub does there all test where fine but when there is something where i have some troubles i will come back to this offer thank you! Also if you want too know more feel free to ask i can try to answer them or can provide any data/screenshots from implemente you tool to galaxy! :)

Btw. wonderful the get feedback from the developer of the underlying software. This is super helpful and much appreciated.

Yes this is really helpful thank you for this!

@SantaMcCloud

Copy link
Copy Markdown
Contributor Author

Will fix the new test tomorrow but in the meantime the checksum check can be reviewed

@pvanheus

Copy link
Copy Markdown
Contributor

@SantaMcCloud can we replace the hard-coded URLs in the data manager with a TSV of URLs and expected checksums? This will make it more maintainable. I can work on that while I'm here at the GCC 2026 CoFest.

@SantaMcCloud

Copy link
Copy Markdown
Contributor Author

@SantaMcCloud can we replace the hard-coded URLs in the data manager with a TSV of URLs and expected checksums? This will make it more maintainable. I can work on that while I'm here at the GCC 2026 CoFest.

We can replace this yes. And if you can or want to do it feel free to. Happy to learn from you then for futher tools and DMs! :)

@pvanheus

Copy link
Copy Markdown
Contributor

The download from zenodo could be much simplified by using zenodo_get.

@SantaMcCloud

Copy link
Copy Markdown
Contributor Author

The download from zenodo could be much simplified by using zenodo_get.

i will change it then

@SantaMcCloud

Copy link
Copy Markdown
Contributor Author

hm the linting error now comes from the r linting which i dont know how to fix since it seems like this is an error from the Pipeline setup?

<param name="note" type="text" label="Add a note" help="Here some notes can be set for example from where the data comes, who created the data and so on"/>
</when>
<when value="fasta">
<param name="file_name" type="text" label="Enter filename" help="Please enter the name of the file which will be downloaded without the extension" />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should maybe consider the fasta data table here as input as well.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So just to check if im right this should work with the current fasta data table or a new data table?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The all_fasta data table

<option value="mouse">panmouse-1 (k=31, w=15, e=0.5)</option>
</param>
</when>
<when value="url">

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need the url option?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we replace the hard-coded URLs in the data manager with a TSV of URLs and expected checksums?

Is there so much pre-built data out there anyway? If so, we should also store the origin URL in the loc file?

If the number of available pre-built files is small, I would prefer to have them hardcoded in the DM.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Im not sure i just add if there might be a lot of usage later on.

Currently only the 2 hardcoded pre-builds are out so this was also the reason i did hardcode them. I can add the URL/Zenodo record ID in the loc file/data table if wanted

Comment on lines +125 to +126
<param name="version" type="text" label="Which version was used to build the file to copy" help="State the tool version used to build the index file"/>
<param name="format_version" type="text" label="Set the index format version" help="The current index format version for Deacon v.@TOOL_VERSION@ is 3"/>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The DM should set this information and not the DM user.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This referred to the fasta input case. Your change seems to be regarding url input (which should be removed?)

</when>
<when value="fasta">
<param name="file_name" type="text" label="Enter filename" help="Please enter the name of the file which will be downloaded without the extension" />
<param name="link" type="text" label="Input the URL to download a fast file for using it to build an index file"/>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This parameter seems not necessary to me.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i will remove/change this based on the fasta table comment.

Comment thread tools/deacon/deacon_filter.xml Outdated
</command>
<inputs>
<conditional name="index_type">
<param name="is_select" type="select" label="Select if index file will be used from DM or own index file">

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"from DM" is pretty technical. Just something like "use a pre-built index"?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please do the same for the option.

@SantaMcCloud

Copy link
Copy Markdown
Contributor Author

@bernt-matthias i Will do the chnages later which i did not comment :)

#if $input.is_select == "prebuild"
#if $download == "human"
zenodo_get 17288185 -m -g "*.idx" -o '$out_file.extra_files_path' &&
md5sum -c md5sums.txt || (echo "Checksum verification failed" >&2; exit 1)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don't need the md5sum - the -m to zenodo_get does the MD5 check

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread tools/deacon/deacon_filter.xml Outdated
Comment thread tools/deacon/deacon_filter.xml Outdated
ln -s '$fastx_input.single_file' "${identifier}.${fastx_input.single_file.ext}" &&
#else
#set $identifier = re.sub("[^\s\w\-]", "_", str($fastx_input.pair.forward.element_identifier))
ln -s '$fastx_input.pair.forward' "${identifier}.${fastx_input.pair.forward.ext}" &&

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of this use of identifier is not needed. One can simply ln -s '$fastx_input.single_file' "single.${fastx_input.single_file.ext}" && and similar for the paired reads.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe plus the complication that ext is "fastqsanger", but this might not be a problem ... do we have a test covering these datatypes?

Most simple would be to use $fastx_input.single_file directly if it works and skip the linking.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed - deacon uses paraseq to read sequence data which in turn uses niffler which sniffs the files to detect datatype, so exposing the extension of the datatype is not needed. A simple use of the relevant variable (like $fastx_input.single_file would work.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did change all tools beside of union and intersect since there can be x amout of file used and for debugging it might be better to have numbered files. If wanted i can remove this aswell!

@bernt-matthias bernt-matthias left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the changes. A few more comments

<param name="note" type="text" label="Add a note" help="Here some notes can be set for example from where the data comes, who created the data and so on"/>
</when>
<when value="fasta">
<param name="file_name" type="text" label="Enter filename" help="Please enter the name of the file which will be downloaded without the extension" />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The all_fasta data table

Comment on lines +125 to +126
<param name="version" type="text" label="Which version was used to build the file to copy" help="State the tool version used to build the index file"/>
<param name="format_version" type="text" label="Set the index format version" help="The current index format version for Deacon v.@TOOL_VERSION@ is 3"/>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This referred to the fasta input case. Your change seems to be regarding url input (which should be removed?)

Comment thread tools/deacon/deacon_filter.xml Outdated
ln -s '$fastx_input.single_file' "${identifier}.${fastx_input.single_file.ext}" &&
#else
#set $identifier = re.sub("[^\s\w\-]", "_", str($fastx_input.pair.forward.element_identifier))
ln -s '$fastx_input.pair.forward' "${identifier}.${fastx_input.pair.forward.ext}" &&

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe plus the complication that ext is "fastqsanger", but this might not be a problem ... do we have a test covering these datatypes?

Most simple would be to use $fastx_input.single_file directly if it works and skip the linking.

@SantaMcCloud

Copy link
Copy Markdown
Contributor Author

@bernt-matthias

The all_fasta data table

I did start change the DM to use this data table but im not finish since i have a question where you might could help me since i need a test DB for this DM so i can use it in a test but for deacon i have the test files. So my question is can i put both into one config file [tool_data_table_conf.xml.test] or do they need each of them there own file and if yes can i name then different?

This referred to the fasta input case. Your change seems to be regarding url input (which should be removed?)

yes i did forgot to change this sorry it should be removed now!

@pvanheus

pvanheus commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

@bernt-matthias

The all_fasta data table

I did start change the DM to use this data table but im not finish since i have a question where you might could help me since i need a test DB for this DM so i can use it in a test but for deacon i have the test files. So my question is can i put both into one config file [tool_data_table_conf.xml.test] or do they need each of them there own file and if yes can i name then different?

It can all go into the sample tool_data_table_conf.xml.test file. Look here for an example.

@SantaMcCloud

Copy link
Copy Markdown
Contributor Author

@bernt-matthias

The all_fasta data table

I did start change the DM to use this data table but im not finish since i have a question where you might could help me since i need a test DB for this DM so i can use it in a test but for deacon i have the test files. So my question is can i put both into one config file [tool_data_table_conf.xml.test] or do they need each of them there own file and if yes can i name then different?

It can all go into the sample tool_data_table_conf.xml.test file. Look here for an example.

Thank you this helped me a lot. The DM should be done now and i think all tools can be reviewed again!

#end if
"format_version":"3",
#if $input.is_select == "prebuilt"
"note":"Prebuilt index files from the devs of deacon"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replace devs with developers

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants