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:

line plot

Next, we will look at the clustermap plot (also in /plots) for euclidian distance-based hierarchical clustering.

clustermap

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:

fractions

… (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:

Example of a DNAvi 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):

Example stats

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:

p-values for group-wise comparisons in Conover’s posthoc test

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

Trinidad

Hierarchical clustering will be evaluated, revealing largely clustering by condition:

  • Cluster map

Trinidad

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

Trinidad

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

Example stats
Example of group statistics output II

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.