Read data from Short Oligonucleotide Analysis Package (SOAP) file
SOAPStruct = soapread(File)
SOAPStruct = soapread(File,Name,Value)
Either of the following:
The soapread function reads SOAP-formatted files (version 2.15).
Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.
Scalar or vector that controls the reading of a single sequence entry or block of sequence entries from a SOAP-formatted file containing multiple sequences. Enter a scalar N, to read the Nth entry in the file. Enter a 1-by-2 vector [M1, M2], to read a block of entries starting at the M1 entry and ending at the M2 entry. To read all remaining entries in the file starting at the M1 entry, enter a positive value for M1 and enter Inf for M2.
Logical specifying whether or not to include the AlignDetails field in the SOAPStruct output argument. The AlignDetails field includes information on mismatches, insertions, and deletions in the alignment. Choices are true (default) or false.
An N-by-1 array of structures containing sequence alignment and mapping information from a SOAP-formatted file, where N is the number of alignment records stored in the SOAP-formatted file. Each structure contains the following fields.
Read the alignment records (entries) from the sample01.soap file into a MATLAB array of structures and access some of the data:
% Read the alignment records stored in the file sample01.soap data = soapread('sample01.soap')
data = 17x1 struct array with fields: QueryName Sequence Quality NumHits PairedEndSourceFile Length Strand ReferenceName Position AlignDetails
% Access the quality score for the 6th entry data(6).Quality
ans = <>.>>>8>;:1>>>3>6>
% Determine the strand direction (forward or reverse) of the reference % sequence to which the 12th entry aligns data(12).Strand
ans = -
Read a block of alignment records (entries) from the sample01.soap file into a MATLAB array of structures:
% Read a block of six entries from a SOAP file data_5_10 = soapread('sample01.soap','blockread', [5 10])
data_5_10 = 6x1 struct array with fields: QueryName Sequence Quality NumHits PairedEndSourceFile Length Strand ReferenceName Position AlignDetails
If your SOAP-formatted file is too large to read using available memory, try either of the following:
Use the BlockRead name-value pair arguments to read a subset of entries.
Create a BioIndexedFile object from the SOAP-formatted file (using 'TABLE' for the Format), and then access the entries using methods of the BioIndexedFile class.
 Li, R., Yu, C., Li, Y., Lam, T., Yiu, S., Kristiansen, K., and Wang, J. (2009). SOAP2: an improved ultrafast tool for short read alignment. Bioinformatics 25, 15, 1966–1967.
 Li, R., Li, Y., Kristiansen, K., and Wang, J. (2008). SOAP: short oligonucleotide alignment program. Bioinformatics 24(5), 713–714.