Answers.Body: <h3>Final update</h3>
  <p>Okay the answer below is based on the second graph from the top. Looking at the update the correct answer is closer to the first answer presented. <strong>EDIT 3</strong> is normalised data. It appears that the y-axis is probably natural log transformed (log<sub>e</sub>) or log<sub>2</sub> and this transformation has normalised it.</p>
  <p>Thus there is not need to normalise the data, the program has already done it in EDIT3 and in the very top graph now presented.</p>
  <hr />
  <p>This looks impressive, thanks. I get it. There are two way to do this. If you are normalising the frequency (y-axis) is what you are wanting to normalise then either (in this instance its the wrong answer [see below the ----]):</p>
  <ul>
  <li>a log10 transformation (even Excel will log this data)</li>
  <li>a max-min transformation (thats in Python, likely in R - I dunno a general package maybe SPSS??, dunno)</li>
  </ul>
  <p>You then test via the normal distribution using with <a href="https://en.wikipedia.org/wiki/Shapiro%E2%80%93Wilk_test" rel="nofollow noreferrer">Shapiro–Wilk test</a> or <a href="https://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_test" rel="nofollow noreferrer">Kolmogorov–Smirnov test</a></p>
  <p>I suspect the max-min transformation will work. There are other ways in but it will involve discarding data that is &gt;3SD from the mean. Try the above and see how it works.</p>
  <p>Note, a specialist statistician will request you perform a QQ plot, because the above tests of normalisation are not perfect.</p>
  <p>This is not standardisation this is conformation to the normal distribution.</p>
  <hr />
  <p>This could be about bin size if you have a discrete range for gene length and doesn't need to be very big - normally you need to try a few values, in this case its just 1 amino acid bin ... This can be used as a sliding window. It will pull the data into a normal distribution. That may not be very well explained, but I'm pretty sure that will work.</p>
  <p>1 amino acid sounds weird but part the failure to see a normal distribution is a result of your calculation: you are splitting an amino acid into fractions and thats whats causing the irregularities in the data. Thus between values 10 and 20 on the x-axis (presumably size range difference) you should only have 20 bars - but you've got loads &gt; 100 which isn't possible.</p>
  <p>Do that try SW and KS tests and you're sorted.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-07-27T12:04:41.297Z
Answers.LastActivityDate: 2023-07-28T19:53:03.880Z
Answers.LastEditDate: 2023-07-28T19:53:03.880Z
Answers.UserDisplayName: M__
Body: <p><a href="https://i.sstatic.net/ObuEr.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/ObuEr.png" alt="enter image description here" /></a><a href="https://i.sstatic.net/4OrwO.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/4OrwO.png" alt="enter image description here" /></a>Is there a data analysis software (free) or code that I can use to view normalized CDR3 amino acid length distributions?</p>
  <p>Regarding code, preferably using Python or R.</p>
  <p>EDIT: Added a picture of the non-normalized CDR3 amino acid length distribution. The issue is that ES0017_metastasis has more samples than all other individuals which is why it has the highest peak at every amino acid length from 10-20. Was wondering if normalization was possible? Plot generated via Immunarch package in R.</p>
  <p>EDIT2: Now able to access OriginPro and Graphpad Prism via university.</p>
  <p>EDIT3:
  <a href="https://i.sstatic.net/DFcuR.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/DFcuR.png" alt="enter image description here" /></a></p>
  <p>EDIT4:
  <a href="https://i.sstatic.net/zAUs4.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/zAUs4.png" alt="enter image description here" /></a>
  Here are the results, what do you think...
  The first chart is the log transformation (one extra as well, don't know how to delete). The bottom chart is the min-max transformation.</p>
  <p>The x-axis refers to amino acid length. Each discrete block is an amino acid length, e.g. 12 amino acids long, etc.</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-07-26T18:28:12.180Z
Comments.Text: Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.
Comments.UserDisplayName: Community
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-07-27T02:11:13.003Z
Comments.Text: Welcome to the site. It is unlikely free software is available, although PAML did capture this distribution, I think for HIV (thats about trees). The question is not clear as to what the goal of normalisation is. A histogram would be useful. Normalisation is usually requires trial and error based on the histogram. It is likely to be over dispersed but understanding the distribution is a good start.
Comments.UserDisplayName: M__
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-07-27T08:42:19.920Z
Comments.Text: Apologies for the lack of clarity, edited the quesiton.
Comments.UserDisplayName: SData11
Tags: <rna-seq><sequence-analysis>
Title: Is there a data analysis software (free) or code that I can use to view normalized CDR3 amino acid length distributions?
ThreadText: # Is there a data analysis software (free) or code that I can use to view normalized CDR3 amino acid length distributions?
  
  (Asked by: username_0 on 2023-07-26)
  
  [![enter image description here](https://i.sstatic.net/ObuEr.png)](https://i.sstatic.net/ObuEr.png)[![enter image description here](https://i.sstatic.net/4OrwO.png)](https://i.sstatic.net/4OrwO.png)Is there a data analysis software (free) or code that I can use to view normalized CDR3 amino acid length distributions?
  
  Regarding code, preferably using Python or R.
  
  EDIT: Added a picture of the non-normalized CDR3 amino acid length distribution. The issue is that ES0017\_metastasis has more samples than all other individuals which is why it has the highest peak at every amino acid length from 10-20. Was wondering if normalization was possible? Plot generated via Immunarch package in R.
  
  EDIT2: Now able to access OriginPro and Graphpad Prism via university.
  
  EDIT3:
  [![enter image description here](https://i.sstatic.net/DFcuR.png)](https://i.sstatic.net/DFcuR.png)
  
  EDIT4:
  [![enter image description here](https://i.sstatic.net/zAUs4.png)](https://i.sstatic.net/zAUs4.png)
  Here are the results, what do you think...
  The first chart is the log transformation (one extra as well, don't know how to delete). The bottom chart is the min-max transformation.
  
  The x-axis refers to amino acid length. Each discrete block is an amino acid length, e.g. 12 amino acids long, etc.
  
  **Tags:** rna-seq, sequence-analysis
  
  > **Comments:**
  > **username_1**: Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.  
  > **username_2**: Welcome to the site. It is unlikely free software is available, although PAML did capture this distribution, I think for HIV (thats about trees). The question is not clear as to what the goal of normalisation is. A histogram would be useful. Normalisation is usually requires trial and error based on the histogram. It is likely to be over dispersed but understanding the distribution is a good start.  
  > **username_0**: Apologies for the lack of clarity, edited the quesiton.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2023-07-27. Score: 0
  
  ### Final update
  
  Okay the answer below is based on the second graph from the top. Looking at the update the correct answer is closer to the first answer presented. **EDIT 3** is normalised data. It appears that the y-axis is probably natural log transformed (loge) or log2 and this transformation has normalised it.
  
  Thus there is not need to normalise the data, the program has already done it in EDIT3 and in the very top graph now presented.
  
  ---
  
  This looks impressive, thanks. I get it. There are two way to do this. If you are normalising the frequency (y-axis) is what you are wanting to normalise then either (in this instance its the wrong answer [see below the ----]):
  
  * a log10 transformation (even Excel will log this data)
  * a max-min transformation (thats in Python, likely in R - I dunno a general package maybe SPSS??, dunno)
  
  You then test via the normal distribution using with [Shapiro–Wilk test](https://en.wikipedia.org/wiki/Shapiro%E2%80%93Wilk_test) or [Kolmogorov–Smirnov test](https://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_test)
  
  I suspect the max-min transformation will work. There are other ways in but it will involve discarding data that is >3SD from the mean. Try the above and see how it works.
  
  Note, a specialist statistician will request you perform a QQ plot, because the above tests of normalisation are not perfect.
  
  This is not standardisation this is conformation to the normal distribution.
  
  ---
  
  This could be about bin size if you have a discrete range for gene length and doesn't need to be very big - normally you need to try a few values, in this case its just 1 amino acid bin ... This can be used as a sliding window. It will pull the data into a normal distribution. That may not be very well explained, but I'm pretty sure that will work.
  
  1 amino acid sounds weird but part the failure to see a normal distribution is a result of your calculation: you are splitting an amino acid into fractions and thats whats causing the irregularities in the data. Thus between values 10 and 20 on the x-axis (presumably size range difference) you should only have 20 bars - but you've got loads > 100 which isn't possible.
  
  Do that try SW and KS tests and you're sorted.
  
  
  ---
  
  