MATLAB Answers

How to pre-process Next Generation Sequencing data using MATLAB?

5 views (last 30 days)
E V on 22 Sep 2016
Commented: E V on 22 Sep 2016
I am trying to use MATLAB for pre-processing of NGS data. Can anyone suggest a comprehensive code for this procedure. I have tried codes suggested in this page but the codes can only be used for a limited number of tasks. For example I don't know how to filter (or mask) reads shorter than 10 nucleotides or how to treat paired-end reads. Moreover, how can I filter reads that have more than two N nucleotides? can anyone suggest a comprehensive reference for these tasks?


Sign in to comment.

Accepted Answer

Luuk van Oosten
Luuk van Oosten on 22 Sep 2016
Dear Ehsan,
The page you refer to is a good start to get familiar with processing NGS data, but there are (a lot more!!) functions in the BioInformatics toolbox that will help you with preprocessing. Now to your specific questions:
(1) how to filter (or mask) reads shorter than 10 nucleotides:
You can use the 'seqfilter' function ( over here) and then using something like the following:
your_filtered_data = seqfilter(yourdata.fastq, 'Method','MinLength','Threshold',10)
(2) how to treat paired-end reads
You are in luck, as there exist this thingy called 'seqsplitpe', which allows you to split merged paired-end sequences into separate files (if that is something you want).
(3) how can I filter reads that have more than two N nucleotides
This is probably a combination of (a) importing your sequences and then (b) searching your sequences for your specific repeat of >N nucleotides. I believe there are no pre-fabricated functions in MATLAB for this, but there are numerous functions which allow you to analyze sequences in the Bioinformatics Toolbox.
Best regards

  1 Comment

E V on 22 Sep 2016
Thank you very much Luuk.
I use an older version of MATLAB and I don't have access to commands like "seqfilter" or "seqtrim". I think I have to upgrade my software.
Best regards

Sign in to comment.

More Answers (0)

Sign in to answer this question.