Please excuse my ignorance but I'm a bit confused with the -ins_length flag in velvet.
The Velvet manual says:
So you must use -shortPaired in velveth and specify -ins_length in velvetg. I've always used -ins_length because I want Velvet to use the mate information in my illumina reads and I thought "ins_length" was required to activate this feature (by default is off). But then...
So my question is, what does "If the insert length of a library is unspecified" stated in the manual mean? So you can drop the -ins_length flag and still get pairs treated as paired end? But doesnt that contradict the earlier statement "To activate the use of read pairs, you must specify two parameters: the expected (i.e. average) insert length (or at least a rough estimate)"
Hope some velvet user can clarify this pretty basic piece of information.
The Velvet manual says:
3.2.3 Paired-ends reads
Reminder: you must have flagged your reads as being paired-ends when running velveth (cf. 3.1).
To activate the use of read pairs, you must specify two parameters: the
expected (i.e. average) insert length (or at least a rough estimate), and the
expected short-read k-mer coverage (see 5.2 for more information). The insert
length is understood to be the length of the sequenced fragment, i.e. it includes
the length of the reads themselves. If you expect your insert length to be around
400bp, and your coverage to be around 21.3x, you would type:
> ./velvetg output_directory/ -ins_length 400 -exp_cov 21.3
(... other parameters ...)
Reminder: you must have flagged your reads as being paired-ends when running velveth (cf. 3.1).
To activate the use of read pairs, you must specify two parameters: the
expected (i.e. average) insert length (or at least a rough estimate), and the
expected short-read k-mer coverage (see 5.2 for more information). The insert
length is understood to be the length of the sequenced fragment, i.e. it includes
the length of the reads themselves. If you expect your insert length to be around
400bp, and your coverage to be around 21.3x, you would type:
> ./velvetg output_directory/ -ins_length 400 -exp_cov 21.3
(... other parameters ...)
Automatically measuring the insert length
If the insert length of a library is unspecified, Velvet will attempt to measure
it for you, based on the read-pairs which happen to map onto a common node.
The corresponding ins length∗ and inslength ∗ sd parameters are thus set for
you. This option is designed as a convenience if your assembly is initially good
enough to provide long contigs to bootstrap the process. If that is not the case,
the library insert length will be determined from a small sample size, and is
liable to produce a poor estimate. You should check the Velvet console output
to make sure the insert length estimates are not absurd.
If the insert length of a library is unspecified, Velvet will attempt to measure
it for you, based on the read-pairs which happen to map onto a common node.
The corresponding ins length∗ and inslength ∗ sd parameters are thus set for
you. This option is designed as a convenience if your assembly is initially good
enough to provide long contigs to bootstrap the process. If that is not the case,
the library insert length will be determined from a small sample size, and is
liable to produce a poor estimate. You should check the Velvet console output
to make sure the insert length estimates are not absurd.
Hope some velvet user can clarify this pretty basic piece of information.