Home
Name Modified Size InfoDownloads / Week
Comparison of IRF and detectIR.doc 2015-06-19 41.0 kB
ReadMe.txt 2015-02-13 8.4 kB
TestInfo.txt 2015-02-13 15.5 kB
detectIR.20150213.7z 2015-02-13 25.1 kB
detectIR.20141101.7z 2014-11-03 24.5 kB
detectIR.20140501.7z 2014-05-13 13.0 kB
Totals: 6 Items   127.4 kB 3
detectIR - a MATLAB-based tool for detecting perfect and imperfect inverted repeats. 
If you have any question or comment, please contact with Dr. Chun Liang (liangc@miamioh.edu).

[1]. This software is an open-source tool that follows specifications on website (http://creativecommons.org/licenses/by-nc-sa/3.0/)

[2]. Download and unzip our souce codes - 'detectIR.20150213.7z'

After you download and unzip our source codes ('detectIR.20150213.7z'), you will see a folder named detectIR,
where all source codes and relevant documents are located. 

[3]. System Requirement 

Our tool is MATLAB based, and it relies on MATLAB software environment.  It has been tested using Ubuntu linux (LTS 12.04 and above). 
8G memory is enough for testing our tool with smaller genome such as HIV-1 genome (9.2 KB) and Arabidopsis genome (chromosome 1: 30 MB).  
To use detectIR for larger genomes like Homo sapiens and Zea mays, 32G or more is needed.  

[4]. Please read the file named 'TestInfo.txt' carefully to follow the step-by-step guide in your testing of detectIR.

[5]. Technical Decription of our tool

detectIR is composed of two key MATLAB functions: 
 
(1). detectPerfectIR.m  

This function detects all the perfect inverted repeats (including overlapping and nested IRs) in the given DNA sequence under the given conditions.
Synposis:
  [startPos,endPos,irSeq] = detectPerfectIR(DNA_sequence,minimal_length,maximal_length)

Input:
	seq		= String specifying a DNA sequence. Valid characters are A,C,G,T,R,Y,K,M,S,W,B,D,H,V,N,a,c,g,t,r,y,k,m,s,w,b,d,h,v,n. 

	minLen		= An even integer specifying the minimal length of inverted repeats to be detected.

	maxLen		= An even integer specifying the maximal length of inverted repeats to be detected.

Output:
	startPos	= Cell array containing the starting positions of dectected perfect inverted repeats. Each cell contains the starting positions of IRs of the same length.

	endPos		= Cell array containing the end positions of dectected perfect inverted repeats. Each cell contains the end positions of IRs of the same length.

	irSeq		= Cell array containing the detected perfect inverted repeats. Each cell is a char matrix containing the IRs of the same length, each row of the matrix represent a perfect inverted repeat.

Example:

      [startPos,endPos,irSeq] = detectPerfectIR('ACGATGAGTCATGCTT',2,6)

(2). detectImperfectIR.m  

This function detects all the imperfect inverted repeats (including overlapping and nested IRs) in the given DNA sequence under the given conditions.
Synposis:
  [startPos,misMatchNum,irSeq] = detectImperfectIR(DNA_sequence,minimal_length,maximal_length,maximal_mismatch_number)

Input:
	seq		= String specifying a DNA sequence. Valid characters are A,C,G,T,R,Y,K,M,S,W,B,D,H,V,N,a,c,g,t,r,y,k,m,s,w,b,d,h,v,n. 

	minLen		= A integer specifying the minimal length of imperfect inverted repeats to be detected.

	maxLen		= A integer specifying the maximal length of imperfect inverted repeats to be detected.

	maxMismcNum	= A integer specifying the maximal number of mismatches permit.

Output:
	startPos	= Cell array containing the starting positions of dectected imperfect inverted repeats. Each cell contains the starting positions of IRs of the same length.

	misMatchNum	= Cell array containing the number of mismatches the dectected imperfect inverted repeats contain. Each cell contains the mismatch numbers of IRs of the same length.

	irSeq		= Cell array containing the detected imperfect inverted repeats. Each cell is a char matrix containing IRs of the same length, each row of the matrix represent an imperfect inverted repeat.

Example:

      [startPos,misMatchNum,irSeq] = detectImperfectIR('ACGATGAGTCATGCTT',7,10,3)

(3) We also provide some scripts and MATLAB functions that will facilitate testing and comparing of detectIR and other similar tools.  

[6]. Two alternatives for imperfect inverted repeats detection.

We created two new functions based on the "detectImperfectIR.m" with different parameters that some users may prefer. 

(1). detectImperfectIR_S1.m

This function detects all the imperfect inverted repeats (including overlapping and nested IRs) in the given DNA sequence under the given conditions.
Different from the previous function "detectImperfectIR.m", it separates the imperfections in the inverted repeats into mismatches(unpaired pairs in the stem) and gaps(continous imperfections in the middle).
Synposis:
	[startPos,misMatchNum,gapNum,irSeq] = detectImperfectIR_S1(DNA_sequence,minimal_length,maximal_length,maximal_mismatch_number,maximal_gap_number)

Input:
	seq		= String specifying a DNA sequence. Valid characters are A,C,G,T,R,Y,K,M,S,W,B,D,H,V,N,a,c,g,t,r,y,k,m,s,w,b,d,h,v,n. 

	minLen		= A integer specifying the minimal length of imperfect inverted repeats to be detected.

	maxLen	= A integer specifying the maximal length of imperfect inverted repeats to be detected.

	maxMismcNum	= A integer specifying the maximal number of mismatches (pair) permit.

	maxGapNum	= A integer specifying the maximal number of gaps permit.

Output:
	startPos 	= Cell array containing the starting positions of detected imperfect inverted repeats. Each cell contains the starting positions of IRs of the same length.

	misMatchNum	= Cell array containing the number of mismatches the detected imperfect inverted repeats contain. Each cell contains the mismatch numbers of IRs of the same length.

	gapNum	= Cell array containing the number of gaps the detected imperfect inverted repeats contain. Each cell contains the gap numbers of IRs of the same length.

	irSeq		= Cell array containing the detected imperfect inverted repeats. Each cell is a char matrix containing IRs of the same length, each row of the matrix represent an imperfect inverted repeat.

Example:

	[startPos,misMatchNum,gapNum,irSeq] = detectImperfectIR_S1('ACGATGAGTCATGCTT',7,10,1,1)

(2).  detectImperfectIR_S2.m

This function detects all the imperfect inverted repeats (including overlapping and nested IRs) in the given DNA sequence under the given conditions.
Different from the previous function "detectImperfectIR.m", it seperates the imperfections in the inverted repeats into mismatches(unpaired pairs in the stem) and gaps(continous imperfections in the middle), and
defines the stem length separately.
Synposis:
	[startPos,stemLen,misMatchNum,gapNum,irSeq] = detectImperfectIR_S2(DNA_sequence,minimal_stem_length,maximal_stem_length,maximal_mismatch_number,maximal_gap_number)

Input:
	seq		= String specifying a DNA sequence. Valid characters are A,C,G,T,R,Y,K,M,S,W,B,D,H,V,N,a,c,g,t,r,y,k,m,s,w,b,d,h,v,n. 

	minStemLen	= A integer specifying the minimal length of stem of imperfect inverted repeats to be detected. Stem length reprsents the half length of the pairing part.

	maxStemLen	= A integer specifying the maximal length of stem of imperfect inverted repeats to be detected.

	maxMismcNum	= A integer specifying the maximal number of mismatches (pair) permit.

	maxGapNum	= A integer specifying the maximal number of gaps permit.

 Output:
	startPos	= Cell array containing the starting positions of detected imperfect inverted repeats. Each cell contains the starting positions of IRs of the same length.

	stemLen	= Cell array containing the length of stems of detected imperfect inverted repeats. Each cell contains the stem lengths of IRs of the same length.

	misMatchNum	= Cell array containing the number of mismatches the detected imperfect inverted repeats contain. Each cell contains the mismatch numbers of IRs of the same length.

	gapNum	= Cell array containing the number of gaps the detected imperfect inverted repeats contain. Each cell contains the gap numbers of IRs of the same length.

	irSeq		= Cell array containing the detected imperfect inverted repeats. Each cell is a char matrix containing IRs of the same length, each row of the matrix represent an imperfect inverted repeat.

Example:

	[startPos,stemLen,misMatchNum,gapNum,irSeq] = detectImperfectIR_S2('ACGATGAGTCATGCTT',3,6,1,1)

(3) Demos are provided to show how to use the two functions. The comparison of IRF(Inverted Repeats Finder) and detectIR is also shown in "Comparison of IRF and detectIR.doc".
Source: ReadMe.txt, updated 2015-02-13