NLMorphologyConverter
- Plan for first major stable
release: Version 1.0.0
- Activate scripting support for publicly available versions (Lua
at least, and probably Python also - both are already tested and
working in general, but need a little more polish to complete the
support to a releasable standard). Allows internal neuron data
structures to be constructed, navigated and queried, thereby enabling
user-extension
of the converter functionality. (Example scripts will be provided -
e.g. custom neuron importer, custom neuron generator, custom file
format exporter, custom statistics generator.)
- Provide C++ SDK, python wrapper..
- Add general support for non-soma contours (can already force
import by using hint options).
- Possibly add support for preserving more data between
Neurolucida
formats (i.e; data which this software doesn't particularly care about,
but might be useful for users...)
- Fix any unnecessary limitations and outstanding bugs in current
functionality.
- Testing regime: full support for 1D formats (will only test
branch lengths/diameters)
- Generally improved documentation.
- Call for feature requests - the
main
converter
functionality
is
unlikely
to
change
significantly
once
version
1.0.0
is
reached.
Please
email
any
additional
bug
reports
or
feature
requests
to
feedback
AT
neuronland
dot
org
Version History
- 0.10.0.dev - 10th January
2016 (NOTE: * incidates in-progress or broken feature: don't
expect it to
work well, if at all. Other features should be quite stable.)
- Windows release. Extra release
between 0.9.0
and version 1.0.0 (which is very heavily delayed due to an unfortunate
lack
of
development time).
This is a major release, with several new file formats now supported,
many bugs fixed, and several new features added.
- Installation: Windows: NLMorphologyConverter executable
location
now automatically added
to system PATH.
- Improvement: case insensitive output format name check.
- Improvement: case insensitive style name check.
- File format Aramal support added (Import and Export. This is an
old
format, and similar in many ways to SWC. Support is added due to
appearance
of 4 files in NeuroMorpho:jaffe archive.)
- File format Bannister support added (Import only. This
is a 1D format (only contains length + diameter). Support is added due
to appearance of 6 files in
NeuroMorpho:larkman archive. See also --set1Dxxxxxx options for
configuring artificial branching pattern.).
- File format ImarisHDF import support added
- Note: no export
added.
- Imports Filament data.
- Experimental, much more test data needed.
Please send!
- Note: There is currently no Imaris data in
NeuroMorpho database.
- Note: there is a known issue with looping filament data
preventing successful import.
- File format Korogod support added
(Import and Export. Experimental. found in ModelDB, Korogod et al 1999.
).
- File format NeurolucidaDATClassic support added (Import and
Export. seen in NeuroMorpho:mailly and NeuroMorpho:bausch archives.)
- File format renamed: LNeuronAmiraMesh format renamed to
AmiraMesh. Export LNeuron style with
--style lneuron
.
- File format renamed: MorphML format renamed to NeuroML
(MorphML will still work if specified as output format, however..)
- File format renamed: NeurolucidaClassic renamed to
NeurolucidaASCClassic (for consistency with addition of legacy
NeurolucidaDATClassic binary format)
- General information preservation:
- Preservation of dendrite type (unspecified (basal), apical)
- Neurolucida information preservation:
- preservation of terminal types between NeurolucidaASC,
NeurolucidaDAT, NeurolucidaXML
- *preservation of colours between NeurolucidaASC,
NeurolucidaDAT, NeurolucidaXML
- Spine support:
- *added support for spine contours (e.g. as obtained from
ImarisHDF format).
- see also
--spinesToBranches
command line option.
- *Fix for AmiraMesh import (AmiraMesh ASCII 1.0 files: no longer
assume
sample point diameter data is included. More general treatment of data
fields order.)
- *Fix for AmiraMesh import (general support for SkeletonGraph
type)
- *Fix for AmiraMesh import (general support for HxSpatialGraph
type)
- *Fix for AmiraMesh export (add support for multiple
styles:
'lneuron',
'skeletongraph',
'spatialgraph')
- Fix for Eutectics import (better file validation, ignore empty
lines anywhere in file.)
- Fix for Eutectics import (better file validation, allow files
which are missing certain expected header text: permits 4 files from
NeuroMorpho:Fyffe archive. See also
--strictValidation
option)
- *Fix for NeuronHOC import (various bug fixes, new HOC parser)
- Fix for NeuroML import (recognize <neuroml> as a root
xml tag, as well as <morphml>).
- Fix for NeuroML import/export (some tweaks to experimental
version 2.0 support. Missing support for spines, markers. Not
fully tested, not recommended for general usage...)
- Fix for NeurolucidaASC import/export (support for
distinguishing apical dendrites)
- Fix for NeurolucidaASC import (better file validation)
- Fix for NeurolucidaASC import (now aware of TreeOrder keyword)
- Fix for NeurolucidaASC import (now aware of GUID keyword)
- Fix for NeurolucidaASC import (now aware of MBFObjectType
keyword)
- Fix for NeurolucidaASC export (support for neurolucida terminal
types)
- Fix for NeurolucidaASCClassic import (ignore unknown Major id,
rather than indicating failure...algorithm will usually be able to cope)
- Fix for NeurolucidaASCClassic import (fix for error being
signalled for empty lines at end of file)
- Fix for NeurolucidaASCClassic import (fix for crash when
markers are at end of file)
- Fix for NeurolucidaASCClassic import/export (support for
distinguishing apical dendrites)
- Fix for NeurolucidaXML import (support difference between
version 4.0 and 3.0, namely sub-trees tagged as "branch" in v. 4.0, vs.
"tree" in v. 3.0)
- Fix for NeurolucidaXML import/export (support for
distinguishing apical dendrites)
- Fix for NeurolucidaXML export (support for neurolucida terminal
types)
- Fix for NeurolucidaXML export (support for neurolucida terminal
types)
- Fix for NeurolucidaDAT import (safely ignore small section of
'corrupt' (?) data which can appear after DDCCBBAA terminal. Appears in
NRX
files in NeuroMorpho:buzsaki archive).
- Fix for NeurolucidaDAT import (cope with alternative sub-tree
element tag 0x0209 - probably equivalent to NeurolucidaXML v. 4.0 usage
of "branch" instead of "tree" to represent sub-trees.)
- Fix for NeurolucidaDAT import/export (support for
distinguishing apical dendrites)
- Fix for NeurolucidaDAT export (support for neurolucida terminal
types)
- Fix for SWC import/export (support for distinguishing apical
dendrites)
- Fix for SWC import (support for unordered data, e.g. output
from Neuromantic, where parent nodes may appear file after child nodes
in the SWC file.)
- Command line options
--style
- MorphML (style option allows user to choose the root tag)
- '
morphml
' (default)
- '
neuroml
'
- AmiraMesh
'lneuron' (HxLineSet)
*'skeletongraph'
*'spatialgraph'
--spinesToBranches
(tree spines are
coverted into small dendritic branches; global spines have no
associated
branch and so cannot be converted.)
--test
<file> <format>
<logfile> (run
test regime on file, which is known to be in specified format. Outputs
results to specified file. Overides any other options. Please use
this option to test any files which are causing problems, and send
original file + test logfile.)
--strictValidation (
by default we relax the file
validation conditions slightly, to allow certain files (which do not
quite conform to the expected file format) from certain archives, to
pass. This options requires files to strictly conform to file format
specification.)
- Helper options for import of 1D formats (which contain only
length-diameter information, so require that we invent branching angles
for the 3D representation.)
--set1DBifurAngle <angle>
(angle
is in degrees. General. Binary child branches will split at this angle.
Non-binary branch points will share this angle range. default 36)
--
set1DBifurAngleApical
<angle>
(angle is in
degrees. overrides General setting. Defaults to General setting)
--
set1DBifurAngleAxon
<angle>
(angle is in
degrees. overrides General setting. Defaults to General setting)
--
set1D
Root
AngleRange
<angle> <range>
(angle,
range
are
in
degrees.
Range
around
angle
which
the
dendrites
root
points
will be spread. Default 90, 150)
--
set1D
Root
AngleRange
Apical
<angle>
<range>
(angle,
range
are
in
degrees.
Range
around
angle
which
apical
dendrites
root
points
will be spread. Default 270, 45)
--
set1D
Root
AngleRange
Axon
<angle>
<range>
(angle,
range
are
in
degrees.
Range
around
180'
which
the
axon
root
points will
be spread. Default 180, 45)
--
set1DBranchingPattern
<pattern>
(pattern
can currently only be planar
. More to come in the future.)
- Testing regime:
- updated to data in NeuroMorpho version 6.0.
- NLMorphologyConverter is now capable of importing almost
all file
formats currently found in the NeuroMorpho archive.
- *various issues to resolve before entire archive passes the
current testing regime.. (mostly Neuron HOC issues)
- including 5 damaged/incorrect files (3x
NeurolucidaASC, 2x SWC), which have been manually fixed
- including various yuste archive ASC files which have
manually fixed
- excluding 6 Bannister format files in Larkman archive (1D
format, no export provided. Import is double-checked manually.).
- excluding various Neuron HOC files pending fixes for
importer.
- + more
- private database: added supplied AmiraMesh 2.0, ImarisHDF
ims, and NeurolucidaXML files.
- Note that NLMorphologyViewer has been updated (version 0.4.0)
with all the fixes listed here, and can now display spine contour data
(as found in ImarisHDF format..)
- 0.9.0 - 17th October 2010
- Windows release. This is a major release, with
many bug fixes, changes, and other improvements. This is the
final
non-bugfix release
before
the first offical stable release (version 1.0.0).
- NeurolucidaXML format
import/export support added (format is
documented here -> https://support.mbfbioscience.com/index.php?action=kb&article=37).
- PSICS xml morphology format
import/export support added (format is documented here -> http://www.psics.org/formats/morphology.html.)
- Generally improved error handling.
- Additional import/modify/export logging.
- General improvement of soma support accross all
relevant formats (largely due to inclusion of soma data in testing
regime).
- General improvement of marker point support accross all
relevant formats (largely due to inclusion of marker data in testing
regime). (Note that marker points are classed as global (not explicitly
associated with specific substructure) , or
explicitly associated
with specific neuron structure - soma, or tree (i.e. axon or dendrite)
branches.).
- Explicit spine data import/export support for MorphML,
NeurolucidaASC, NeurolucidaDAT, NeurolucidaXML, and NeuroZoom formats.
Support spines as much as possible in Eutectics import. Spines are
either global, or explicitly associated with tree samples).
- NeuronGeneric format renamed to NeuronHOC. Significantly
improved NeuronHOC import and export algorithms. ***PARTLY DISABLED
PENDING
SOME FIXES - will be available in version 0.9.1 *** NOTE:
(UPDATE: delayed, and will be available in version 1.0.0.)
- ***DISABLED PENDING SOME FIXES*** Complete
rewrite of importer. (Essentially now compiles and executes a subset of
the HOC language - should be able to cope with:
create
, access
,
connect
,
pt3dclear
, pt3dadd
,
for, proc,
+more , while
safely ignoring commands unrelated to tree geometry construction.)
- ***DISABLED PENDING SOME FIXES*** Many different commonly
used HOC styles may be
exported (see --style option)
- ***DISABLED PENDING SOME FIXES*** Can import all HOC style
which can be exported,
and various slight variations of these styles which can be found in
e.g. ModelDB.
- Can import NeuronSWC2HOC and NeuronNTSCable formats
- Remove explicit NeuronSWC2HOC format - now supported via
NeuronHOC format (auto-detected by importer, and exported with
--style
swc2hoc
)
- Remove explicit NeuronNTSCable format - now supported via
NeuronHOC format (auto-detected by importer, and exported with
--style
ntscable
)
- Fix for Douglas3D export (multiple soma contours will now be
exported).
- Fix for Eutectics import (treat BTO and TTO points in the same
way as MTO.).
- Fix for Eutectics import (allow OS,OCP,OE,DS,DCP,DE tags to be
treated as
soma contours. This is not default behaviour. See import option
--hint
AllContoursAsSoma
.).
- Fix for Eutectics export (soma: export all points, not just
contour ends point!).
- Fix for Eutectics export (support for soma, axon, dend,
structure name prefix customisation. Defaults are "cell", "ax", "d".).
- Fix for Genesis export (reactivated, fixed, and tested).
- Fix for Genesis export (support for soma, axon, dend,
structure name prefix customisation. Defaults are "soma", "a", "d".).
- Fix for Glasgow import (marker data fixes).
- Fix for MorphML import (handle all the minor variations between
different morphML versions - any version from 1.0 to 1.8.2, and should
also work with the anticipated changes for version 2.0.
See
also command line export option
--versionNumber
).
- Fix for MorphML import (correctly handle all supported SI
length units,
i.e. meter, millimeter, micometer + older "..re" variations).
- Fix for MorphML import (algorithm now copes properly with
arbitrarily
ordered cable/segment data).
- Fix for MorphML import (cellBody/cell_body data, spine and
freePoint/free_point data is now imported).
- Fix for MorphML export (cellBody/cell_body, spine, and
freePoint/free_point data is now exported).
- Fix for MorphML export (support for structure name
customisation).
- Fix for NeurolucidaASC import (general rewrite to simplify and
optimize algorithm, and avoid problems which could potentially occur
with unknown keywords).
- Fix for NeurolucidaASC import (correctly differentiate open and
closed contours).
- Fix for NeurolucidaASC import (by default, contours with the
(CellBody) property, or contours which have "CellBody", "Cell Body", or
"Soma"
as a substring are treated as soma contours. See also command line
import
option
--hintSoma
).
- Fix for NeurolucidaASC import (global and contour markers
correctly distinguished.).
- Fix for NeurolucidaASC import (spine support).
- Fix for NeurolucidaASC export (update default format to be
consistent with recent versions of Neurolucida. Older styles can be
selected using the
--style
option).
- Fix for NeurolucidaASC export (marker names preserved).
- Fix for NeurolucidaASC export (various minor comment layout
adjustments for consistency with files generated by Neurolucida).
- Fix for NeurolucidaASC export (spine support).
- Fix for NeurolucidaASC export (support colour customisation).
- Fix for NeurolucidaASC export (support for soma contour name
customisation).
- Fix for NeurolucidaASC export (remove an artificial limit on
the level of tree data indentation).
- Fix for NeurolucidaClassic import (where relevant, assign
marker data to associated contour/branch, rather than considering all
marker data as global).
- Fix for NeurolucidaClassic export (set header data correctly -
file is original filename of imported file; min & max extents are
calculated. Remaining data is set to reasonable defaults, generally 0).
- Fix for NeurolucidaClassic export (write all soma contours,
instead of just the first).
- Fix for NeurolucidaClassic export (write marker data).
- Fix for NeurolucidaDAT import (support spine data).
- Fix for NeurolucidaDAT import (check for (CellBody) property -
always treat as Soma data, whatever the contour name might be).
- Fix for NeurolucidaDAT export (support marker data - global,
contour, and branch; support spine data).
- Fix for NeurolucidaDAT export (support colour customisation).
- Fix for NeurolucidaDAT export (always add (CellBody) property
to soma contours).
- Fix for NeurolucidaDAT export (support for soma contour name
customisation).
- Fix for NeuroZoom import (support spine data - note that spines
are global, i.e. not associated with specific tree branches).
- Fix for NeuroZoom import (branch connection bug for non-binary
trees in 'shortpath' layout style.).
- Fix for NeuroZoom export (remove some unnecessary junk).
- Fix for NeuroZoom export (first marker point per branch was not
exported).
- Fix for NeuroZoom export (support spine data - all spines are
global).
- Fix for NeuroZoom export (support colour customisation).
- Fix for NeuroZoom export (support for structure name
customisation).
- Fix for Oxford export (reduce precision for sample data which
otherwise occupies more than 8 characters).
- Command line options:
- Changes to existing options
--omitMarkers
removed and replaced with --omitAllMarkers,
--omitGlobalMarkers
etc...
--omitSoma
removed and replaced with --omitAllSomas,
--omitSomas
...
--warnings
various fixes for specific
warning
checks.
--statistics
more statistics added
- New format-specific import hint options added (note: the need
for hints often - but not always - indicates a lack of unambigious
specification of
key neuron structure in the format design which cannot be compensated
for in other ways by the import algorithm.)
--hintSWCStyle <style>
. Helps the SWC
importer
to
correctly import non-standardised SWC data files (ignored if not
actually
importing SWC data. Import will fail, if SWC data is not of the
expected style)
- '
stdswc
' (default)
- '
cnicswc
'
- '
gulyasswc
'
--hintNeuronHOCEntryProc
<proc_name>
(Identify
a
procedure
of
the
HOC
script,
which
encompasses
the
neuron
geometry
generation.
Several
defaults:
topol(),
???,
to
cope
with
all
known
styles.)
--hintSoma <substring>
(Affects:
MorphML,
NeurolucidaASC,
NeurolucidaDAT,
NeurolucidaXML,
NeuronHOC,
NeuroZoom,
PSICS)
- MorphML: (Identify
cable
group
name
of
segments
which
should
be
treated
as
soma
segments.
Default: "soma".)
- Neurolucida: (Identify
substring
of
contour
names
should
be
treated
as
soma
data.
This
is
in
addition
to
"Soma",
"CellBody"
and
"Cell
Body".
We
include
this
option
because
in
many
cases
soma
data
is
not
tagged
with
the
(CellBody)
property.)
- NeuroZoom:
(Identify
substring of structure which should be treated as soma data. Default:
"soma".)
- PSICS:
(Identify label
of points/branches which
should
be
treated
as
soma
segments.
Default: "soma".)
--hint
Axon
<substring>
(Affects: Eutectics,
MorphML, NeuronHOC, NeuroZoom, PSICS)
- Eutectics: (Identify
substring
of
tree
contours
which
should
be
treated
as
axon
data.
Default:
"ax").
- MorphML: (Identify
cable
group
name
of
segments
which
should
be
treated
as
axon
segments.
Default:
"axon".)
- NeuroZoom: (Identify
substring of structure which should be treated as soma data. Default:
"axon".)
- PSICS:
(Identify
label
of
points/branches
which
should
be
treated
as
axon
segments.
Default:
"axon".)
--hint
Dend
<substring>
(Affects: Eutectics,
MorphML, NeuronHOC, NeuroZoom, PSICS)
- Eutectics: (Identify
substring
of
tree
contours
which
should
be
treated
as
dendrite
data.
Otherwise
all
non-axon
non-soma
contours
will
be
treated
as
dendrites.).
- MorphML:
(Identify
cable
group
name
of
segments
which
should
be
treated
as
dendrite
segments.
Default:
"dend".)
- NeuroZoom: (Identify
substring of structure which should be treated as dendrite data.
Default: "dend".)
- PSICS:
(Identify
label
of
points/branches
which
should
be
treated
as
dendrite
segments.
Default:
"dend".)
--hintAllContoursAsSoma
(Affects:
NeurolucidaASC, NeurolucidaDAT, NeurolucidaXML, NeuroZoom)
- Eutectics:
(All
non-dend,
non-ax,
contours
are
treated
as
soma
data.
Convenient
for
forcing
all
data
to
be
imported.
This
data
can
later
be
modified
with
modify
options.)
- NeurolucidaXXX: (All
contours
are
treated
as
soma
data.
Convenient
for
forcing
all
data
to
be
imported.
This
data
can
later
be
modified
with
modify
options.)
- NeuroZoom:
(All
contours
are
treated
as
soma
data.
Convenient
for
forcing
all
data
to
be
imported.
This
data
can
later
be
modified
with
modify
options.)
- New modify options
--reverseAllTrees
. (All branch points
have child branch order reversed. - this has no physical affect on the
tree, and only affects branch ordering in the file format.)
--reverseTrees a,b,c.
(Specified trees
have child branch order reversed.)
--omitSomas
<comma_delimited_list_of_soma
_ids
>
--markersToSpines [all | <"marker name">]
(will
automatically
convert
markers
which
match
the
specified
substring
to
spines.).
Only
relevent
for
formats
which
have
named
markers.
--spinesToMarkers <"marker name">
(will
automatically
convert
spines to markers with the specified name).
--mapGlobalSpinesToBranches <limit>
where limit is max possible distance from branch sample (um).
(map
global spine
data (i.e. spine data which isnt explicitly associated with a
specific branch) to specific branches - affects NeuroZoom
and MorphML formats at the
moment).
--mapGlobalMarkersToBranches <limit>
where
limit
is
max
possible
distance
from
branch
sample.
(map
global
marker
data
(i.e.
marker
data
which
isnt
explicitly
associated
with
a
specific
branch)
to
specific
branches
-
affects
NeuroZoom
and
MorphML
formats
at
the
moment).
--forceMarkersGlobal
Markers which are
associated with soma or tree structure, are detached and made global.
--forceSpinesGlobal
Spines which are
associated with dendrite structure, are detached and made global.
(automatic for NeuroZoom...)
--renameMarkers <oldname> <newname>
Change
the
name
of
a
marker.
--omitAllMarkers
. (Omits all markers,
whether global or associated with specific soma or tree structure. Only
relevent
when
exporting to file
formats which support marker data.)
--omitGlobalMarkers
. (Omits global
markers, i.e. those
which are not associated with specific soma or tree structure. Only
relevent when
exporting to file
formats which support global marker data.)
--omitSomaMarkers
. (Omits markers which
are associated with soma structure. Only relevent
when
exporting to file
formats which support marker data.)
--omitAxonMarkers
. (Omits markers which
are associated with axon structure. Only relevent
when
exporting to file
formats which support marker data.)
--omitDendMarkers
. (Omits markers which
are associated with dendrite structure. Only relevent
when
exporting to file
formats which support marker data.)
--omitAllSpines
. (only relevent when
exporting to file
formats which support spine data).
--omitGlobalSpines
. (Omits spines which
are associated with specific soma or tree structure. Only relevent
when
exporting to file
formats which support global spine data.)
--omitDendSpines
. (Omits spines which
are associated with dendrites. Only relevent
when
exporting to file
formats which support spine data.)
--omitAxonSpines
. (Omits spines which
are associated with axons. Only relevent
when
exporting to file
formats which support spine data.)
--moveOriginToSoma
(will translate the entire
neuron so
that the origin (0,0,0) is at the mid-point of soma samples - or tree
roots, if there is no soma. Overrides --translate
).
--forceSphereSoma <diameter>
(will
replace any existing soma data with a sphere representation of the
specified diameter).
--forceCylinderSoma <diameter> <radius>
(will
replace
any
existing
soma
data
with
a
single
uniform
segment
of
specified
length
and
diameter).
- New export options
--versionNumber <version>
- MorphML: any valid version number from '1,0'
onwards (excluding alpha/beta versions):
'1.0',
'1.1',
'1.2', '1.3', '1.4', '1.5', '1.6', '1.7', '1.7.1', '1.7.2', '1.7.3',
'1.8.0', '1.8.1', '1.8.2'
(default), '2.0'
(experimental
-
may
not
be
completely
correct)
- No other formats are relevant for this option yet, but
some could be added in the future (possible candidates are
NeurolucidaASC,
NeurolucidaDAT,
NeurolucidaXML)
--style <style>
. (Allows
some
fine-tuning of the export format. Ignored if the specified style is not
relevant to the specified export format. Different styles are just
different but
equivalent ways to represent the same data, within the scope of the
format specification).
- NeurolucidaASC:
- '
modern
' (default).
Comments describe full tree
path from root branch, but only for first sample of each sample list.
Remaining
samples have a comment indicating sample number. (As generated by
recent versions of Neurolucida).
- '
classictags
' Each sample has
a comment giving full
tree path from root branch. (As generated by eariler versions of
Neurolucida)
- '
verbose
' Same as 'classictags
',
but
with
associated
NeurolucidaClassic
tags
removed.
(As
generated
by
eariler
versions
of
Neurolucida)
- '
nocomments
': No comments are
generated (except for header),
otherwise layout of file is as 'modern
'.
- '
compact
': No comments, and
reduced whitespace usage (maintains indented layout for readability).
- '
nmpml
': As 'compact
',
with
same
header
as
nmpml-generated
ASC
files.
- NeuronHOC: (***PARTLY DISABLED PENDING SOME
FIXES***)
- '
swc2hoc
' (default) (same style as
generated
by SWC2HOC.AWK script)
- '
ntscable
' (same style as generated
by NTSCable v.2.0)
- '
slsr
' (ref: )
- '
cnic
' (**to check**...same style as
found in CNIC
database - similar to SWC2HOC, with dendrite segments named 'dendrite'
instead of 'apical' or 'basal')
- '
geometry_to_neuron'
(as generated by
geometry_to_neuron.py script - ref: )
- '
Oz_neuron
' (same as
geometry_to_neuron, with soma data located before tree data, instead of
after - Oz_neuron.py script. ref: )
- '
topol
' (commonly used style, with
proc topol() describing connectivity and sample data.)
- '
morphmlxsl
' (same style as produced
by
MorphML_v1.8.1_NEURON.xsl)
- Additional styles may be implemented on request (just
ask!)
- NeuroZoom:
- '
longpath
' (default) (each
tree contour ends
at a tree terminal point, spanning branch points where necessary)
- '
shortpath
' (each tree contour corresponds
to an unbranched dendrite section, and does not cross branch points).
- SWC: (Note that
'gulyas
' is not
included as an
export option, due to cumbersome id-diameter mapping.)
- 'stdswc
'
(default
-
standardised
SWC
format,
as
used
by
NeuroMorpho.org).
- '
cnicswc
'. (similar to standard, except
structure ids 5, and 6 are used to explicitly identify branch points
and terminals).
- NeurolucidaDAT
- '
badmarkersize
' (default - marker block
sizes are
not actually correct in the format generated by Neurolucida software -
and this also distorts the sizes of blocks in which markers are
embedded.).
- '
corrected
' (experimental - this
calculates the correct marker block sizes. Needs to be thoroughly
tested with Neurolucida software, but is hopefully ok, as long as these
sizes are
probably not actually essential for correct import.)
- No other formats are relevant for this option.
--colorXXXX
<Colour> |
RGB(R:G:B)
(Colour setting, for formats which
support
such
data - NeurolucidaASC, NeurolucidaDAT, NeurolucidaXML, NeuroZoom. Note
American (color) or British (colour) spelling permitted). Applied
to all
elements of specified type, i.e. currently there is no fine control.).
--colourSoma,
--colorSoma
(default:
Blue)
--colourDendrites,
--colorDendrites
(default:
Green)
--colourAxons,
--colorAxons
(default: Red)
--colourSpines,
--colorSpines
(default: Yellow)
--colourMarkers,
--colorMarkers
(default:
Orange)
- possible colours by name: Red, Green, Blue, Yellow,
Cyan, Magenta, White, DarkRed, DarkGreen, DarkBlue, DarkYellow,
DarkCyan, DarkMagenta, Orange, MediumGray, BrightGray, SkyBlue,
MoneyGreen, Cream. This list is based on the named Neurolucida
colours, but can also be specified if the export format is NeuroZoom,
where they will be interpreted as 16-bit per channel RGB values.
- If specified as
RGB, each channel is 8-bit, i.e. from 0-255. For NeuroZoom
format, the export will rescale these to 16-bit.
--set
Prefix
Axon
<string>
(Use this
to overide default axon structure identifier. Relevant for Eutectics
(default "ax"), Genesis (default "a"), MorphML (default "axon_group"),
NeuroZoom (default "axon"), PSICS, NeuronHOC)
--set
Prefix
Dend
<string>
(Use this to
overide default dendrite structure identifier. Relevant for Eutectics
(default "d"), Genesis (default "d"), MorphML (default
"dendrite_group"),
NeuroZoom (default "dendrite"), PSICS, NeuronHOC)
--set
Prefix
Soma
<string>
(Use this to
overide default soma structure identifier. Relevant
for Eutectics (default "cell"), Genesis (default "soma"), MorphML
(default "soma_group"), NeuroZoom (default
"soma"), NeurolucidaXXX (default: "CellBody") , PSICS, NeuronHOC).
--identifyNL
(where a file format
supports comments, a comment will be generated which identifies
NLMorphologyConverter as the creator)
--cellName <name>
(assigns a name to
the cell -
only relevant where a file format supports comments, or a specific
mechanism for naming the cell.)
--addComment <string>
(for
suitable
formats, add arbitrary comment).
- Testing regime:
- Updated to use new data in neuromorpho.org archive version
4.0.
- Added more MorphML (NeuroML Level 1) test data.
- Added a collection of Neuron hoc files, in various styles, in
order to test the new NeuronHOC importer (mainly sourced form ModelDB
database -> http://senselab.med.yale.edu/modeldb/)
- Added more Genesis test data (also sourced from ModelDB
database).
- Introduction of format style variations allows much better
test coverage of all multi-style formats - tests all supported
export styles and version numbers of a
specific format.
- Soma data included in test, wherever data+formats are
compatible
enough.
- Marker data included in test, wherever data+formats are
compatible
enough.
- Spine data included in test, wherever data+formats are
compatible
enough.
- Added new test which compares data already available in
multiple different formats (i.e. has not been generated by
NLMorphologyConverter, e.g. from the CNIC archive, or using MorphML xsl
to convert to Neuron or Genesis formats.).
- Implemented a small set of tests using manually calculated
properties of the data, covering most
formats, and which aim to compare imported data with known properties
of
the data.
- All 13,000+ test files pass the current testing regime.
- Note that NLMorphologyViewer has been updated (version 0.3.0)
to display marker and spine data, as well as additional soma, tree,
marker, spine, and global statistics.
- Note that various format specifications have been updated on
the website (fixes, and additions).
- Note data which is not currently conserved when
converting between NeurolucidaDAT, NeurolucidaASC and NeurolucidaXML
formats. To
preserve this data, use Neurolucida software to convert between these
formats. (Some of this information may be preserved in future versions.)
- Sections, ImageCoords, Description, Thumbnail, Text data
blocks.
- Resolution, Varicosity, Style, + more properties.
- Contour, tree, and marker Colours. (However, export colours
can be explicitly specified).
- Tree terminal type.
- Dendrite Type (Apical or Basal).
- Non-soma contour data.
- 0.8.1 - 10th August
2009
- Windows/MacOSX release (mostly fixes for bugs found since
obtaining a larger
set of NeurolucidaDAT test files. IMPORTANT - exported
NeurolucidaDAT data has not been tested directly with Neurolucida
software. Please report any problems using the generated data.).
- Fix for NeurolucidaDAT import (text label data was not
handled
properly).
- Fix for NeurolucidaDAT import (occasional incorrect handling of
data footer).
- Fix for NeurolucidaDAT import (erroneous marker data size was
not always correctly worked around).
- Fix for NeurolucidaDAT import (cannot skip contours which
contain marker data - erroneous marker data size forces all contours to
be parsed completely).
- Fix for NeurolucidaDAT import (big-endian fixes - however
import/export on big-endian mac systems has still not been tested).
- Fix for NeurolucidaDAT export (always add an empty Sections
group block,
even though we don't have Section data).
- Fix for NeurolucidaDAT export (always add a 64x64x4 image
block,
directly after Sections group block).
- All test files pass current testing regime.
- Fix for command line options
- MacOSX --report option bug fixes.
- 0.8.0 - 7th July 2009
- Windows only release. Other platforms will be updated as soon
as time permits.
- Windows installer improved - allows user to choose installation
location, and will gracefully upgrade older versions.
- Windows installer - executable installation directory no longer
added to system PATH environment variable. Until this is fixed, invoke
the command using the full path, or add installation directory to the
PATH manually (Control Panel -> System -> Advanced ->
Environment Variables -> Edit "Path" system variable..)
- Installation now includes latest PDF format user manual.
- Neurolucida support reorganised - NeurolucidaV3 renamed to
NeurolucidaASC. Support added for binary format NeurolucidaDAT
(both import and export)
- Note this is the first binary (non-text) format to
be supported.
- DAT support is still experimental, with only a small number
of original datafiles available for testing. Please get in touch if
you have problems.
- DAT support has not been tested on big-endian Mac systems
(power
pc+MacOSX). Endian-swapping support is included, however, and in theory
should work.
- DAT export does not yet support marker data (import does
support markers).
- Fix for NeurolucidaASC import (Soma data was ignored in some
cases.)
- Fix for NeurolucidaASC import (Multiple soma contours no longer
merged)
- Fix for NeurolucidaASC import (Now accepts Neurolucida files
generated by nmpml translation system)
- Fix for Eutectics export (Upper limit of 999.9 um on
output diameter values).
- Fix for SWC import (Soma data not correctly imported for some
files. Still problems with Gulyas variation of this format).
- All test files pass the current testing regime. (updated to
include new files in NeuroMorpho 3.2. 10,000+ files in total.)
- Fix for command line options
- 0.7.0 - 4th January
2009 (**updated - 31st January)
- Win32/Linux release only. **Mac OSX version available
since 31st January. **Linux version reverted to 0.6.3 temporarily.
- New command-line options
--report <filename>
(generates a
report detailing: import, modification, export, statistics,
warnings).
--verbose
(provides additional commentary on
import, modification and export ).
--merge <filename> [modify options]
(the
neuron data file specified will be merged, subject
to the modify options specified: omit*, flipTreeType, all*,
scale, translate,
rotate, are valid). Note that when using merge, you need to use
the --export option to specificy the output file and format.
--split <filenameprefix>
<filenamesuffix>
(each tree is exported as a file with name <filenameprefix>_dend_XX.<
filenamesuffix>,
or
..._axon_XX...)
--omitMarkers
(marker points are not
exported - only relevant for those formats which support markers)
--rotate <x y z Angle>
(will
rotate entire neuron around direction vector (x, y, z) by "Angle"
degrees)
- Updated command-line options
--stats
(new stats added)
- tree surface area
- tree volume
- maximum terminal distance (physical, not path)
--warnings
(new warnings added)
- unusually large change in diameter
- large terminal diameter
- unusually long section
- unusually short section
- intersecting sections
- encapsulated branch (the entirity of a child branch lies
within the extent of the parent branch)
--help
(updated to reflect new/modified
options)
--import
option
removed (redundant)
- Fix for NeurolucidaV3, NeuroZoom (marker points retained and
exported)
- 0.6.3 - 28th October 2008
- Bug-fix release only. Win32/Linux only (no access to Mac
hardware)
- All test files (more than 9000 in total) pass the current
testing regime.
- Fix for NeurolucidaV3 import (problem with previously unseen
marker shapes)
- 0.6.2 - 30th May 2008
- Bug-fix release only. All platforms (Win32/MacOSX/Linux).
- All test files (more than 5000 in total) now pass the current
testing regime.
- Reverse previous erroneous fix (v. 0.6.0) which assumed
NeurolucidaV3 used radius, not diameter to represent thickness. In
fact, NeurolucidaV3 uses diameter, while SWC uses radius. All supported
file formats have now been checked to confirm whether or not they use
radius instead diameter to specify thickness. The import and export
algorithms for the file formats which use radius have been fixed (only
two - SWC, LNeuronAmiraMesh).
- Fix for SWC import (more reliable checking for non-standard SWC
tag numbers)
- Fix for SWC import (various other little improvements to
importer to cope with non-standardized data - copes with all data in
the testing regime. Still potential pitfalls, but difficult to improve
more due to arbitrary way structure tags can be used.)
- Fix for SWC export (all soma samples had same
co-ordinates/diameter - that of the first sample).
- Fix for NeurolucidaClassic import (in some cases, a short
2-sample dendrite was given an unnecessary extra duplicate sample
point).
- Linux - fix for command line options (scale, translate)
- OSX - fix for command line options (omitAllAxons, omitAllDends,
allDendsAsAxons, allAxonsAsDends, omitTrees, flipTreeType)
- 0.6.1 - 22nd May 2008
- Bug-fix release only. All platforms (Win32/MacOSX/Linux).
- Note that certain command line options are currently disabled
for OSX (
omitAllAxons,
omitAllDends,
allDendsAsAxons,
allAxonsAsDends,
omitTrees,
flipTreeType)
while others are disabled for
Linux (scale,
translate
). This
is due to compilation issues on these platforms.
- All test files (more than 5000 in total) pass current testing
regime, except 1 SWC file. However, there are also definitely still
some other issues with the import
of certain non-standardized SWC files.
- Fix for SWC import (representation of values of 1000 or more,
e.g. 1,005.66, in a very small number of test files - comma caused
incorrect import of corresponding branch data).
- Fix for SWC import (place upper limit of 99999.0 on co-ordinate
and diameter values so that all supported export formats can cope).
- Fix for MaxSim import (incorrect connectivity was generated
when 2 sample points are directly connected branch points).
- Fix for Eutectics import (algorithm was creating unnecessary
new branch for some incompleted branch points when the expected branch
data didn't follow in the data file, and a new object started instead.)
- Fix for NeurolucidaClassic import (first samples of child
branches were incorrectly assigned sample of parent branch end sample,
rather than the sample value in data file.)
- Fix for NeurolucidaClassic import (terminal move-to points are
over-ridden by an immediately following branch move-to point at the
same location - req. e.g. for n262.asc)
- Fix for NeurolucidaClassic import (accept minor value of
n as well as n+1 (where n is structure id) in line-to points - req. for
n142.asc).
- Fix for NeurolucidaClassic export (first sample of child branch
incorrectly set as parent end sample, rather than the actual stored
first sample value, causing occasional inconsistency.)
- 0.6.0 - 19th May 2008
- All platforms release (Win32/MacOSX/Linux).
- Warning - this version seems to have taken a backwards step in
non-standard SWC and NeurolucidaClassic support. Issues will
hopefully be resolved in an upcoming minor release sometime this week.
- MorphML import/export re-activated.
- Testing regime now includes MorphML and MaxSim formats.
- Fix for MorphML export and import (complete re-implementation.).
- Fix for MaxSim export (sample points internal to a branch
segment could sometimes be missing.)
- Fix for SWC import (handle non-standard SWC structure numbers
more gracefully).
- Fix for SWC import (handle unexpected changes in structure, and
odd connectivity between structure, more gracefully).
- Fix for NeurolucidaV3 import and export (this format actually
uses
radius, not diameter).
- Added initial support for NeuronJ ndf format.
- This is a 2D
line-tracing format, and only import functionality has been implemented.
- All sample z-components are set to 0.0.
- All sample diameters are set to 1.0.
- Pixel-based (x,y) co-ordinates need to be scaled by user to
microns using --scale option.
- Added lots of usage flags to provide more useful output, and to
give some control over the structure which is exported.
--import <filename>
--stats (Currently displays the following data, both
for entire neuron and per-tree)
- number of sample points
- number of branch segments
- number of branch points
- branching order
- number of terminals
- maximum terminal path distance (microns)
- total tree branch length (microns)
--warnings (Currently detects the following...)
- tree root too distant from soma
- unary branch point
- non-binary branch point
- disjoint branch connection
- branch has zero samples
- branch formed from only one sample
- sample diameter is too large
- sample diameter is unusually small
- sample diameter is zero
--export <filename> <fileformat>
--omitSoma
--omitAllAxons (disabled on OSX this release)
--omitAllDends
(disabled on OSX
this release
)
--allDendsAsAxons
(disabled on OSX
this release
)
--allAxonsAsDends
(disabled on OSX
this release
)
--omitTrees <comma_delimited_list_of_tree
_ids
>
(disabled on OSX
this release
)
--flipTreeType <
comma_delimited_
list_of_tree
_ids
>
(disabled on OSX
this release
)
--scale <scale_x_axis>
<
scale
_y
_axis
>
<
scale
_z
_axis
>
<
scale
_d
>
(disabled
on
LINUX
this release
)
--translate <value_microns_x>
<value_microns_y> <value_microns_z>
(disabled
on
LINUX
this release
)
- 0.5.0 - 24th April 2008
- Initial Linux (x86) release.
- Fix for Nevin export and import (copes properly with the
different ways in which soma and dendrite root point data is organised).
- Fix for NeurolucidaClassic import (now copes with spurious Move
points, incompleted Terminal points, and soma data with missing Section
Change start point).
- Fix for NeurolucidaV3 export (guarantee at least one space
between sample point data values - x, y, z, d).
- Fix for NeuroZoom import (connectivity error where arbors
directly
connect to the end of other arbors).
- Fix for NeuroZoom import (now correctly handle arbors which
attach to an arbitrary point of a previous arbor - i.e. unordered data,
to the extent this format allows).
- Fix for GulyasTree import (place sensible limits on sample
point co-ordinate
values, to cope with some odd data).
- 0.4.0 - 15th April 2008
- It is no longer possible to export neurons with non-binary
trees to formats which only support binary trees.
- More intensive testing regime - Introduced asymmetric
import/export/re-import. Most fixes detailed below are a result of this
testing.
- Fix for multiple formats (Oxford, NeurolucidaClassic,
NeuronNTSCable, Glasgow) export (fixes crash when neuron has no soma
data).
- Fix for multiple formats (All) import (Unary branch points are
collapsed to clean-up internal data structures and help with automated
testing).
- Fix for Eutectics import (safely ignore BTO, TTO tags).
- Fix for Eutectics export (Make sure soma data is always
terminated with SOE, even if there is only one soma point).
- Fix for NeuroZoom import (Now safely deals with an arbor which
is attached to the end point of another arbor.)
- Fix for NeuroZoom export (Non-binary tree properly exported)
- Fix for NeuroZoom export (Axon data now exported)
- Fix for SWC import (various fixes related to incorrect usage
of soma point as a dendrite point, and soma-less data. As a
consequence,
for the moment any tree with a branching root point will be split into
multiple trees).
- Fix for SWC import (now correctly ignores lines which contain
only whitespace)
- Fix for SWC export (now exports axon data and sets structure id
properly)
- Fix for NeurolucidaClassic import (minor improvements to file
parsing)
- Fix for NeurolucidaV3 import (fix for algorithm that checks
sections are valid.)
- Fix for GulyasTree import (correct determination of root branch
points when samples are different)
- Fix for Oxford export (Diameter values >= 10.0 were
incorrectly formatted or caused a crash)
- Fix for Glasgow export (Axons exported)
- Fix for NeuronNTSCable export (fix for when soma is missing)
- Fix for Douglas3D export (Soma data forced to have minimum 3
data
points, and therefore at least one scp).
- 0.3.0 - 25th March 2008
- NLMorphologyConverter is now subject to an intensive automated
testing regime.
- Fix for SWC import (ignore lines beginning with *, to cope with
a custom SWC format)
- Improvements to Nevin autodetection
- Fix for NeurolucidaV3 import (safely ignore any unknown
top-level keywords - fixes crash)
- Fix for NeurolucidaV3 import (safely ignore any unknown
terminal types - prevents early terminaion of import)
- Fix for NeurolucidaV3 import (added more marker shapes,
preventing data corruption)
- Fix for NeurolucidaV3 import (Spines no longer cause import to
stop early, but spine data is still ignored for now)
- Fix for NeurolucidaV3 import (Occasional marker data read bug
causing early termination of import)
- Fix for NeurolucidaV3 export (crash when no soma exists in data)
- Fix for NeurolucidaV3 export (tree depth whitespace corruption
issue)
- Fix for Eutectics import (more generalised - doesn't assume
particular naming convention for dendrites)
- Fix for Eutectics export (MTO sample point number wrong by -1)
- Added initial support for AmiraMesh (as exported by L-Neuron),
and Gulyas' Tree format
- Initial support for a generic neuron hoc morphology importer
(NeuronGeneric). ***Import is very limited at the moment.
- 0.2.0 - 13th March 2008
- Initial Mac OSX version.
- Fix for NeuronSWC2HOC export bug (incorrect dendrite count).
- Fix for NeuroZoom export bug (connection node wrong by +1).
- Fix for NeuroZoom import bug (non-binary branch points).
- Fix for Eutectics export bug (disappearing "-" sign issue)
- Fix for NeurolucidaV3 import bug ("Font" keyword)
- Fix for NINDS3D import bug (don't generate fake soma point!)
- Genesis export disabled (new data highlights new problems)
- Todo - certain formats do not support binary trees, but there
is currently no mechanism in place to prevent export of non-binary
trees to a binary-only format...
- 0.1.0 - 10th March
2008
- Initial public release (win32)