Biological Interpretation
This section provides examples on how to use DNAvi’s statistical analyses and outputs to answer biological questions.
Disclaimer: While representing real cell-free DNA profiles, the examples below solely serve the purpose of technical demonstration of software usability. No real-world conclusions are derived.
Example 1: Cell-free DNA in cells
Example: cfDNA from cell types A, B, C
N = 6 per group
To quickly answer this question, we can consider the line plot (in /plots) for an overview:
Next, we will look at the clustermap plot (also in /plots) for euclidian distance-based hierarchical clustering.
The color bar on the left indicates the cell type group each sample belongs to.
Result: In this example, the clustering reveals sorting of global fragmentation patterns largely matching the condition, indicating that the is indeed a global change in cell-free DNA fragmentation between the groups.
Question: Which nucleosomal fractions are different between the groups?
- The DNAvi analysis provides peak metrics for each sample:
average_size : the average fragment size, estimated from the signal table (histogram)
max_peak: the most intense peak (peak with highest fluorescent signal) of this sample
peak_id: the detected peaks (0-based) and their sizes for each sample
nucleosomal fractions: the fraction of cell-free DNA falling into a nucleosomal size range for each sample
To immediately check which nucleosomal fractions are different, let’s check the visual output in the /stats folder:
… (showing first 8 plots only)
From these plots we can immediately see differences in the sizes of individual nucleosomal fractions:
Mononucleosomal (100-250 bp)
Dinucleosomal (251-500 bp)
Trinucleosomal (501-750 bp)
…
Result: In this example, Cell Type C has a much higher fraction of mono- and di-nucleosomal DNA, whereas Cell Type A has relatively more trinucleosomal cell-free DNA.
Question: Is this difference statistically significant?
We can check the results of the Kruskal-Wallis Test, reported in /stats/group_statistics file:
peak_name |
test_performed |
p_value |
p<0.05 |
|---|---|---|---|
Mononucleosomal (100-250 bp) |
Kruskal Wallis with bonferroni |
0.000986956111360756 |
True |
Hint: For convenience, this is already reported in the plots above, see enlarged part here (reporting significant p-values with star symbols):
Result: Based on the Kruskal-Wallis Test, cell-free DNA from 3 groups (Cell type A, B, and C) shows a significant difference in certain nucleosomal fractions, here at the example of the trinucleosomal fraction, meaning at least one group is statistically different from the others.
Question: Which groups differ?
To check the group-to-group comparisons, we consult the group_statistics file in the /stats folder.
In the detailed posthoc p-value column, we see the group-wise comparisons:
Cell type A |
Cell type B |
Cell type C |
|
|---|---|---|---|
Cell type A |
1 |
0.00001 |
0.001 |
Cell type B |
0.00001 |
1 |
0.07 |
Cell type C |
0.0009 |
0.07 |
1 |
Result: Based on the Posthoc Conover’s Test with Bonferroni correction, cell-free DNA in the Cell type A has a significantly higher trinucleosomal cfDNA fraction than Cell type B and C. Cell type B and C however do not reach statistical significance here, so we cannot say their trinucleosomal fractions differ.
Biological Interpretation
Taking into account these statistical tests, we can conclude that the three cell types here show different cell-free DNA fragmentation profiles. Based on hierarchical clustering, Cell type A and B seem more closely related, potentially indicating that the clustering is dominated by differences in larger fragments (e.g. pentanucleosomal and higher). Zooming into the individual nucleosomal fractions allowes us however to see more fine-grained differences. One example is that we have identified a significant enrichment in trinucleosomal cfDNA for Cell Type A, that is different from Cell Type B and C. Together, we have demonstrated that each cell type in this study displayed a unique cell-free DNA profile.
Example 2: Cell-free DNA in cancer patients
To cover a clinical example, we analyse the data by Trinidad et al. (2023):
Example: cfDNA from cancer patients (diagnosed & relapsed)
N = 4 per group
Trinidad EM, Juan-Ribelles A, Pisano G, et al. Evaluation of circulating tumor DNA by electropherogram analysis and methylome profiling in high-risk neuroblastomas. Front Oncol 2023;13. [DOI: 10.3389/fonc.2023.1037342])
They compare liquid biopsy fragmentation profiles at diagnose and at relapse, and we can use this information for metadata and group-wise comparisons. Here’s the results from DNAvi:
Line plot
Hierarchical clustering will be evaluated, revealing largely clustering by condition:
Cluster map
Question: Whats the average size of the maximum DNA intensity peak here?
Let’s check /stats/group_statistics.csv
Diagnosed: 155 bp
Relapsed: 650 bp
Is this difference statistically significant?
For convenience we can check the Kruskal Wallis p-value in the plots saved to /stats
Result: If we stratify the cell-free DNA samples by patient status (diagnosed vs. relapsed), we detected a significant difference in the maximum cell-free DNA peak.
Biological Interpretation
In this clinical example dataset we would conclude that the disease status of the cancer patients has a statistically significant effect of cfDNA fragment profiles. Specifically, cell-free DNA from relapsed patients had a significantly larger maximum DNA peak compared to diagnosed patients.
Example 3: Negative results
To quickly also cover the characteristics of ‘negative results’, here’s an example where cell-free DNA profiles were stratified by age.
Example: 21 cfDNA samples (each assigned a different age)
N = 1 per group
peak_name |
unique_peak |
test_performed |
p_value |
p<0.05 |
posthoc_p_values |
groups |
|---|---|---|---|---|---|---|
average_size |
False |
Kruskal Wallis |
0.6 |
False |
{‘12’: [973.946437910421, 530.6846068794599], ‘15’: [1385.5226067211875, 271.62399889159303, 546.6197655633586], ‘35’: [1104.2029576944217], ‘60’: [845.3514939297479], ‘47’: [1296.1043356600933], ‘77’: [1171.9294668923649, 1001.2275037234929], ‘11’: [1029.1364537143859], ‘80’: [1232.4796233291413], ‘2’: [1331.2928643355178, 432.7414747575407], ‘33’: [1343.1577215587638], ‘37’: [1003.4547885501203], ‘1’: [982.9895332064737, 500.3351271872906], ‘30’: [826.5379836238798], ‘44’: [1291.3828135356284], ‘23’: [350.37438864904067], ‘27’: [447.2806379163936], ‘34’: [331.08189960368037], ‘78’: [217.41614389837846], ‘92’: [266.6469841180417], ‘94’: [413.59970732182217], ‘3’: [477.151983532518]} |
|
0.0 |
False |
Kruskal Wallis |
0.6 |
False |
{‘12’: [152.0408163265306, 155.10204081632654], ‘15’: [161.22448979591837, 167.34693877551018], ‘35’: [164.28571428571428], ‘60’: [161.22448979591837], ‘47’: [167.34693877551018], ‘77’: [136.73469387755102, 219.3877551020408], ‘11’: [185.7142857142857], ‘80’: [161.22448979591837], ‘2’: [158.16326530612244], ‘33’: [201.0204081632653], ‘37’: [188.77551020408163], ‘30’: [158.16326530612244], ‘44’: [161.22448979591837], ‘23’: [133.6734693877551], ‘27’: [176.53061224489795], ‘34’: [148.9795918367347], ‘78’: [142.85714285714286], ‘92’: [155.10204081632654], ‘94’: [167.34693877551018], ‘1’: [164.28571428571428], ‘3’: [155.10204081632654]} |
|
1.0 |
False |
Kruskal Wallis |
0.5 |
False |
{‘12’: [344.1860465116279, 333.72093023255815], ‘15’: [361.62790697674416, 330.2325581395349], ‘35’: [361.62790697674416], ‘60’: [372.09302325581393], ‘47’: [375.5813953488372], ‘77’: [330.2325581395349, 462.22222222222223], ‘11’: [375.5813953488372], ‘80’: [330.2325581395349], ‘2’: [351.16279069767444], ‘33’: [475.55555555555554], ‘37’: [400.0], ‘30’: [323.2558139534884], ‘44’: [323.2558139534884], ‘27’: [573.3333333333334], ‘1’: [333.72093023255815], ‘3’: [312.7906976744186]} |
|
2.0 |
False |
Kruskal Wallis |
0.4 |
False |
{‘12’: [560.0], ‘15’: [568.8888888888889], ‘35’: [582.2222222222222], ‘60’: [591.1111111111111], ‘47’: [595.5555555555555], ‘77’: [542.2222222222222, 568.8888888888889], ‘11’: [586.6666666666667], ‘80’: [533.3333333333334], ‘2’: [551.1111111111111], ‘33’: [1434.7826086956522], ‘37’: [855.1724137931035], ‘30’: [462.22222222222223], ‘44’: [560.0], ‘27’: [731.0344827586207], ‘1’: [806.8965517241379]} |
|
3.0 |
False |
Kruskal Wallis |
0.6 |
False |
{‘12’: [800.0], ‘15’: [806.8965517241379], ‘35’: [1163.0434782608695], ‘60’: [868.9655172413793], ‘47’: [855.1724137931035], ‘77’: [779.3103448275862, 1141.304347826087], ‘11’: [848.2758620689655], ‘80’: [772.4137931034483], ‘2’: [800.0], ‘37’: [1076.086956521739], ‘30’: [689.6551724137931], ‘44’: [820.6896551724137]} |
|
4.0 |
False |
Kruskal Wallis |
0.4 |
False |
{‘12’: [1054.3478260869565], ‘15’: [1195.6521739130435], ‘60’: [1086.9565217391305], ‘47’: [1456.5217391304348], ‘77’: [1000.0], ‘11’: [986.2068965517242], ‘80’: [1184.7826086956522], ‘2’: [993.103448275862], ‘37’: [1413.0434782608695], ‘30’: [827.5862068965517], ‘44’: [1010.8695652173913]} |
|
5.0 |
False |
Kruskal Wallis |
0.4 |
False |
{‘12’: [1282.608695652174], ‘15’: [1542.2535211267605], ‘77’: [1369.5652173913045], ‘11’: [1206.5217391304348], ‘2’: [1380.4347826086955], ‘30’: [986.2068965517242], ‘44’: [1271.7391304347825]} |
|
max_peak |
False |
Kruskal Wallis |
0.6 |
False |
{‘12’: [1282.608695652174, 155.10204081632654], ‘15’: [161.22448979591837, 167.34693877551018], ‘35’: [1163.0434782608695], ‘60’: [161.22448979591837], ‘47’: [167.34693877551018], ‘77’: [136.73469387755102, 1141.304347826087], ‘11’: [986.2068965517242], ‘80’: [1184.7826086956522], ‘2’: [1380.4347826086955], ‘33’: [1434.7826086956522], ‘37’: [188.77551020408163], ‘30’: [158.16326530612244], ‘44’: [161.22448979591837], ‘23’: [133.6734693877551], ‘27’: [176.53061224489795], ‘34’: [148.9795918367347], ‘78’: [142.85714285714286], ‘92’: [155.10204081632654], ‘94’: [167.34693877551018], ‘1’: [164.28571428571428], ‘3’: [155.10204081632654]} |
|
6.0 |
False |
Kruskal Wallis |
0.4 |
False |
{‘15’: [4250.0], ‘30’: [1195.6521739130435], ‘44’: [1542.2535211267605]} |
|
7.0 |
False |
Kruskal Wallis |
0.3 |
False |
{‘30’: [1423.913043478261], ‘44’: [2049.295774647888]} |
|
8.0 |
False |
Kruskal Wallis |
0.3 |
False |
{‘30’: [1739.43661971831], ‘44’: [2373.2394366197186]} |
|
9.0 |
True |
None (peak unique to group) |
1.0 |
False |
{‘44’: [2750.0]} |
|
10.0 |
True |
None (peak unique to group) |
1.0 |
False |
{‘44’: [3384.6153846153848]} |
|
11.0 |
True |
None (peak unique to group) |
1.0 |
False |
{‘44’: [4550.0]} |
Result: If we stratify the cell-free DNA samples by age, no significant difference is found (all p values are > 0.05). This may be because our sample size is too small or because we have not pooled by age groups.
Biological Interpretation
In this example dataset we would interpret that age does not have a statistically significant effect of cfDNA fragment profiles.
Disclaimer: Please keep in mind that adding more metadata may require more stringent statistics due to multiple testing. Note that while representing real cell-free DNA profiles, the examples below solely serve the purpose of technical demonstration of software usability. Research context only. No real-world conclusions can be derived from this example.