Rainbow v2.0.4

Description
===========
Rainbow package consists of several programs used for RAD-seq related 
clustering and de novo assembly.

Installation
============
Type 'make' to compile Rainbow package. You can copy the executables/scripts
to your specific location (e.g. a directory in your $PATH). Or you can set
the PATH environment that leads to this directory.


Usage of Rainbow package
========================
EXAMPLE: a typical use of Rainbow step by step

	rainbow cluster -1 1.fq  -2 2.fq > rbcluster.out 2> log
	rainbow div -i rbcluster.out -o rbdiv.out
	rainbow merge -o rbasm.out -a -i rbdiv.out -N500

The final output file of 'rainbow merge -a' is based on the final merged
clusters. Each cluster has been locally assembled by 'rainbow merge -a'. For
each cluster, rainbow outputs all assembled contigs seperated by '//' for each
record:
E clusterID
C contigID1
L length
S sequence
N #reads
R readIDs
//
C contigID2
L length
S sequence
N #reads
R readIDs
.
.
.

We have also provided four simple perl scripts that can be used to extract the assembly
information: select_all_rbcontig.pl, select_best_rbcontig.pl, select_sec_rbcontig.pl, select_best_rbcontig_plus_read1.pl

select_all_rbcontig.pl extracts all the assembled contigs, i.g., all the
records

select_best_rbcontig.pl and select_sec_rbcontig.pl extract the longest and
the longest plus the second longest contigs for the final clusters,
respectively

select_best_rbcontig_plus_read1.pl, as select_best_rbcontig.pl, it  extracts the longest contig for each cluster. Besides, it also outputs the read1. If read1 overlaps with the contig, it joins the two as a whole. If read1 does not overlap with the contig, it pads 10 'X' to join the read1 and the contig, thus generating a long contig. 

----------------------------------------------------------------------------------
rainbow 2.0.3 -- <ruanjue@gmail.com, chongzechen@gmail.com>
Usage: rainbow <cmd> [options]

 cluster
  Input  File Format: paired fasta/fastq file(s)
  Output File Format: <seqid:int>\t<cluster_id:int>\t<read1:string>\t<read2:string>
  -1 <string> Input fasta/fastq file, supports multiple '-1'
  -2 <string> Input fasta/fastq file, supports multiple '-2' [null]
  -l <int>    Read length, default: 0 variable
  -m <int>    Maximum mismatches [4]
  -e <int>    Exactly matching threshold [2000]
  -L          Low level of polymorphism
 div
  Input File Format: <seqid:int>\t<cluster_id:int>\t<read1:string>\t<read2:string>
  Output File Format: <seqid:int>\t<cluster_id:int>\t<read1:string>\t<read2:string>[\t<pre_cluster_id:int>]
  -i <string> Input rainbow cluster output file [stdin]
  -o <string> Output file [stdout]
  -k <int>    K_allele, min variants to create a new group [2]
  -K <int>    K_allele, divide regardless of frequency when num of variants exceed this value [50]
  -f <float>  Frequency, min variant frequency to create a new group [0.2]
 merge
  Input File Format: <seqid:int>\t<cluster_id:int>\t<read1:string>\t<read2:string>[\t<pre_cluster_id:int>]
  -i <string> Input rainbow div output file [stdin]
  -a          output assembly 
  -o <string> Output file [stdout]
  -N <int>    Maximum number of divided clusters to merge [300]
  -l <int>    Minimum overlap when assemble two reads (valid only when '-a' is opened) [5]
  -f <float>  Minimum fraction of similarity when assembly (valid only when '-a' is opened) [0.90]
  -r <int>    Minimum number of reads to assemble (valid only when '-a' is opened) [5]
  -R <int>    Maximum number of reads to assemble (valid only when '-a' is opened) [300]

----------------------------------------------------------------------------------
rbasm: a greedy assembler to locally assemble each cluster produced by rainbow or the other
tools. This has been integrated into the merge module. Please always open '-a' option when running
'rainbow merge'.
Local assemble fragments around restriction sites
NOTE: the input file format should be: <seqid:int>\t<cluster_id:int>\t<read1:string>\t<read2:string>[\t<pre_cluster_id:int>]
Usage: rbasm [options]
 -i <string> Input file [STDIN] 
 -o <string> Output file [STDOUT]
 -l <int>    Minium length of overlap [5]
 -s <float>  Minium similiarity of overlap [0.90]
 -r <int>    Minium reads to execute assembly [5]
 -R <int>    Maxium reads to execute assembly [200]

----------------------------------------------------------------------------------
<Obsoleted> rbmergetag: a program merges divided results to evaluate clustering performance.
                  Users should omit this program when de novo assembling RAD-seq reads.
Usage: rbmergetag [options]
Options:
 -i <string>    Input file name [stdin]
 -o <string>    Output file name [stdout]
 -j <cns|merge> Job type, cns: consensus, merge: merging, [merge]
 -m <int>       Maximum mismatches to merge two groups [1]
 -h             Show this document

----------------------------------------------------------------------------------

Change log:
===========
v2.0.1: README and usage infomation updated
v2.0.2: 'merge' options are riched. The 'merge' assembly work can be customized like rbasm now. Thanks Ross Whetten in NCSU for advicing this.
v2.0.3: changed the name of script 'select_best_rbcontig2.pl' to 'select_best_rbcontig_plus_read1.pl', and documented it. 
v2.0.4: fixed a bug that rainbow cannot be compiled in Mac OS
