Write neurons from a neuronlist object to individual files, or a zip archive

write.neurons(
  nl,
  dir,
  format = NULL,
  subdir = NULL,
  INDICES = names(nl),
  files = NULL,
  include.data.frame = FALSE,
  Force = FALSE,
  cl = NULL,
  ...
)

Arguments

nl

neuronlist object

dir

directory to write neurons, or path to zip archive (see Details).

format

Unique abbreviation of one of the registered file formats for neurons including 'swc', 'hxlineset', 'hxskel' (skeletons) and 'ply', 'obj' (neuron meshes). If no format can be extracted from the filename or the ext parameter, then it defaults to 'swc' for skeletons and 'ply' for meshes.

subdir

String naming field in neuron that specifies a subdirectory OR expression to evaluate in the context of neuronlist's df attribute

INDICES

Character vector of the names of a subset of neurons in neuronlist to write.

files

Character vector or expression specifying output filenames. See examples and write.neuron for details.

include.data.frame

Whether to include the metadata when writing a zip file (it will be called "write.neurons.dataframe.rds").

Force

Whether to overwrite an existing file

cl

Either the integer number of cores to use for parallel writes (2 or 3 seem useful) or a cluster object created by makeCluster. See the cl argument of pbsapply for details.

...

Additional arguments passed to write.neuron

Value

the path to the output file(s), absolute when this is a zip file.

Details

See write.neuron for details of how to specify the file format/extension/name of the output files and how to establish what output file formats are available. A zip archive of files can be written by specifying a value of dir that ends in .zip. When rds files (R's binary data representation, which is compressed by default) are stored inside a zip file the are not further compressed (zip option 0).

See also

Author

jefferis

Examples

if (FALSE) { # write some neurons in swc format write.neurons(Cell07PNs, dir="testwn", format='swc') # write some neurons in swc format for picky software write.neurons(Cell07PNs, dir="testwn", format='swc', normalise.ids=TRUE) # write some neurons in swc format and zip them up write.neurons(Cell07PNs, dir="testwn.zip", format='swc') # write some neurons in R's native RDS format using 3 cores for # parallel writes and then zip them up (storing rather than compressing) write.neurons(Cell07PNs, dir="testwn.zip", format='rds', cl=3) # write some neurons in Amira hxlineset format write.neurons(Cell07PNs, dir="testwn", format='hxlineset') # write some neuron meshes in Stanford ply format (the default for meshes) write.neurons(myneurons, dir="testwn") # specify the format to avoid a warning. Write to a zip file. write.neurons(myneurons, dir="testmeshes.zip", format='ply') # Wavefront obj format write.neurons(myneurons, dir="testwn", format='obj') # organise new files in directory hierarchy by glomerulus and Scored.By field write.neurons(Cell07PNs,dir="testwn", subdir=file.path(Glomerulus,Scored.By),format='hxlineset') # ensure that the neurons are named according to neuronlist names write.neurons(Cell07PNs, dir="testwn", files=names(Cell07PNs), subdir=file.path(Glomerulus,Scored.By),format='hxlineset') # only write a subset write.neurons(subset(Cell07PNs, Scored.By="ACH"),dir="testwn2", subdir=Glomerulus,format='hxlineset') # The same, but likely faster for big neuronlists write.neurons(Cell07PNs, dir="testwn3", INDICES=subset(Cell07PNs,Scored.By="ACH",rval='names'), subdir=Glomerulus,format='hxlineset') # set file name explicitly using a field in data.frame write.neurons(subset(Cell07PNs, Scored.By="ACH"),dir="testwn4", subdir=Glomerulus, files=paste0(ID,'.am'), format='hxlineset') }