NeurolucidaDAT

Overview

The format used by the MicroBrightField Neurolucida neuron reconstruction software  ( http://www.mbfbioscience.com/ ).


Format specification

<in progress>

Encoding:  Binary, little-endian.
Limitations: 


Each file starts with a 70-byte header:

    0x04,  'V',  '3',  ' ',  'D',  'A',  'T',  ' ',  'f',  'i',  'l',  'e', 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x2B, 0xAD


Remaining data is basically a hierarchy of data blocks, each of which is identified by a 6-byte header.  This header identifies the type of block (2 bytes), and its size (4 bytes). The type of block determines the data which follows the header (which may include child datablocks).

Header: 
type : size
u16  : u32

Object Type
Object Hex ID
Data which follows header
Example (type : size : tag-specific data)
Hex layout in file (little endian)

String
0x0001
ASCII characters
0x0001 : 0x0000000A : 'Name'
0100 0A000000 4E616D65







Sample
0x0101
x
y
z
d
section
(f32) (f32) (f32) (f32) (u16)
0x0101 : 0x00000018 : 2.15 : -3.25 : 18.55 : 0.54 : 0x0000
0101 18000000 .... 0000

-
0x0102
-



Sample List
0x0103
number of samples : Sample ....
(u16)
0x0103 :


Property
0x0104
name : ??? : ??? : value
String : u16 : u16 : String
0x0104

Property List
0x0105
number of properties : Property ....
(u16) : .....
0x0105







Contour
0x0201
0x0201

Tree
0x0202
0x0202

Sub-Tree
0x0203
0x0203

MarkerSet
0x0204
0x0204

MarkerSet List
0x0205 number of marker sets: MarkerSet ....
(u16) : .....
0x0205

Spine
0x0206
0x0206

Spine List
0x0207 number of spines : Spine ....
(u16) : .....
0x0207

Text
0x0208
0x0208

Sub-Tree
0x0209

0x0209







Thumbnail 0x0401
0x0401

Description
0x0402
0x0402

Image Data
0x0403
0x0403



Root-level blocks (i.e. data blocks which are not embedded in parent data blocks) appear in the following order:  Sections, Image Data, Global Markers, Contours, Trees, Text


The file then terminates with a 4-byte footer:

    0xAABBCCDD


Note some files can have additional (garbage?) data after the footer (observed in some NRX files...)

References

This is an unpublished format

Links

none

Examples

<todo>