Mastering the Vidjil web application
Part 1 – Browsing and analysing clones


September 28, 2020

The goal of this practical session is to learn common ways to visualize, filter, analyse and cluster clones on the Vidjil web application. These clones may have been computed by the Vidjil algorithm or by any other algorithm.

PIC

0. Connect to the public server (https://app.vidjil.org), either with your account or the demo account (demo@vidjil.org / demo), select the Demo LIL-L3 (tutorial) patient. If you don’t see it, search for #Demo in the top-left search box. Then click on the bottom right link, see results: multi-inc-xxx. Do not open the Demo LIL-L3 (analyzed) patient: this one contains the complete analysis. The Vidjil web application opens.

This patient (patient 063 from Lille study on the feasibility of MRD using HTS) suffering T-ALL has one diagnosis sample, with dominant clones both in IGH and TRG, and four follow-up samples, including a relapse.

1. In the settings menu, try the various options for sample key. The five samples can be labeled by their name, their date of sampling or by the number of days after the first sample.

In the following sections, we focus on the diagnosis sample. The section 5 will deal with the comparison of several samples.

1 Assessing the quality of the run and of the analysis

The Vidjil web application allows to run several “RepSeq” (immune repertoire analysis) algorithms. Each RepSeq algorithm has its own definition of what a clone is (or, more precisely a clonotype), how to output its sequence and how to assign a V(D)J designation. The number of analyzed reads will depend on the algorithm used. This sample has been processed using the Vidjil algorithm.

The percentage of analyzed reads can range from .01 % (for RNA-Seq or capture data) to 98-99 % (for very high-quality runs mostly on Illumina).

2. How many reads have been analyzed in the current sample with the embedded algorithm ?

In the upper left corner, you can see an information panel with analyzed reads 1 967 338 (82.31 %)’

Now we will try to assess the reason why some reads were not analyzed in our sample. This might reflect a problem during the sequencing protocol…or that could be normal. For that sake you will need to display the information box by clicking on the i in the upper left part.

3. What are the average read lengths on IGH? and on TRG?

In the Analysis log row under "av.len"
IGH -> 314.5
TRG -> 197.6

The lines starting with UNSEG display the reasons why some reads have not been analyzed.

You can see what those reasons mean in the online documentation of the algorithm:

vidjil.org/doc/vidjil-algo#reads-without-detected-recombinations

4. What are the major causes explaining the reads have not been analyzed? Also have a look at the average read lengths of these causes. Do you notice something regarding the average read lengths?

1. The algorythm was not able to find a V or a J for most of the unsegmeneted reads.
2. The may be too short to cover enough of the V or J genes to be detected.

2 Viewing and filtering clones

2.1 Looking at a clone

Each RepSeq algorithm has its own definition of what a clone is (or, more precisely a clonotype), and on how to output its sequence and how to assign a V(D)J designation.

In this file, the most abundant clone is IGHV3-9 7/CCCGGA/17 J6*02.

5. Select this clone, either by clicking on the list or on the grid. How many reads do this clone represent? (see again the bottom part to the right)

the bottom panel display information about currently selected clones -> 189 991 reads (9.665 %)

There are several options to display the V(D)J designation.

6. In the settings menu, under N regions in clone names select length to show N zones by their length. Revert to the default sequence (when short) setting to show the full N on short sequences.

7. Try also the options alleles in clone names : by selecting always, the clone V gene is displayed as IGHV3-9*01. Revert to the default when not *01. This setting, which is the default, allows to have a more condensed V(D)J designation that doesn’t make the *01 appear (it is implicit).

2.2 Showing more clones

By default Vidjil displays the 50 most abundant clones at each time point. With five time points, we may therefore have from 50 to 250 clones displayed depending if the top 50 are always the same or always different or, more realistically, in-between. This number can be increased to a maximum of 100 clones by going to the filter menu and by putting the slider to its right end.

8. Notice how the IGH smaller clones percentage (second clone displayed in the list) changes. What was its initial value? What is it now?

filter set to 50 -> IGH smaller clones 10.11 %
filter set to 100 -> IGH smaller clones 8.92 %

The smaller clones correspond to clones that are not displayed because they are never among the most abundant ones.

2.3 Tagging and filtering clones

Consider the most abundant clones in the list: IGHV3-9 7/CCCGGA/17 J6*02 and TRGV10 13//5 JP1. Usually we may want to tag them in order to remember them later on.

9. Click on the star and choose colored tags for these two clones, such as clone 1 or clone 2. Notice how the color applies throughout all the views.

Later you may want to filter clones depending on the tags you have chosen.

10. In the upper left part, click on the little dark gray square (the second coloured square starting from the right). What happens? What if you click again?

This is a way of filtering some clones. This may be useful when we want to focus on some specific clones. Another way of doing so is to filter them by their gene names or by their DNA sequences.

11. In the search box, enter GGAGTCGGGG and validate with Enter. How many sequences are left? Note that the search is performed both on the forward and the reverse strand.

12. Check that by searching for the reverse complement of the sequence: CCCCGACTCC. Do you find the same results as previously?

13. How can you cancel this filter and view again all the clones?

Another solution to tag a specific clone is to rename it.

14. Double click on the name of a clone (in the list of clones) and choose another name (e.g. interesting clone) and validate using Enter.

After this rename, you can see that the clone is still selected.

15. Click on several clones by holding the Ctrl key to select more. Each time you add a new clone to the selection, its sequence is added in the bottom part.

16. How many clones are selected? How many reads do those clones represent?

17.  Notice the star at the the right of the screen, near the number of reads. You can also tag clones using this icon. In that way, you will be able to tag all the selected clones at once.

18. When you want to focus on the selected clones, you can click on the focus link on the right, next to the number of selected clones. This feature is useful when you want to analyse some clones more thoroughly without being annoyed by other clones.

19. To remove this focus, click on the cross next to the search box, above the list.

20. To unselect them all, you can click in an empty area on the top or bottom plot.

Sometimes, one wants to hide noisy or unrelated clones.

21. Select a clone or several clones and click on the hide button, near the focus button. Show again these clones by clicking on the cross next to the search box.

It is also possible to filter samples that do not contain a clone. When you have lots of samples it helps to keep the sample of interest. Here the number of sample is quite limited, so the feature may appear less useful.

22

SVG-Viewer needed.

Click on the IGHV3-11 / IGHJ6 clone in the last sample, whose abundance is around 10 %. Then go in the menu at the upper-right corner of the graph (where 5/5 is written) and select focus on selected clones.

By selecting this, the samples where this clone doesn’t appear are hidden. This is useful for instance to assess the contamination among dozens of samples.

23. You can go back to the previous view by returning into the menu and clicking on show all. Notice also how in the menu you can select the samples to be shown.

3 Analysing clone populations

3.1 Clustering clones through inspection of their sequences

The first thing to be done is to see if some clones should be clustered (because of sequencing or PCR errors for instance). This step could be automatized but, in any case, the automatic clustering would need to be checked by an expert eye.

By default in the bottom plot (the grid), the clones are displayed according to their V and J genes (or more generally to their 5’ and 3’ genes).

24. Identify in the grid the clones with an IGHV-3-13 IGHJ6 recombination and select them all. You can do so either by holding Ctrl or by drawing a rectangle around the clones while maintaining down the left button of the mouse.

The sequences of the clones now appear in the bottom part of the browser (the sequence panel). If many clones are selected you can view more sequences by moving the mouse above the sequence panel. In such a case, you may be bothered by the sequence panel going up and down each time your mouse enters or exits the sequence panel. You can stick it in its current shape by clicking on the pin at the upper right corner of the sequence panel.

Then, the sequences in the sequence panel can be visually compared but you can also align them to see more easily their similarities.

25. Click on the align button on the left-hand side. The differences are emphasized in bold.

Now it is the user’s expertise to determine if sequences are sufficiently similar, depending on her or his specific question. If some sequences don’t appear to be similar enough, you can remove them from the sequence panel by clicking on the cross in front of the sequence in the sequence panel.

26. Remove all the sequences that are not similar enough with the first one.

Now all the sequences in the sequence panel should be highly similar. All their differences could be due to sequencing or PCR errors. These artifacts (mutations, homopolymers, insertions, deletions) depend on the sequencer and the PCR technique.

27. Cluster all those clones in a single clone by clicking on the “cluster” button, next to the align button.

All the clustered sequences now appear within a same clone. That can be seen in the list: the clone which hosts the subclones appears with a + on its left. You can click on the + to see the subclones that have been clustered in the main one.

28. Click on the + and observe the changes in the grid.

As you may have noticed the subclones appear again in the grid. You can compare their sequences again if you’d like (for example to double check that you were right to cluster them). You can also remove some subclones from the cluster by clicking on the cross at their left in the list.

29. For the sake of the exercise, remove the last clone of the cluster.

30. Open the cluster menu, and choose cluster by V/5. What happened ? There are now two clones with TRGV2. Why ?

31. In the cluster menu, select revert to previous clusters to undo these clusterings.

3.2 Other metrics and analysis on the clones

As a proxy to sequence similarity we used the V and J genes, however there are other ways to assess sequence similarity that may be more pertinent. Moreover you may want to plot other metrics on the lymphocyte population. For instance we can choose to plot the V genes versus the length of the N insertions.

32. Go to the plot menu (in the upper left corner of the grid), and in the preset box choose V/N length.

Then you can continue aligning and clustering clones if necessary.

33. You can also try the preset clone average read length/GC content which tends to separate quite nicely the distinct clones.

Note that you can choose any axis to be plotted: just go the plot menu and select any value you would like for the x axis and for the y axis. For bar charts, the box sizes always relates to the clone size, and the y axis selects the order of the boxes sharing a same x).

34. In the plot menu, switch between the “bubble plot” and the “bar plot”. In the bar plot mode, pass the mouse over the bars: What happens?

35. Press the keys 0 to 9 on the numeric keypad. What happens ?

There is still a feature to help you analyse your data that we have not explored yet. You can change the colors to make it represent some variables of interest with the color by menu.

36. First choose the preset V/J (genes) and then color by N length (in the box at the top of the screen). We apologize to color blinds: the colors are not yet color-blind friendly.Clones that are close on the grid with similar colors are likely to be similar.

37. Choose now the preset CDR3 length distribution and then color by productivity. See that the color tiles in the info part (upper right) change to show the color key.

38.  Instead of coloring by productivity, you could also color by clone. When coloring by clone, each clone has a random color. Thus in a bar plot, it is a convenient color mode to see the peaks that are due to a single clone or to several clones. However clones may be very similar. Another option is to color by CDR3. In such case all clones with the same CDR3 will have the same color (note that, due to a lack of available colors two different CDR3s could share the same color just by chance).

Using those different features you should be able to analyse how similar your sequences are, and potentially you could cluster them if you’d like or tag them.

39.  Select the most abundant clone. It now appears in the sequence panel. Now we would like to compare the sequence with the germline genes. We can add the germline genes to the sequence panel by going to the import/export menu and by clicking on add germline genes. Now we can click on the align button to see the alignment between the genes and the sequence. Mutations can be identified and silent mutations are displayed with a double border in blue.

This part is specific to samples analyzed with Vidjil-algo.

Some clones may be less trustable than other ones… Let’s see how to spot them.

40. In the clone list, search clones with an orange warning at the right side. Click on the warning. What are the warnings due to?

There may have several reasons:

You can view those values for any clone by clicking the i icon on the right side, in the list of clones.

3.3 Analysing recombinations from several loci

First make sure to come back to the preset V/J (genes) in the plot menu.

If you want to focus on specific locus, you can click on the locus name in the upper left part. One click will make the locus disappear, another one will make it appear again. If you hold the Shift key (the one which is usually above the left Ctrl key) while clicking it will hide all the loci but the one you clicked on.

41. Click on IGH, while holding the Shift key. Now what is the number of analyzed reads? Why did it change?

42. Now click on TRG, to filter it in again.

43. Press on the g key. What happens? Now, press on the h key. Press on the g again (you can do that anytime you like :)). Let’s stick to the TRG locus.

You can also change the current locus by clicking on the locus name in the right part of the grid.

3.4 Clone quantification (using spike-ins)

Sometimes you may include spike-ins in your sample to allow a more reliable quantification. Let us assume that the main clone with IGHV-3-9 / IGHJ5 is a spike-in whose expected concentration is 1% (.01).

44. First let’s color this clone with the standard tag.

45.  Now we will set its concentration to .01 as expected. Click again on the star. In the normalize to field enter .01 and click ok. Now, in the graph, this clone should correspond to a straight line at 1%.

46.  Notice how the concentrations of the other clones have changed accordingly. You can go to the settings menu to disable this normalization and to go back to the raw concentrations.

Then you can set expected concentrations for other clones and you are free to switch between those normalizations. It is also possible to set up normalization against external data, contact us if you are interested.

PIC

Mastering the Vidjil web application
Part 2 – Dealing with samples and exporting data


September 28, 2020

4 Dealing with samples and patients

We will see how to make the best use of the patient and sample database and how to use it efficiently. For this sake you need an account with the rights to create new patients, runs, sets, to upload data and, preferably, to run analyses. Therefore the demo account is not suitable.

47.  Retrieve the toy dataset at vidjil.org/seqs/tutorial_dataset.zip and extract the files from the archive.

You should now have three files. We will imagine that those three files are the results from a single sequencing run. More precisely, each one corresponds to a single patient. Thus we now want to upload those files and assign all of them to a same run and each of them to a single patient.

48.  Go to the main page of the Vidjil platform (by default app.vidjil.org). You should be on the patients page. Go at the bottom of the page and click on + new patients to create the three patients.

Note that usually you should check whether the patient has already been created by searching her/his name in the search box at the upper left corner

49.  You are now on the creation page for patients, runs, and sets. You can create as many patients, runs and sets as you want. Patients, runs and sets are just different ways to group samples. The names are just used to add some semantic so that you know that your patients will be on the patient page, your runs on the run page and your other sets (thus any set of samples you want to make) on the run page. Here we already have a line to create one patient. We want to create two additional patients and one run. Thus click twice on add patient and once on add run.

Now you should have three lines with Patient 1, Patient 2, Patient 3 and one line with Run 1. If you created too many lines you can remove some by clicking on the cross at the right hand side.

50.  For instance click on the cross corresponding to Patient 3. The line has now been removed. Click again on add patient so that the line appears again (it is now called Patient 4).

51.  Now you can fill the mandatory fields (circled with red) and, optionally, the other fields.

The last field is optional but it is very important (the field called patient/run information (#tags can be used).

Here you can enter any information relevant to this set of samples. More specifically you can enter tags (starting with a #) that will allow you to search very easily and quickly all the patients/runs/sets sharing this tag. By default when you enter a # in this field, some tags appear and the suggestions are updated while you enter other characters. Note that a tag cannot contain any space. Also note that you can create other tags just by entering whatever you would like in the field preceded with a #. Thus any tag you enter is saved (and can be suggested later on).

52. For patient 1 in this last field, enter #diagnosis of patient with #B-ALL. For patient 2, enter #blood sample #CLL. For patient 4, enter bone #marrow #B-ALL

Now the three patients and the run have been created but we have not uploaded the sequence files yet.

53. Now go to the runs page. You should see the run you have just created. Click on it. Then click on + add samples.

Similarly to the patient/run creation page, we can add as many samples as we want on this page.

54. As we need to upload three samples, click twice on the add other sample button so that you have three lines to add a sample.

55. For sample 1, choose the file corresponding to patient 1 (and respectively for patient 2 and 3). You can also add extra information, with tags, as previously.

Note the common sets field. This field means that all the samples will be added to this run (the one you created). If you would like to all the samples to another patient/run/set you should specify it here.

In our case we want to add each sample to a different patient. Thus we don’t need to modify this field.

56. Instead we need to modify the last field on each line. Click on it. A list should appear with the last patients/runs/sets you created. Either click on the correct patient or type the first letters of her/his name. Then validate with Enter or by clicking on the correct entry.

57. When you have associated each sample to its corresponding patient you can upload the samples by clicking on the Submit samples button.

Now you are back on the page of the run where you should see the three samples that are being uploaded.

58. When the upload is finished you launch the analysis by selecting the configuration in the drop down at the right (multi+inc+xxx) and then clicking on the gearwheel.

You can have a coffee, a tea, or something else, while the process is launched.

59. To regularly check the status of your job you can click on the reload button at the bottom left of the page. Your process usually goes through the following stages: QUEUED, (possibly STOPPED), ASSIGNED, RUNNING, COMPLETED (or FAILED when there is an issue, in such a case please contact us)

Then you can view the results as explained before. Instead we will remain on the server.

60. Now go back to the patients page. You can filter the page using the tags you entered previously. Enter #B-ALL in the search box (notice the autocompletion that helps you) and validate with Enter.

5 Tracking clones on several samples

The time graph shows the evolution of the top clones of each sample into all the samples. Bear in mind that to ensure readability at most 50 curves are displayed in this graph. When loading data with only one sample, the time graph is replaced by a second bar/grid plot.

61. Pass the mouse over the bubbles in the grid or over the lines in the time graph. Click on some clone. What happens ?

62. Click on the label of the time graph to select another sample. What happens to the number of analyzed reads ? to the size of the top clones ?

When switching the time point, the views dynamically update which allows to easily track the changes along time. Also note that the number of analyzed reads differ from the previous point. We can again analyse the reason why some reads were unsegmented.

We will look now at how the V gene distribution evolves along the time.

63. In the grid, select the preset V distribution. Then click on the play icon in the upper left part (below the i icon).

By doing so you can look at how the V distribution changes along the time. Of course you can also change the data displayed in the grid to look at the evolution of another information.

We remind that by default at most 50 clones are displayed on the time graph. However the remaining of the application usually displays the 50 most abundant clones at each sample (which can account to hundreds of clones, when having several samples).

64. Select a sample, order the list by size, and pass the mouse through the list of top 50 clones. What happens in the graph when hovering clones that are not in the top 50 ?

If you have many samples, you may wish to reorder the samples.

65. Drag the label of one sample to reorder the samples.

66. Drag one label to the box with the pin icon to hide this sample.

You may also want to compare two samples, either to check a replicate, to check for possible contaminations, or to compare different research or medical situations.

67. In the color by menu, choose by abundance. Select a different sample. What happens ? Are there some clones with a significant different concentration in both samples ? Revert the color by choosing by tag.

Another option is to directly plot a log-log curve comparing two samples.

68. In the plot menu, choose the preset compare two samples. Click successively on two labels in the time graph to select the samples to be compared. Are there again some clones with a significant different concentration in both samples ?

6 Working with external software and exporting data

6.1 Checking VDJ designations with other software

For some studies, VDJ designations are very important. In the list and in the sequence panel, those designations are written in their short form.

69. Put the mouse cursor over a clone. In the status bar (between the grid and the sequence panel), the complete designation appears.

We can double check this designation with other popular software.

70. Select a few clones. This requires an internet connection.

71. Click on the down triangle, which is right to IMGT/V-QUEST. The clone sequences are sent to IMGT/V-QUEST.

72. Then tick the checkbox 5’V/D/3’J. In the sequence panel the boundaries of the V(D)J genes as computed by IMGT/V-QUEST are underlined.

Note that data returned by IMGT/V-QUEST is available by clicking on the i icon of analyzed clones, enabling you to compare the annotations made by the original software and by IMGT/V-QUEST.

73. You can also directly send the sequences to IMGT/V-QUEST or IgBlast by clicking the corresponding buttons. This opens a new page with the corresponding websites.

It may happen the software makes a mistake in the VDJ designation. In such a case you’re very welcome to report us the problem and we will try to improve the designation algorithm.

74. Go in the Help menu and click on get support. It opens your mailer with a pre-composed email describing the data you are on as well as the clones you selected..

Even if you do not use the get support button, it’s a good practise to send the complete address showing in your web browser, such as http://app.vidjil.org/?set=3241&config=39&plot=v,size,bar, when you want to discuss with colleagues or with us your data or your analyses.

Suppose that you would like to change the VDJ designation shown on the web application.

75. Click on the i icon in the list of clones for the clone you want to change the designation. In the segmentation part, click the edit button. Choose what you would like to modify.

Beware: the modifications you made (name changes, clusters, clone tagging, sample reordering…) will not be automatically saved. You have to save your changes by yourself either by clicking on save patient in the top left menu (where the “patient” name is written) or by using the Ctrl+S keyboard shortcut. For this demonstration data, you cannot save your changes as you do not have the rights to modify this patient.

6.2 Exporting data

76. In the export menu, generate printable reports by clicking on both entries starting with export report. What differs between both?

77. Select some clones and then, in the export menu, choose export fasta. What happens?

78. Open the import/export menu, and click on export csv. The resulting file describes all visible clones (V(D)J designation, size for each sample). It can be opened by any spreadsheet software such as LibreOffice Calc or Excel for further analysis.

79. Open again import/export menu, and click on the export bottom graph button. This exports the current view of the plot.

80.  Select some clones and align them. The alignment can be exported with the export aligned fasta button in the import/export menu.

Aurélien Béliard, Aurélie Caillault, Marc Duez, Mathieu Giraud, Tatiana Rocher, Mikaël Salson, Florian Thonier
contact@vidjil.org