slashmasksort(1)            General Commands Manual           slashmasksort(1)

       slashmasksort - Sorts and/or splits contours into a set of new objects
       based on whether its points fall inside any closed contours in the
       specified 'mask' object(s).

       slashmasksort  -o list  -m list  [options]  input_model  output_model

       This program requires you to enter one list of objects with contours
       you want sorted (eg: '-o 1'), and a second list of closed contour
       objects (eg: '-m 1,2') where the closed contours form a mask on your
       different z slices. When the program is run it will generate a series
       of new objects at the end of the model and will duplicate contours
       inside a mask into the appropriate new object.  Here's an example of
       new objects generated when given the example input with 1 input object
       and 2 masks objects:

         COMMAND_PROMPT> slashmasksort -o 1 -m 2,3 -n in.mod out.mod
         > "object 1... masked by 'object 2'"  45 conts  (35.0%)
         > "object 1... masked by 'object 3'"  3 conts   (2.0%)

       By default, each contour is kept intact and only duplicated to the new
       object corresponding to the first mask object it's inside. A contour
       can only be considered inside one mask object, and if it's outside all
       objects it won't be duplicated unless you use the '-k' to generate
       "object 1... masked OUTSIDE" objects for each input object.

       If, however, you add the '-s' argument, then contour will get split
       whenever they cross outside or into a new mask object. The splits don't
       occur where the contours leave (no extra points are added), so that's a
       feature you'd have to request.  The purpose of this program is to help
       you sort objects such as sub-cellular compartments  which you may just
       mark up as one layer, but then suddenly decide that  you would prefer
       to sort them into the different cells they belong to - or even just
       delete all compartments / points which happen to fall outside your main
       compartment of interest.

       Putting closed contours on every desired slice

       Please note that if you have a volume/surface that you want to use as a
       mask your closed mask contour should have (closed) contours on EVERY
       slice of the desired surface. The slashmasksort program looks only at
       contours and not surface information. To get closed mask contours on
       every slice you can use the "Interpolator" window (3dmod >> Special >>
       Interpolator) or the "imodsortsurf" and "imodfillin" programs.

       -o #/list
              A list of "input objects" (eg: '1,4-5') containing con-
              tours/points that you wish to sort/split into new objects. These
              objects can be of any type, and you must list at least one.

       -m #/list
              A list of closed contour objects to use as "mask objects". Note
              that you will want to have a closed contour on every slice of
              your desired mask volume and that during the sorting/splitting
              phase each input contour only gets sorted into one mask object
              (never multiple objects).

       -s     Turns on "splitting" such that each point is tested separately
              against the mask objects and if two consecutive points are in
              different "areas" then the contour will be split into separate
              contours either side of these points.  If you have a scattered
              point object and wish every point to be it's own contour (one
              point per contour) consider using "slashsplitconts" before run-
              ning this program.

       -C     If the -s option is on, this option will mark any contour which
              are split open as "open contours".

       -i     Will insert new objects just after the new objects they belong
              to such that you'd get:
               "Vesicles... masked by 'Cell1'"     <-- new object
               "Mitochondria... masked by 'Cell1'" <-- new object
               "Vesicles... masked by 'Cell2'"     <-- new object
               "Mitochondria... masked by 'Cell2'" <-- new object

              And so on. By default new objects are added to the end of the
              model file in this order:
               "Vesicles... masked by 'Cell1'"     <-- new object
               "Vesicles... masked by 'Cell2'"     <-- new object
               "Mitochondria... masked by 'Cell1'" <-- new object
               "Mitochondria... masked by 'Cell2'" <-- new object

              If you wish to further reorganize / reorder objects try using
              3dmod's "Name Wizard" plugin (3dmod >> Special >> Name Wiz-
              ard).    If desired, the same plugin can also be used to merge
              objects back together.

       -d     Will delete all objects in the -o list after they are split. It
              is recommended you only use this option if you have backup.

       -k     Will "keep" contours and/or points which fall outside all mask
              objects and put them into a separate object which is typically
              labelled "Object 1... masked OUTSIDE" and put at the end of the
              IMOD model.

       -f     Will only test the first contour point of each contour in the
              input object list.  This option can help speed things up a lit-
              tle, but is not relevant if -s is set.

       -c     Will give the newly create objects different colors instead of
              duplicating the same color as the matching input object.

       -n     Will use object number (eg: "object 1... masked by 'object 2'")
              instead of objects names (eg: "Vesicles... masked by 'Cell1'")
              as the names of new objects. Note that if an object name is
              missing it will also use the object number, so the only time you
              may want to use this option is if you don't have unique object
              names for each object. To produce good model files it's recom-
              mended you use "Name Wizard" to quickly give all your objects
              unique and meaningful names.

       Andrew Noske and David Mastronarde


       Email bug reports to mast at colorado dot edu, and CC to

IMOD                                4.10.22                   slashmasksort(1)