# Linnorm Transformation Function

### Description

This function performs the Linear model and normality based transformation method (Linnorm) for RNA-seq expression data or large scale count data.

### Usage

1 2 |

### Arguments

`datamatrix` |
The matrix or data frame that contains your dataset. Each row is a feature (or Gene) and each column is a sample (or replicate). Raw Counts, CPM, RPKM, FPKM or TPM are supported. Undefined values such as NA are not supported. It is not compatible with log transformed datasets. |

`showinfo` |
Logical. Show lambda value calculated. Defaults to FALSE. |

`method` |
Character. "default" or "lambda" The program will output the transformed matrix if the method is "default". If the method is "lambda", the program will output a lambda value. |

`perturbation` |
Integer >=2. To search for an optimal minimal deviation parameter (please see the article), Linnorm uses the iterated local search algorithm which perturbs away from the initial local minimum. The range of the area searched in each perturbation is exponentially increased as the area get further away from the initial local minimum, which is determined by their index. This range is calculated by 10 * (perturbation ^ index). |

`minZeroPortion` |
Double >=0, <= 1. For example, setting minZeroPortion as 0.5 will remove genes with more than half data values being zero in the calculation of normalizing parameter. It is strongly suggested to change this to 0 for single cell RNA-seq data. Defaults to 2/3. |

`keepAll` |
Logical. After applying minZeroPortion filtering, should Linnorm keep all genes in the results? Defualts to TRUE. |

### Details

If method is default, Linnorm outputs a transformed expression matrix. For users who wish to work with lambda instead, the output is a single lambda value. Please note that users with the lambda value can obtain a transformed Linnorm dataset by: log1p(lambda * datamatrix). There is no need to rerun the program if a lambda is already calculated.

### Value

This function returns either a transformed data matrix or a lambda value.

### Examples

1 2 3 4 5 |