Difference between revisions of "Converting microarray images"

From Organic Design wiki
m (See also: Category:Microarray)
(Imagemagick: Add {{code parser functions)
Line 4: Line 4:
 
= Imagemagick =
 
= Imagemagick =
 
Once installed, all image magick tools are accessed through the command line. The ''[http://www.imagemagick.org/script/identify.php identify]'' binary describes the format and characteristics of one or more image files. e.g.
 
Once installed, all image magick tools are accessed through the command line. The ''[http://www.imagemagick.org/script/identify.php identify]'' binary describes the format and characteristics of one or more image files. e.g.
<table class=document-code><tr><td>  
+
{{code|
 +
<bash>
 
  identify rose.jpg
 
  identify rose.jpg
 
  rose.jpg JPEG 640x480 DirectClass 87kb 0.050u 0:01
 
  rose.jpg JPEG 640x480 DirectClass 87kb 0.050u 0:01
</table>
+
</bash>
 +
}}
  
 
The ''[http://www.imagemagick.org/script/convert.php convert]'' binary is useful for resizing images, for example;
 
The ''[http://www.imagemagick.org/script/convert.php convert]'' binary is useful for resizing images, for example;
<table class=document-code><tr><td>  
+
{{code|
 +
<bash>
 
  convert -size 800x600 input.jpg'[80x60]' output.png
 
  convert -size 800x600 input.jpg'[80x60]' output.png
 
  convert input.jpg --resize 80x60 output.png
 
  convert input.jpg --resize 80x60 output.png
 
  convert input.jpg --resize 10% output.png
 
  convert input.jpg --resize 10% output.png
 
  convert input.jpg -resize 8% -quality 0 output.png
 
  convert input.jpg -resize 8% -quality 0 output.png
</table>
+
</bash>
 +
}}
 
will resize and convert a  [[wikipedia:JPEG|JPEG]] to a  [[wikipedia:PNG|PNG]]. The ''[http://www.imagemagick.org/script/mogrify.php mogrify]'' binary will convert an entire directory of images;
 
will resize and convert a  [[wikipedia:JPEG|JPEG]] to a  [[wikipedia:PNG|PNG]]. The ''[http://www.imagemagick.org/script/mogrify.php mogrify]'' binary will convert an entire directory of images;
<table class=document-code><tr><td>  
+
{{code|
 +
<bash>
 
  mogrify -format png -size 800x600 *.jpg  # reverse input/output order
 
  mogrify -format png -size 800x600 *.jpg  # reverse input/output order
 
  mogrify -format png -resize 8% -rotate -90 *.jpg
 
  mogrify -format png -resize 8% -rotate -90 *.jpg
</table>
+
</bash>
 +
}}
 
''Note- This appears to be memory hungry for a directory with images of large file size. In this case use the bash binary 'xargs' of a for loop, for example;
 
''Note- This appears to be memory hungry for a directory with images of large file size. In this case use the bash binary 'xargs' of a for loop, for example;
 
<table class=document-code><tr><td>  
 
<table class=document-code><tr><td>  
<pre>
+
{{code|
 +
<bash>
 
  # Use a shell loop
 
  # Use a shell loop
 
   mkdir thumbnails
 
   mkdir thumbnails
Line 44: Line 51:
 
   # is the simpler (without needing a sub-shell) form...
 
   # is the simpler (without needing a sub-shell) form...
 
   ls *.jpg | xargs  -I FILE  convert FILE -thumbnail 200x90 th_FILE.gif
 
   ls *.jpg | xargs  -I FILE  convert FILE -thumbnail 200x90 th_FILE.gif
</pre>
+
</bash>
</table>
+
}}
  
 
== Commands for microarray images ==
 
== Commands for microarray images ==
<bash>
+
{{code|<bash>
 
  # Use a BASH shell loop
 
  # Use a BASH shell loop
 
   dir=PNG
 
   dir=PNG
Line 60: Line 67:
 
   done
 
   done
 
</bash>
 
</bash>
 +
}}
 
''Note- The original source quality influences the cut down PNG's here. Ideally JPEG's of the highest possible quality should go into making cut down PNG's since the original TIFF's are proprietary 26-bit format''
 
''Note- The original source quality influences the cut down PNG's here. Ideally JPEG's of the highest possible quality should go into making cut down PNG's since the original TIFF's are proprietary 26-bit format''
  

Revision as of 02:53, 19 March 2008

Microarray images are generally stored as 16-bit TIFF images (usually around 100Mb in size. An alternative lossy image format is JPEG format, which is still bloated at around 40Mb filesize. Investigating the image size of a typical GenePix derived JPEG image, the pixel size is 4400 × 14300 pixels (72 pixels per inch) with an aspect ratio of 3.25 . A general visual summary of these lossy images is all that is required where they could be converted to a much smaller PNG image type using an appropriate program such as ImageMagick or Gimp which allows batch processing of multiple images a once.

Imagemagick

Once installed, all image magick tools are accessed through the command line. The identify binary describes the format and characteristics of one or more image files. e.g.

<bash>
identify rose.jpg
rose.jpg JPEG 640x480 DirectClass 87kb 0.050u 0:01

</bash>

The convert binary is useful for resizing images, for example;

<bash>
convert -size 800x600 input.jpg'[80x60]' output.png
convert input.jpg --resize 80x60 output.png
convert input.jpg --resize 10% output.png
convert input.jpg -resize 8% -quality 0 output.png

</bash>

will resize and convert a JPEG to a PNG. The mogrify binary will convert an entire directory of images;

<bash>
mogrify -format png -size 800x600 *.jpg  # reverse input/output order
mogrify -format png -resize 8% -rotate -90 *.jpg

</bash>

Note- This appears to be memory hungry for a directory with images of large file size. In this case use the bash binary 'xargs' of a for loop, for example;

<bash>
# Use a shell loop
 mkdir thumbnails
 for $f in *.jpg
 do   convert $f -thumbnail 200x90 thumbnails/$f.gif
 done
 # Use find
 # this also provides the ability to recurse though directories by removing
 # the -prune option, as well as doing other file checks (like imgae type,
 # or the disk space used by an image).
 find * -prune -name '*.jpg' \
        -exec  convert '{}' -thumbnail 200x90 thumbnails/'{}'.gif \;
 # Use xargs -- with a shell wrapper to duplicate the argument.
 # This can be combined with find insted of "ls"
 ls *.jpg

Commands for microarray images

{{{1}}}

Note- The original source quality influences the cut down PNG's here. Ideally JPEG's of the highest possible quality should go into making cut down PNG's since the original TIFF's are proprietary 26-bit format

It may be necessary to remove metadata using tools such as OptiPNG or Pngcrush

Converting PNG's

<bash>

  1. Use a BASH shell loop

in=png out=png dir=PNG

if [ ! -d $dir ] ; then mkdir ../$dir fi for file in *.$in do

 echo "[ Converting $file ]"
 convert "$file" -resize 135x135 -quality 0 ../$dir/"${file%%\.$in}.$out"

done </bash>

Usage example

Using wiki tables, targets files can include actual images for quick visual inspection.

Targets example.png

See also