mia-2dmyoserial-nonrigid(1)


NAME

   mia-2dmyoserial-nonrigid  - Run a serial registration of a series of 2D
   images.

SYNOPSIS

   mia-2dmyoserial-nonrigid   -i   <in-file>   -o   <out-file>   [options]
   <PLUGINS:2dimage/fullcost>

DESCRIPTION

   mia-2dmyoserial-nonrigid   This   program  runs  the  non-rigid  motion
   compensation  registration  of   an   perfusion   image   series.   The
   registration  is  run  in  a  serial  manner,  this  is, only images in
   temporal succession are registered, and  the  obtained  transformations
   are  applied  accumulated  to reach full registration. See e.g. Wollny,
   G., Ledesma-Carbayo, M.J., Kellman, P., Santos, A.  "A  New  Similarity
   Measure  for  Non-Rigid  Breathing  Motion  Compensation  of Myocardial
   Perfusion MRI ". Proc 30th Annual International IEEE  EMBS  Conference,
   pp. 3389-3392. Vancouver, Aug. 2008, doi:10.1109/IEMBS.2008.4649933,

OPTIONS

   File-IO
          -i --in-file=(input, required); string
                 input perfusion data set

          -o --out-file=(output, required); string
                 output perfusion data set

          -R --registered=reg
                 file name base for registered fiels

   Registration
          -O --optimizer=gsl:opt=gd,step=0.1
                 Optimizer   used   for   minimizationOptimizer  used  for
                 minimization      For     supported      plugins      see
                 PLUGINS:minimizer/singlecost

          -l --mg-levels=3
                 multi-resolution levelsmulti-resolution levels

          -f --transForm=spline:rate=16,penalty=[divcurl:weight=0.01]
                 transformation  typetransformation  type   For  supported
                 plugins see PLUGINS:2dimage/transform

          -r --ref=-1
                 reference frame (-1 == use image in the  middle)reference
                 frame (-1 == use image in the middle)

          -k --skip=0
                 skip registration of these images at the beginning of the
                 seriesskip registration of these images at the  beginning
                 of the series

   Help & Info
          -V --verbose=warning
                 verbosity  of  output,  print messages of given level and
                 higher  priorities.  Supported  priorities  starting   at
                 lowest level are:
                    info  Low level messages
                    trace  Function call trace
                    fail  Report test failures
                    warning  Warnings
                    error  Report errors
                    debug  Debug output
                    message  Normal messages
                    fatal  Report only fatal errors

             --copyright
                 print copyright information

          -h --help
                 print this help

          -? --usage
                 print a short help

             --version
                 print the version number and exit

   Processing
             --threads=-1
                 Maxiumum  number  of  threads  to use for processing,This
                 number should be lower or equal to the number of  logical
                 processor   cores   in   the   machine.   (-1:  automatic
                 estimation).Maxiumum  number  of  threads  to   use   for
                 processing,This  number  should  be lower or equal to the
                 number of logical processor cores in  the  machine.  (-1:
                 automatic estimation).

PLUGINS: 1d/splinebc

   mirror    Spline  interpolation  boundary conditions that mirror on the
             boundary

                 (no parameters)

   repeat    Spline interpolation boundary  conditions  that  repeats  the
             value at the boundary

                 (no parameters)

   zero      Spline  interpolation  boundary  conditions that assumes zero
             for values outside

                 (no parameters)

PLUGINS: 1d/splinekernel

   bspline   B-spline kernel creation , supported parameters are:

                 d = 3; int in [0, 5]
                   Spline degree.

   omoms     OMoms-spline kernel creation, supported parameters are:

                 d = 3; int in [3, 3]
                   Spline degree.

PLUGINS: 2dimage/cost

   lncc      local normalized cross  correlation  with  masking  support.,
             supported parameters are:

                 w = 5; uint in [1, 256]
                   half  width  of  the  window  used  for  evaluating the
                   localized cross correlation.

   lsd       Least-Squares Distance measure

                 (no parameters)

   mi        Spline parzen based mutual information., supported parameters
             are:

                 cut = 0; float in [0, 40]
                   Percentage of pixels to cut at high and low intensities
                   to remove outliers.

                 mbins = 64; uint in [1, 256]
                   Number of histogram bins used for the moving image.

                 mkernel = [bspline:d=3]; factory
                   Spline kernel for moving image parzen hinstogram.   For
                   supported plug-ins see PLUGINS:1d/splinekernel

                 rbins = 64; uint in [1, 256]
                   Number of histogram bins used for the reference image.

                 rkernel = [bspline:d=0]; factory
                   Spline  kernel  for  reference image parzen hinstogram.
                   For supported plug-ins see PLUGINS:1d/splinekernel

   ncc       normalized cross correlation.

                 (no parameters)

   ngf       This  function  evaluates  the  image  similarity  based   on
             normalized  gradient  fields.  Various evaluation kernels are
             available., supported parameters are:

                 eval = ds; dict
                   plugin subtype.  Supported values are:
                       sq  square of difference
                       ds  square of scaled difference
                       dot  scalar product kernel
                       cross  cross product kernel

   ssd       2D  imaga  cost:  sum  of  squared   differences,   supported
             parameters are:

                 autothresh = 0; float in [0, 1000]
                   Use  automatic  masking  of  the  moving  image by only
                   takeing intensity values into accound that  are  larger
                   than the given threshold.

                 norm = 0; bool
                   Set  whether  the  metric  should  be normalized by the
                   number of image pixels.

   ssd-automask
             2D image cost: sum of squared differences,  with  automasking
             based on given thresholds, supported parameters are:

                 rthresh = 0; double
                   Threshold intensity value for reference image.

                 sthresh = 0; double
                   Threshold intensity value for source image.

PLUGINS: 2dimage/fullcost

   image     Generalized  image similarity cost function that also handles
             multi-resolution processing. The actual similarity measure is
             given es extra parameter., supported parameters are:

                 cost = ssd; factory
                   Cost  function  kernel.   For  supported  plug-ins  see
                   PLUGINS:2dimage/cost

                 debug = 0; bool
                   Save intermediate resuts for debugging.

                 ref =(input, string)
                   Reference image.

                 src =(input, string)
                   Study image.

                 weight = 1; float
                   weight of cost function.

   labelimage
             Similarity cost function that maps labels of two  images  and
             handles    label-preserving   multi-resolution   processing.,
             supported parameters are:

                 debug = 0; int in [0, 1]
                   write the distance transforms to a 3D image.

                 maxlabel = 256; int in [2, 32000]
                   maximum number of labels to consider.

                 ref =(input, string)
                   Reference image.

                 src =(input, string)
                   Study image.

                 weight = 1; float
                   weight of cost function.

   maskedimage
             Generalized masked image similarity cost function  that  also
             handles   multi-resolution  processing.  The  provided  masks
             should be densly filled regions in multi-resolution procesing
             because  otherwise  the  mask  information  may get lost when
             downscaling the image. The reference mask and the transformed
             mask  of  the  study  image  are  combined by binary AND. The
             actual similarity  measure  is  given  es  extra  parameter.,
             supported parameters are:

                 cost = ssd; factory
                   Cost  function  kernel.   For  supported  plug-ins  see
                   PLUGINS:2dimage/maskedcost

                 ref =(input, string)
                   Reference image.

                 ref-mask =(input, string)
                   Reference image mask  (binary).

                 src =(input, string)
                   Study image.

                 src-mask =(input, string)
                   Study image mask (binary).

                 weight = 1; float
                   weight of cost function.

PLUGINS: 2dimage/io

   bmp       BMP  2D-image  input/output  support.  The  plug-in  supports
             reading  and  writing  of  binary images and 8-bit gray scale
             images. read-only support is provided for  4-bit  gray  scale
             images.  The  color table is ignored and the pixel values are
             taken as literal gray scale values.

                 Recognized file extensions:  .BMP, .bmp

                 Supported element types:
                   binary data, unsigned 8 bit

   datapool  Virtual IO to and from the internal data pool

                 Recognized file extensions:  .@

   dicom     2D image io for DICOM

                 Recognized file extensions:  .DCM, .dcm

                 Supported element types:
                   signed 16 bit, unsigned 16 bit

   exr       a 2dimage io plugin for OpenEXR images

                 Recognized file extensions:  .EXR, .exr

                 Supported element types:
                   unsigned 32 bit, floating point 32 bit

   jpg       a 2dimage io plugin for jpeg gray scale images

                 Recognized file extensions:  .JPEG, .JPG, .jpeg, .jpg

                 Supported element types:
                   unsigned 8 bit

   png       a 2dimage io plugin for png images

                 Recognized file extensions:  .PNG, .png

                 Supported element types:
                   binary data, unsigned 8 bit, unsigned 16 bit

   raw       RAW 2D-image output support

                 Recognized file extensions:  .RAW, .raw

                 Supported element types:
                   binary data, signed 8 bit, unsigned 8  bit,  signed  16
                   bit,  unsigned  16 bit, signed 32 bit, unsigned 32 bit,
                   floating point 32 bit, floating point 64 bit

   tif       TIFF 2D-image input/output support

                 Recognized file extensions:  .TIF, .TIFF, .tif, .tiff

                 Supported element types:
                   binary data, unsigned 8 bit, unsigned 16 bit,  unsigned
                   32 bit

   vista     a 2dimage io plugin for vista images

                 Recognized file extensions:  .-, .V, .VISTA, .v, .vista

                 Supported element types:
                   binary  data,  signed  8 bit, unsigned 8 bit, signed 16
                   bit, unsigned 16 bit, signed 32 bit, unsigned  32  bit,
                   floating point 32 bit, floating point 64 bit

PLUGINS: 2dimage/maskedcost

   lncc      local  normalized  cross  correlation  with masking support.,
             supported parameters are:

                 w = 5; uint in [1, 256]
                   half width  of  the  window  used  for  evaluating  the
                   localized cross correlation.

   mi        Spline   parzen   based  mutual  information  with  masking.,
             supported parameters are:

                 cut = 0; float in [0, 40]
                   Percentage of pixels to cut at high and low intensities
                   to remove outliers.

                 mbins = 64; uint in [1, 256]
                   Number of histogram bins used for the moving image.

                 mkernel = [bspline:d=3]; factory
                   Spline  kernel for moving image parzen hinstogram.  For
                   supported plug-ins see PLUGINS:1d/splinekernel

                 rbins = 64; uint in [1, 256]
                   Number of histogram bins used for the reference image.

                 rkernel = [bspline:d=0]; factory
                   Spline kernel for reference  image  parzen  hinstogram.
                   For supported plug-ins see PLUGINS:1d/splinekernel

   ncc       normalized cross correlation with masking support.

                 (no parameters)

   ssd       Sum of squared differences with masking.

                 (no parameters)

PLUGINS: 2dimage/transform

   affine    Affine  transformation  (six  degrees of freedom)., supported
             parameters are:

                 imgboundary = mirror; factory
                   image interpolation boundary conditions.  For supported
                   plug-ins see PLUGINS:1d/splinebc

                 imgkernel = [bspline:d=3]; factory
                   image  interpolator kernel.  For supported plug-ins see
                   PLUGINS:1d/splinekernel

   rigid     Rigid transformations (i.e. rotation and  translation,  three
             degrees of freedom)., supported parameters are:

                 imgboundary = mirror; factory
                   image interpolation boundary conditions.  For supported
                   plug-ins see PLUGINS:1d/splinebc

                 imgkernel = [bspline:d=3]; factory
                   image interpolator kernel.  For supported plug-ins  see
                   PLUGINS:1d/splinekernel

                 rot-center = [[0,0]]; 2dfvector
                   Relative  rotation  center, i.e.  <0.5,0.5> corresponds
                   to the center of the support rectangle.

   rotation  Rotation transformations (i.e. rotation about a given center,
             one degree of freedom)., supported parameters are:

                 imgboundary = mirror; factory
                   image interpolation boundary conditions.  For supported
                   plug-ins see PLUGINS:1d/splinebc

                 imgkernel = [bspline:d=3]; factory
                   image interpolator kernel.  For supported plug-ins  see
                   PLUGINS:1d/splinekernel

                 rot-center = [[0,0]]; 2dfvector
                   Relative  rotation  center, i.e.  <0.5,0.5> corresponds
                   to the center of the support rectangle.

   spline    Free-form transformation that can be described by a set of B-
             spline  coefficients  and  an  underlying  B-spline  kernel.,
             supported parameters are:

                 anisorate = [[0,0]]; 2dfvector
                   anisotropic coefficient  rate  in  pixels,  nonpositive
                   values will be overwritten by the 'rate' value..

                 imgboundary = mirror; factory
                   image interpolation boundary conditions.  For supported
                   plug-ins see PLUGINS:1d/splinebc

                 imgkernel = [bspline:d=3]; factory
                   image interpolator kernel.  For supported plug-ins  see
                   PLUGINS:1d/splinekernel

                 kernel = [bspline:d=3]; factory
                   transformation  spline kernel..  For supported plug-ins
                   see PLUGINS:1d/splinekernel

                 penalty = ; factory
                   Transformation penalty term.   For  supported  plug-ins
                   see PLUGINS:2dtransform/splinepenalty

                 rate = 10; float in [1, inf)
                   isotropic coefficient rate in pixels.

   translate Translation   only   (two   degrees  of  freedom),  supported
             parameters are:

                 imgboundary = mirror; factory
                   image interpolation boundary conditions.  For supported
                   plug-ins see PLUGINS:1d/splinebc

                 imgkernel = [bspline:d=3]; factory
                   image  interpolator kernel.  For supported plug-ins see
                   PLUGINS:1d/splinekernel

   vf        This plug-in  implements  a  transformation  that  defines  a
             translation for each point of the grid defining the domain of
             the transformation., supported parameters are:

                 imgboundary = mirror; factory
                   image interpolation boundary conditions.  For supported
                   plug-ins see PLUGINS:1d/splinebc

                 imgkernel = [bspline:d=3]; factory
                   image  interpolator kernel.  For supported plug-ins see
                   PLUGINS:1d/splinekernel

PLUGINS: 2dtransform/splinepenalty

   divcurl   divcurl penalty on the transformation,  supported  parameters
             are:

                 curl = 1; float in [0, inf)
                   penalty weight on curl.

                 div = 1; float in [0, inf)
                   penalty weight on divergence.

                 norm = 0; bool
                   Set  to  1  if  the  penalty  should be normalized with
                   respect to the image size.

                 weight = 1; float in (0, inf)
                   weight of penalty energy.

PLUGINS: minimizer/singlecost

   gdas      Gradient  descent  with  automatic  step  size   correction.,
             supported parameters are:

                 ftolr = 0; double in [0, inf)
                   Stop if the relative change of the criterion is below..

                 max-step = 2; double in (0, inf)
                   Maximal absolute step size.

                 maxiter = 200; uint in [1, inf)
                   Stopping criterion: the maximum number of iterations.

                 min-step = 0.1; double in (0, inf)
                   Minimal absolute step size.

                 xtola = 0.01; double in [0, inf)
                   Stop  if  the  inf-norm  of  the change applied to x is
                   below this value..

   gdsq      Gradient descent with quadratic  step  estimation,  supported
             parameters are:

                 ftolr = 0; double in [0, inf)
                   Stop if the relative change of the criterion is below..

                 gtola = 0; double in [0, inf)
                   Stop  if  the  inf-norm  of  the gradient is below this
                   value..

                 maxiter = 100; uint in [1, inf)
                   Stopping criterion: the maximum number of iterations.

                 scale = 2; double in (1, inf)
                   Fallback fixed step size scaling.

                 step = 0.1; double in (0, inf)
                   Initial step size.

                 xtola = 0; double in [0, inf)
                   Stop if the inf-norm of x-update is below this value..

   gsl       optimizer plugin based on the multimin optimizers of the  GNU
             Scientific  Library  (GSL) https://www.gnu.org/software/gsl/,
             supported parameters are:

                 eps = 0.01; double in (0, inf)
                   gradient based optimizers:  stop  when  |grad|  <  eps,
                   simplex: stop when simplex size < eps..

                 iter = 100; uint in [1, inf)
                   maximum number of iterations.

                 opt = gd; dict
                   Specific optimizer to be used..  Supported values are:
                       bfgs  Broyden-Fletcher-Goldfarb-Shann
                       bfgs2      Broyden-Fletcher-Goldfarb-Shann   (most
                       efficient version)
                       cg-fr  Flecher-Reeves conjugate gradient algorithm
                       gd  Gradient descent.
                       simplex  Simplex algorithm of Nelder and Mead
                       cg-pr  Polak-Ribiere conjugate gradient algorithm

                 step = 0.001; double in (0, inf)
                   initial step size.

                 tol = 0.1; double in (0, inf)
                   some tolerance parameter.

   nlopt     Minimizer  algorithms  using  the  NLOPT   library,   for   a
             description   of   the   optimizers  please  see  'http://ab-
             initio.mit.edu/wiki/index.php/NLopt_Algorithms',    supported
             parameters are:

                 ftola = 0; double in [0, inf)
                   Stopping   criterion:   the   absolute  change  of  the
                   objective value is below  this value.

                 ftolr = 0; double in [0, inf)
                   Stopping  criterion:  the  relative   change   of   the
                   objective value is below  this value.

                 higher = inf; double
                   Higher boundary (equal for all parameters).

                 local-opt = none; dict
                   local  minimization  algorithm that may be required for
                   the main  minimization  algorithm..   Supported  values
                   are:
                       gn-orig-direct-l    Dividing  Rectangles (original
                       implementation, locally biased)
                       gn-direct-l-noscal  Dividing Rectangles (unscaled,
                       locally biased)
                       gn-isres    Improved  Stochastic Ranking Evolution
                       Strategy
                       ld-tnewton  Truncated Newton
                       gn-direct-l-rand    Dividing  Rectangles  (locally
                       biased, randomized)
                       ln-newuoa         Derivative-free    Unconstrained
                       Optimization by Iteratively  Constructed  Quadratic
                       Approximation
                       gn-direct-l-rand-noscale      Dividing  Rectangles
                       (unscaled, locally biased, randomized)
                       gn-orig-direct    Dividing  Rectangles   (original
                       implementation)
                       ld-tnewton-precond      Preconditioned   Truncated
                       Newton
                       ld-tnewton-restart      Truncated   Newton    with
                       steepest-descent restarting
                       gn-direct  Dividing Rectangles
                       ln-neldermead  Nelder-Mead simplex algorithm
                       ln-cobyla    Constrained  Optimization  BY  Linear
                       Approximation
                       gn-crs2-lm  Controlled Random  Search  with  Local
                       Mutation
                       ld-var2    Shifted Limited-Memory Variable-Metric,
                       Rank 2
                       ld-var1  Shifted  Limited-Memory  Variable-Metric,
                       Rank 1
                       ld-mma  Method of Moving Asymptotes
                       ld-lbfgs-nocedal  None
                       ld-lbfgs  Low-storage BFGS
                       gn-direct-l  Dividing Rectangles (locally biased)
                       none  don't specify algorithm
                       ln-bobyqa      Derivative-free   Bound-constrained
                       Optimization
                       ln-sbplx  Subplex variant of Nelder-Mead
                       ln-newuoa-bound  Derivative-free Bound-constrained
                       Optimization  by  Iteratively Constructed Quadratic
                       Approximation
                       ln-praxis  Gradient-free  Local  Optimization  via
                       the Principal-Axis Method
                       gn-direct-noscal  Dividing Rectangles (unscaled)
                       ld-tnewton-precond-restart          Preconditioned
                       Truncated Newton with steepest-descent restarting

                 lower = -inf; double
                   Lower boundary (equal for all parameters).

                 maxiter = 100; int in [1, inf)
                   Stopping criterion: the maximum number of iterations.

                 opt = ld-lbfgs; dict
                   main minimization algorithm.  Supported values are:
                       gn-orig-direct-l   Dividing  Rectangles  (original
                       implementation, locally biased)
                       g-mlsl-lds      Multi-Level  Single-Linkage  (low-
                       discrepancy-sequence, require local gradient  based
                       optimization and bounds)
                       gn-direct-l-noscal  Dividing Rectangles (unscaled,
                       locally biased)
                       gn-isres  Improved  Stochastic  Ranking  Evolution
                       Strategy
                       ld-tnewton  Truncated Newton
                       gn-direct-l-rand    Dividing  Rectangles  (locally
                       biased, randomized)
                       ln-newuoa        Derivative-free     Unconstrained
                       Optimization  by  Iteratively Constructed Quadratic
                       Approximation
                       gn-direct-l-rand-noscale     Dividing   Rectangles
                       (unscaled, locally biased, randomized)
                       gn-orig-direct     Dividing  Rectangles  (original
                       implementation)
                       ld-tnewton-precond      Preconditioned   Truncated
                       Newton
                       ld-tnewton-restart       Truncated   Newton   with
                       steepest-descent restarting
                       gn-direct  Dividing Rectangles
                       auglag-eq   Augmented  Lagrangian  algorithm  with
                       equality constraints only
                       ln-neldermead  Nelder-Mead simplex algorithm
                       ln-cobyla    Constrained  Optimization  BY  Linear
                       Approximation
                       gn-crs2-lm  Controlled Random  Search  with  Local
                       Mutation
                       ld-var2    Shifted Limited-Memory Variable-Metric,
                       Rank 2
                       ld-var1  Shifted  Limited-Memory  Variable-Metric,
                       Rank 1
                       ld-mma  Method of Moving Asymptotes
                       ld-lbfgs-nocedal  None
                       g-mlsl   Multi-Level Single-Linkage (require local
                       optimization and bounds)
                       ld-lbfgs  Low-storage BFGS
                       gn-direct-l  Dividing Rectangles (locally biased)
                       ln-bobyqa      Derivative-free   Bound-constrained
                       Optimization
                       ln-sbplx  Subplex variant of Nelder-Mead
                       ln-newuoa-bound  Derivative-free Bound-constrained
                       Optimization by Iteratively  Constructed  Quadratic
                       Approximation
                       auglag  Augmented Lagrangian algorithm
                       ln-praxis    Gradient-free  Local Optimization via
                       the Principal-Axis Method
                       gn-direct-noscal  Dividing Rectangles (unscaled)
                       ld-tnewton-precond-restart          Preconditioned
                       Truncated Newton with steepest-descent restarting
                       ld-slsqp      Sequential  Least-Squares  Quadratic
                       Programming

                 step = 0; double in [0, inf)
                   Initial step size for gradient free methods.

                 stop = -inf; double
                   Stopping criterion: function  value  falls  below  this
                   value.

                 xtola = 0; double in [0, inf)
                   Stopping criterion: the absolute change of all x-values
                   is below  this value.

                 xtolr = 0; double in [0, inf)
                   Stopping criterion: the relative change of all x-values
                   is below  this value.

EXAMPLE

   Register the perfusion series given in 'segment.set' to reference image
   30. Skip two images at the beginning and using  mutual  information  as
   cost  function,  and penalize the transformation by divcurl with weight
   5. Store the result in 'registered.set'.

   mia-2dmyoserial-nonrigid   -i segment.set -o registered.set -k 2  -r 30
          image:cost=mi -f spline:rate=5,penalty=[divcurl:weight=5]

AUTHOR(s)

   Gert Wollny

COPYRIGHT

   This  software  is Copyright (c) 19992015 Leipzig, Germany and Madrid,
   Spain.   It  comes   with   ABSOLUTELY   NO  WARRANTY   and   you   may
   redistribute  it  under  the  terms  of  the GNU GENERAL PUBLIC LICENSE
   Version 3 (or later). For more information run  the  program  with  the
   option '--copyright'.





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.