Compare commits
2 Commits
3.0.0-beta
...
v3.0.0-bet
Author | SHA1 | Date | |
---|---|---|---|
b1f3e082f9 | |||
6c018b403c |
@ -107,14 +107,20 @@ def addOptions(parser):
|
|||||||
help="Defines the method used for estimating the Tm (melting temperature) between the primers and their corresponding "
|
help="Defines the method used for estimating the Tm (melting temperature) between the primers and their corresponding "
|
||||||
"target sequences. SANTALUCIA: 1, or OWCZARZY: 2. Default: 1.")
|
"target sequences. SANTALUCIA: 1, or OWCZARZY: 2. Default: 1.")
|
||||||
|
|
||||||
|
group.add_argument('--keep-primers', '-p',
|
||||||
|
action="store_true",
|
||||||
|
dest="ecopcr:keep-primers",
|
||||||
|
default=False,
|
||||||
|
help="Whether to keep the primers attached to the output sequences (default: the primers are cut out).")
|
||||||
|
|
||||||
group.add_argument('--keep-nucs', '-D',
|
group.add_argument('--keep-nucs', '-D',
|
||||||
action="store",
|
action="store",
|
||||||
dest="ecopcr:keep-nucs",
|
dest="ecopcr:keep-nucs",
|
||||||
metavar="<INTEGER>",
|
metavar="<N>",
|
||||||
type=int,
|
type=int,
|
||||||
default=0,
|
default=0,
|
||||||
help="Keeps the specified number of nucleotides on each side of the in silico amplified sequences, "
|
help="Keeps N nucleotides on each side of the in silico amplified sequences, "
|
||||||
"(already including the amplified DNA fragment plus the two target sequences of the primers).")
|
"not including the primers (implying that primers are automatically kept if N > 0).")
|
||||||
|
|
||||||
group.add_argument('--kingdom-mode', '-k',
|
group.add_argument('--kingdom-mode', '-k',
|
||||||
action="store_true",
|
action="store_true",
|
||||||
@ -185,7 +191,7 @@ def run(config):
|
|||||||
config['ecopcr']['min-length'], config['ecopcr']['max-length'], \
|
config['ecopcr']['min-length'], config['ecopcr']['max-length'], \
|
||||||
restrict_to_taxids_p, ignore_taxids_p, \
|
restrict_to_taxids_p, ignore_taxids_p, \
|
||||||
config['ecopcr']['circular'], config['ecopcr']['salt-concentration'], config['ecopcr']['salt-correction-method'], \
|
config['ecopcr']['circular'], config['ecopcr']['salt-concentration'], config['ecopcr']['salt-correction-method'], \
|
||||||
config['ecopcr']['keep-nucs'], config['ecopcr']['kingdom-mode']) < 0:
|
config['ecopcr']['keep-nucs'], config['ecopcr']['keep-primers'], config['ecopcr']['kingdom-mode']) < 0:
|
||||||
raise Exception("Error running ecopcr")
|
raise Exception("Error running ecopcr")
|
||||||
|
|
||||||
# Save command config in DMS comments
|
# Save command config in DMS comments
|
||||||
|
@ -23,6 +23,7 @@ cdef extern from "obi_ecopcr.h" nogil:
|
|||||||
double salt_concentration,
|
double salt_concentration,
|
||||||
int salt_correction_method,
|
int salt_correction_method,
|
||||||
int keep_nucleotides,
|
int keep_nucleotides,
|
||||||
|
bint keep_primers,
|
||||||
bint kingdom_mode)
|
bint kingdom_mode)
|
||||||
|
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ def ngsfilterIterator(lineiterator,
|
|||||||
split_line = line.split()
|
split_line = line.split()
|
||||||
tags = split_line.pop(2)
|
tags = split_line.pop(2)
|
||||||
tags = tags.split(b":")
|
tags = tags.split(b":")
|
||||||
for t_idx in range(2):
|
for t_idx in range(len(tags)):
|
||||||
if tags[t_idx]==b"-" or tags[t_idx]==b"None" or tags[t_idx]==b"":
|
if tags[t_idx]==b"-" or tags[t_idx]==b"None" or tags[t_idx]==b"":
|
||||||
tags[t_idx] = nastring
|
tags[t_idx] = nastring
|
||||||
if len(tags) == 1: # Forward and reverse tags are the same
|
if len(tags) == 1: # Forward and reverse tags are the same
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
major = 3
|
major = 3
|
||||||
minor = 0
|
minor = 0
|
||||||
serial= '0-beta3'
|
serial= '0-beta5'
|
||||||
|
|
||||||
version ="%d.%02d.%s" % (major,minor,serial)
|
version ="%d.%02d.%s" % (major,minor,serial)
|
||||||
|
@ -77,7 +77,8 @@ static int create_output_columns(Obiview_p o_view, bool kingdom_mode);
|
|||||||
* @param err2 The number of errors in the second primer.
|
* @param err2 The number of errors in the second primer.
|
||||||
* @param strand The DNA strand direction of the amplicon (R(everse) or D(irect)).
|
* @param strand The DNA strand direction of the amplicon (R(everse) or D(irect)).
|
||||||
* @param kingdom_mode Whether the kingdom or the superkingdom informations should be printed to the output.
|
* @param kingdom_mode Whether the kingdom or the superkingdom informations should be printed to the output.
|
||||||
* @param keep_nucleotides Number of nucleotides kept on each side of the amplicon.
|
* @param keep_nucleotides Number of nucleotides kept on each side of the amplicon (not including the primers if they are kept).
|
||||||
|
* @param keep_primers Whether to keep the primers.
|
||||||
* @param i_id_column A pointer on the input sequence identifier column.
|
* @param i_id_column A pointer on the input sequence identifier column.
|
||||||
* @param o_id_column A pointer on the output sequence identifier column.
|
* @param o_id_column A pointer on the output sequence identifier column.
|
||||||
* @param o_ori_seq_len_column A pointer on the original sequence length column.
|
* @param o_ori_seq_len_column A pointer on the original sequence length column.
|
||||||
@ -124,6 +125,7 @@ static int print_seq(Obiview_p i_view, Obiview_p o_view,
|
|||||||
int32_t err1, int32_t err2,
|
int32_t err1, int32_t err2,
|
||||||
char strand, bool kingdom_mode,
|
char strand, bool kingdom_mode,
|
||||||
int keep_nucleotides,
|
int keep_nucleotides,
|
||||||
|
bool keep_primers,
|
||||||
OBIDMS_column_p i_id_column, OBIDMS_column_p o_id_column, OBIDMS_column_p o_ori_seq_len_column,
|
OBIDMS_column_p i_id_column, OBIDMS_column_p o_id_column, OBIDMS_column_p o_ori_seq_len_column,
|
||||||
OBIDMS_column_p o_amplicon_column, OBIDMS_column_p o_amplicon_length_column,
|
OBIDMS_column_p o_amplicon_column, OBIDMS_column_p o_amplicon_length_column,
|
||||||
OBIDMS_column_p o_taxid_column, OBIDMS_column_p o_rank_column, OBIDMS_column_p o_name_column,
|
OBIDMS_column_p o_taxid_column, OBIDMS_column_p o_rank_column, OBIDMS_column_p o_name_column,
|
||||||
@ -328,6 +330,7 @@ static int print_seq(Obiview_p i_view, Obiview_p o_view,
|
|||||||
int32_t err1, int32_t err2,
|
int32_t err1, int32_t err2,
|
||||||
char strand, bool kingdom_mode,
|
char strand, bool kingdom_mode,
|
||||||
int keep_nucleotides,
|
int keep_nucleotides,
|
||||||
|
bool keep_primers,
|
||||||
OBIDMS_column_p i_id_column, OBIDMS_column_p o_id_column, OBIDMS_column_p o_ori_seq_len_column,
|
OBIDMS_column_p i_id_column, OBIDMS_column_p o_id_column, OBIDMS_column_p o_ori_seq_len_column,
|
||||||
OBIDMS_column_p o_amplicon_column, OBIDMS_column_p o_amplicon_length_column,
|
OBIDMS_column_p o_amplicon_column, OBIDMS_column_p o_amplicon_length_column,
|
||||||
OBIDMS_column_p o_taxid_column, OBIDMS_column_p o_rank_column, OBIDMS_column_p o_name_column,
|
OBIDMS_column_p o_taxid_column, OBIDMS_column_p o_rank_column, OBIDMS_column_p o_name_column,
|
||||||
@ -382,7 +385,7 @@ static int print_seq(Obiview_p i_view, Obiview_p o_view,
|
|||||||
oligo2[o1->patlen] = 0;
|
oligo2[o1->patlen] = 0;
|
||||||
error2 = err1;
|
error2 = err1;
|
||||||
|
|
||||||
if (keep_nucleotides == 0)
|
if (!keep_primers)
|
||||||
amplicon+=o2->patlen;
|
amplicon+=o2->patlen;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -401,7 +404,7 @@ static int print_seq(Obiview_p i_view, Obiview_p o_view,
|
|||||||
oligo2[o2->patlen] = 0;
|
oligo2[o2->patlen] = 0;
|
||||||
error2 = err2;
|
error2 = err2;
|
||||||
|
|
||||||
if (keep_nucleotides==0)
|
if (!keep_primers)
|
||||||
amplicon+=o1->patlen;
|
amplicon+=o1->patlen;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -411,16 +414,11 @@ static int print_seq(Obiview_p i_view, Obiview_p o_view,
|
|||||||
}
|
}
|
||||||
|
|
||||||
ecoComplementSequence(oligo2);
|
ecoComplementSequence(oligo2);
|
||||||
if (keep_nucleotides == 0)
|
if (!keep_primers)
|
||||||
amplicon[amplicon_len]=0;
|
amplicon[amplicon_len]=0;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
amplicon_len = ldelta+rdelta+amplicon_len;
|
amplicon_len = ldelta+rdelta+amplicon_len;
|
||||||
for (i=0; i<ldelta; i++)
|
|
||||||
amplicon[i]|=32;
|
|
||||||
for (i=1; i<=rdelta; i++)
|
|
||||||
amplicon[amplicon_len-i]|=32;
|
|
||||||
|
|
||||||
amplicon[amplicon_len] = 0;
|
amplicon[amplicon_len] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -659,6 +657,7 @@ int obi_ecopcr(const char* i_dms_name,
|
|||||||
double salt,
|
double salt,
|
||||||
int saltmethod,
|
int saltmethod,
|
||||||
int keep_nucleotides,
|
int keep_nucleotides,
|
||||||
|
bool keep_primers,
|
||||||
bool kingdom_mode)
|
bool kingdom_mode)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -717,6 +716,9 @@ int obi_ecopcr(const char* i_dms_name,
|
|||||||
|
|
||||||
signal(SIGINT, sig_handler);
|
signal(SIGINT, sig_handler);
|
||||||
|
|
||||||
|
if (keep_nucleotides > 0)
|
||||||
|
keep_primers = true;
|
||||||
|
|
||||||
if (circular)
|
if (circular)
|
||||||
{
|
{
|
||||||
circular = strlen(primer1);
|
circular = strlen(primer1);
|
||||||
@ -1076,6 +1078,7 @@ int obi_ecopcr(const char* i_dms_name,
|
|||||||
erri, errj,
|
erri, errj,
|
||||||
'D', kingdom_mode,
|
'D', kingdom_mode,
|
||||||
keep_nucleotides,
|
keep_nucleotides,
|
||||||
|
keep_primers,
|
||||||
i_id_column, o_id_column, o_ori_seq_len_column,
|
i_id_column, o_id_column, o_ori_seq_len_column,
|
||||||
o_amplicon_column, o_amplicon_length_column,
|
o_amplicon_column, o_amplicon_length_column,
|
||||||
o_taxid_column, o_rank_column, o_name_column,
|
o_taxid_column, o_rank_column, o_name_column,
|
||||||
@ -1163,6 +1166,7 @@ int obi_ecopcr(const char* i_dms_name,
|
|||||||
erri, errj,
|
erri, errj,
|
||||||
'R', kingdom_mode,
|
'R', kingdom_mode,
|
||||||
keep_nucleotides,
|
keep_nucleotides,
|
||||||
|
keep_primers,
|
||||||
i_id_column, o_id_column, o_ori_seq_len_column,
|
i_id_column, o_id_column, o_ori_seq_len_column,
|
||||||
o_amplicon_column, o_amplicon_length_column,
|
o_amplicon_column, o_amplicon_length_column,
|
||||||
o_taxid_column, o_rank_column, o_name_column,
|
o_taxid_column, o_rank_column, o_name_column,
|
||||||
|
@ -93,8 +93,8 @@
|
|||||||
* @param salt_concentration The salt concentration used for estimating the Tm.
|
* @param salt_concentration The salt concentration used for estimating the Tm.
|
||||||
* @param salt_correction_method The method used for estimating the Tm (melting temperature) between the primers and their corresponding
|
* @param salt_correction_method The method used for estimating the Tm (melting temperature) between the primers and their corresponding
|
||||||
* target sequences. SANTALUCIA: 1, or OWCZARZY: 2.
|
* target sequences. SANTALUCIA: 1, or OWCZARZY: 2.
|
||||||
* @param keep_nucleotides The number of nucleotides to keep on each side of the in silico amplified sequences
|
* @param keep_nucleotides The number of nucleotides to keep on each side of the in silico amplified sequences, not including primers (primers automatically entirely kept if > 0).
|
||||||
* (already including the amplified DNA fragment plus the two target sequences of the primers).
|
* @param keep_primers Whether primers are kept attached to the output sequences.
|
||||||
* @param kingdom_mode Whether the kingdom or the superkingdom informations should be printed to the output.
|
* @param kingdom_mode Whether the kingdom or the superkingdom informations should be printed to the output.
|
||||||
*
|
*
|
||||||
* @returns A value indicating the success of the operation.
|
* @returns A value indicating the success of the operation.
|
||||||
@ -121,6 +121,7 @@ int obi_ecopcr(const char* i_dms_name,
|
|||||||
double salt_concentration,
|
double salt_concentration,
|
||||||
int salt_correction_method,
|
int salt_correction_method,
|
||||||
int keep_nucleotides,
|
int keep_nucleotides,
|
||||||
|
bool keep_primers,
|
||||||
bool kingdom_mode);
|
bool kingdom_mode);
|
||||||
|
|
||||||
#endif /* OBI_ECOPCR_H_ */
|
#endif /* OBI_ECOPCR_H_ */
|
||||||
|
Reference in New Issue
Block a user