Hi,
    I have my own image registration tool that I've created on my own local 
instance of galaxy.

The method takes in two images (*.nii.gz) formats and registers them together, 
and produces one registered *.nii.gz file and a *.trsf matrix file.

The first issue encountered was the method was expecting *.nii.gz files as 
inputs but was receiving *.dat files. I navigated around this problem as shown 
by the files below:

- <<tool id="RegisterAliBabaAffine" name="RegisterAffine">
  <  <description>two images</description>
  <  <command 
interpreter="bash">$__root_dir__/tools/registration/reg-wrapper.sh $moving 
$fixed $outputTRSF $outputImage</command>
- <  <inputs>
  <    <param format="binary" name="moving" type="data" label="Moving Image" />
  <    <param format="binary" name="fixed" type="data" label="Fixed Image" />
  <    <param type="hidden" name="outputTRSF" value="output.trsf" label="trsf 
file" help="Output File must have .trsf extension" />
  <    <param type="hidden" name="outputImage" value="output.nii.gz" 
label="Image output file" help="Output Image File must have .nii.gz extension" 
/>
   </inputs>
- <  <outputs>
  <    <data format="input" name="output_TRSF" from_work_dir="output.trsf" />
  <    <data format="input" name="output_Image" from_work_dir="output.nii.gz" />
   </outputs>
  <  <help>This tool uses Affine Registration to register two images.</help>
  </tool>

#!/bin/bash
MOVING=`mktemp --suffix .nii.gz`
FIXED=`mktemp --suffix .nii.gz`
cat $1 > $MOVING
cat $2 > $FIXED
/usr/local/MILXView.12.08.1/BashScripts/RegisterAliBabaAffine -m $MOVING -f 
$FIXED -t $3 -o $4
RC=$?
if [[ $RC == 0 ]]; then
  OUTPUTTRSF=`mktemp --suffix .trsf`
  OUTPUTIMG=`mktemp --suffix .nii.gz`
  cat  $OUTPUTTRSF > $3
  cat  $OUTPUTIMG > $4
  rm $OUTPUTTRSF
  rm $OUTPUTIMG
fi

rm $MOVING
rm $FIXED

exit $RC

This allows them to pass the *.nii.gz files that the registration method is 
expecting.

Everything works fine and I can see output generated in the job_working_dir and 
the history turns green...


galaxy@bmladmin-OptiPlex-745:~$ ls -lrt 
~/galaxy-dist/database/job_working_directory/000/27/

total 2940

-rw------- 1 galaxy nogroup       0 Sep 13 10:15 tmpRfHsOP_stderr

-rw-r--r-- 1 galaxy nogroup     241 Sep 13 10:35 output.trsf

-rw------- 1 galaxy nogroup      80 Sep 13 10:35 tmplmK0V2_stdout

-rw-r--r-- 1 galaxy nogroup 2998272 Sep 13 10:38 output.nii.gz

However, the problem occurs when the files are copied from 
~/galaxy-dist/database/job_working_directory/000/27/ to 
~/galaxy-dist/database/files/000/. When this happens the files become size = 0.

Any ideas?


-rw-r--r-- 1 galaxy nogroup       0 Sep 13 09:36 
/home/galaxy/galaxy-dist/database/files/000/dataset_40.dat

-rw-r--r-- 1 galaxy nogroup       0 Sep 13 09:36 
/home/galaxy/galaxy-dist/database/files/000/dataset_41.dat

-rw-r--r-- 1 galaxy nogroup       0 Sep 13 10:38 
/home/galaxy/galaxy-dist/database/files/000/dataset_43.dat

-rw-r--r-- 1 galaxy nogroup       0 Sep 13 10:38 
/home/galaxy/galaxy-dist/database/files/000/dataset_42.dat


The output in galaxy.log indicates it is successful:


/home/galaxy/galaxy-dist/tools/registration/reg-wrapper.sh 
/home/galaxy/galaxy-dist/database/files/000/dataset_23.dat 
/home/galaxy/galaxy-dist/database/files/000/dataset_20.dat output.trsf 
output.nii.gz galaxy.jobs DEBUG 2012-09-13 10:38:10,334 The tool did not define 
exit code or stdio handling; checking stderr for success galaxy.jobs DEBUG 
2012-09-13 10:38:10,361 finish(): Moved 
/home/galaxy/galaxy-dist/database/job_working_directory/000/27/output.trsf to 
/home/galaxy/galaxy-dist/database/files/000/dataset_42.dat as directed by 
from_work_dir galaxy.jobs DEBUG 2012-09-13 10:38:10,380 finish(): Moved 
/home/galaxy/galaxy-dist/database/job_working_directory/000/27/output.nii.gz to 
/home/galaxy/galaxy-dist/database/files/000/dataset_43.dat as directed by 
from_work_dir galaxy.jobs DEBUG 2012-09-13 10:38:10,609 job 27 ended

Is the issue copying *.nii.gz files and *.trsf file into *.dat files? Anyway 
around this?


I've also modified ~/galaxy-dist/lib/galaxy/jobs/__init__.py (line 363) to 
change shutil.move



To shutil.copy2 (same results)



Also put in a different output path to copy to. But essentially we have files 
with size in ~/galaxy-dist/database/job_working_directory/000/id/, but they 
files are size  0 after the move into ~/galaxy-dist/database/files/000


Thanks

Neil
___________________________________________________________
The Galaxy User list should be used for the discussion of
Galaxy analysis and other features on the public server
at usegalaxy.org.  Please keep all replies on the list by
using "reply all" in your mail client.  For discussion of
local Galaxy instances and the Galaxy source code, please
use the Galaxy Development list:

  http://lists.bx.psu.edu/listinfo/galaxy-dev

To manage your subscriptions to this and other Galaxy lists,
please use the interface at:

  http://lists.bx.psu.edu/

Reply via email to