function [img, header, errmsg]=readSPIDER(fname) %READSPIDER Import a SPIDER file. % % [I,H, errmsg]=READSPIDER(FNAME) % % I is the image in grayscale multiplied by 32000 % H if the constracted header % FNAME is the file name % % Claudio 12 Oct. 1995 % % Copyright (c) 1995 by Claudio Rivetti and Mark Young % claudio@alice.uoregon.edu, mark@alice.uoregon.edu % errmsg = ''; HEADER_SIZE = 2048; if exist(fname) ~= 2 errmsg='File not found'; return; end [g, s]=spiread(fname); g=g-min(min(g)); g=(g/max(max(g)))*32000; m=max(size(g,1),size(g,2)); img=zeros(m,m); img(1:size(g,1), 1:size(g,2))=g; clear g; if length(s)>=20 t=s(1:8); d=s(11:length(s)); g=d(1:2); m=d(4:6); y=d(8:length(d)); D=[t ' XX xxx ', m ' ' g ' ' y]; else t='hh:mm:ss' g='gg';m='mm';y='yyyy'; end D=[t ' XX xxx ', m ' ' g ' ' y]; header=zeros(1,HEADER_SIZE); header(1)=26; header=setparameter(header, '*ALEX Header', ''); header=setparameter(header, 'File Type', 'SPIDER'); header=setparameter(header, 'Date', D); header=setparameter(header, 'Data length', HEADER_SIZE); header=setparameter(header, 'Samps/line', size(img)); header=setparameter(header, 'Serial number', ' '); header=setparameter(header, 'Id', 'SPIDER'); header=setparameter(header, 'X offset', '0 pixels'); header=setparameter(header, 'Y offset', '0 pixels'); header=setparameter(header, 'Scan size', [num2str(size(img,1)) ' pixels']); header=setparameter(header, 'Trasform. Factor', 1/32000); header=setparameter(header, 'Note', 'Image from a SPIDER file'); return