Skip to content

8. TailfindR compatibility

nemitheasura edited this page Apr 2, 2024 · 4 revisions

With version 1.0.2, Ninetails gained compatibility with tailfindR.

Still, nanopolish polya remains the recommended software for determining tail coordinates. It is better suited to our algorithm, because the Ninetails' model was trained on its result files.

However, to meet the demand, we are posting instructions for using Ninetails with files produced by tailfindR.

Using Ninetails with tailfindR output

Both software: nanopolish polya and tailfindR produce fairly similar result files, containing read names, tail coordinates and estimated tail lengths. However, these files differ in several details. Therefore, in order to work with the results provided by tailfindR, it is necessary to use the convert_tailfindr_output() function in the initial step, before the check_tails() function.

converted_tailfindr <- ninetails::convert_tailfindr_output(tailfindr_output = '/path/to/tailfindr/output.csv')

This function changes the format of the tailfindR output file to one compatible with Ninetails. Then this file (object) should be passed to the check_tails() function as a nanopolish variable, as in the example below:

results <- ninetails::check_tails(nanopolish = converted_tailfindr,
   sequencing_summary = '/path/to/sequencing_summary.txt',
   workspace = '/path/to/workspace',
   num_cores = 2,
   basecall_group = 'Basecall_1D_000',
   pass_only=TRUE,
   save_dir = '~/Downloads')

Important remarks

Based on our years of experience, we find nanopolish to be more reliable in predicting the poly(A) tail length than tailfindR. In our opinion, nanopolish manages computer resources better and works faster. Therefore, until Ninetails becomes independent of third-party software for determining tail coordinates, we will strongly recommend the use of nanopolish output.

TailfindR, unlike nanopolish, does not provide quality metrics for signals, which Ninetails indirectly uses. Given this, it may turn out that a signal with a quality that prevents proper recognition and classification of potential non-As was included in the analysis. Meanwhile, if such a signal were in the nanopolish polya output, it would be omitted from classification based on the quality tag.

For this reason, Ninetails has not been integrated seamlessly with tailfindR like with nanopolish. We therefore recommend treating results produced with tailfindR output with great caution.