Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OBITools3
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
23
Issues
23
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
Operations
Operations
Incidents
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
OBITools
OBITools3
Commits
71b1a43d
Commit
71b1a43d
authored
Apr 21, 2017
by
Celine Mercier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added functions to clone views with a simpler API
parent
1725b8b8
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
93 additions
and
6 deletions
+93
-6
src/obiview.c
src/obiview.c
+48
-4
src/obiview.h
src/obiview.h
+45
-2
No files found.
src/obiview.c
View file @
71b1a43d
...
...
@@ -1802,6 +1802,11 @@ Obiview_p obi_new_view_nuc_seqs(OBIDMS_p dms, const char* view_name, Obiview_p v
obidebug
(
1
,
"Trying to clone a non-NUC SEQS view to create a NUC SEQS view"
);
return
NULL
;
}
// Check if there is a quality column
if
(
obi_view_get_column
(
view_to_clone
,
QUALITY_COLUMN
)
!=
NULL
)
quality_column
=
true
;
else
quality_column
=
false
;
}
view
=
obi_new_view
(
dms
,
view_name
,
view_to_clone
,
line_selection
,
comments
);
...
...
@@ -1874,7 +1879,7 @@ Obiview_p obi_new_view_nuc_seqs(OBIDMS_p dms, const char* view_name, Obiview_p v
}
Obiview_p
obi_new_view_nuc_seqs_cloned_from_name
(
OBIDMS_p
dms
,
const
char
*
view_name
,
const
char
*
view_to_clone_name
,
index_t
*
line_selection
,
const
char
*
comments
,
bool
quality_column
)
Obiview_p
obi_new_view_nuc_seqs_cloned_from_name
(
OBIDMS_p
dms
,
const
char
*
view_name
,
const
char
*
view_to_clone_name
,
index_t
*
line_selection
,
const
char
*
comments
)
{
Obiview_p
view
;
Obiview_p
view_to_clone
;
...
...
@@ -1882,7 +1887,43 @@ Obiview_p obi_new_view_nuc_seqs_cloned_from_name(OBIDMS_p dms, const char* view_
view_to_clone
=
obi_open_view
(
dms
,
view_to_clone_name
);
if
(
view_to_clone
==
NULL
)
return
NULL
;
view
=
obi_new_view_nuc_seqs
(
dms
,
view_name
,
view_to_clone
,
line_selection
,
comments
,
quality_column
);
view
=
obi_new_view_nuc_seqs
(
dms
,
view_name
,
view_to_clone
,
line_selection
,
comments
,
false
);
close_view
(
view_to_clone
);
return
view
;
}
Obiview_p
obi_clone_view
(
OBIDMS_p
dms
,
Obiview_p
view_to_clone
,
const
char
*
view_name
,
index_t
*
line_selection
,
const
char
*
comments
)
{
if
(
view_to_clone
==
NULL
)
{
obi_set_errno
(
OBIVIEW_ERROR
);
obidebug
(
1
,
"
\n
Error: pointer on view to clone is NULL"
);
return
NULL
;
}
if
(
strcmp
((
view_to_clone
->
infos
)
->
view_type
,
VIEW_TYPE_NUC_SEQS
)
==
0
)
return
obi_new_view_nuc_seqs
(
dms
,
view_name
,
view_to_clone
,
line_selection
,
comments
,
false
);
else
// Non-typed view
return
obi_new_view
(
dms
,
view_name
,
view_to_clone
,
line_selection
,
comments
);
}
Obiview_p
obi_clone_view_from_name
(
OBIDMS_p
dms
,
const
char
*
view_to_clone_name
,
const
char
*
view_name
,
index_t
*
line_selection
,
const
char
*
comments
)
{
Obiview_p
view
;
Obiview_p
view_to_clone
;
view_to_clone
=
obi_open_view
(
dms
,
view_to_clone_name
);
if
(
view_to_clone
==
NULL
)
{
obidebug
(
1
,
"
\n
Error: could not open view to clone"
);
return
NULL
;
}
view
=
obi_clone_view
(
dms
,
view_to_clone
,
view_name
,
line_selection
,
comments
);
close_view
(
view_to_clone
);
...
...
@@ -2242,7 +2283,6 @@ int obi_view_add_column(Obiview_p view,
return
-
1
;
}
// If an alias is not defined, it's the original name of the column. // TODO discuss
if
(
alias
==
NULL
)
alias
=
column_name
;
...
...
@@ -2342,7 +2382,11 @@ int obi_view_delete_column(Obiview_p view, const char* column_name)
OBIDMS_column_p
obi_view_get_column
(
Obiview_p
view
,
const
char
*
column_name
)
{
return
(
OBIDMS_column_p
)(
*
((
OBIDMS_column_p
*
)(
ht_get
(
view
->
column_dict
,
column_name
))));
OBIDMS_column_p
*
column_pp
;
column_pp
=
(
OBIDMS_column_p
*
)(
ht_get
(
view
->
column_dict
,
column_name
));
if
(
column_pp
==
NULL
)
return
NULL
;
return
(
*
column_pp
);
}
...
...
src/obiview.h
View file @
71b1a43d
...
...
@@ -227,7 +227,6 @@ Obiview_p obi_new_view_nuc_seqs(OBIDMS_p dms, const char* view_name, Obiview_p v
* @param line_selection Eventually a pointer on a list of indexes corresponding to a line selection to use with the view to clone
* if there is one. NULL if there is no line selection or no view to clone.
* @param comments Eventually, comments to associate with the view. NULL if not.
* @param quality_column Whether or not a sequence quality column is associated with the view.
*
* @returns A pointer to the newly created view structure.
* @retval NULL if an error occurred.
...
...
@@ -235,7 +234,51 @@ Obiview_p obi_new_view_nuc_seqs(OBIDMS_p dms, const char* view_name, Obiview_p v
* @since February 2016
* @author Celine Mercier (celine.mercier@metabarcoding.org)
*/
Obiview_p
obi_new_view_nuc_seqs_cloned_from_name
(
OBIDMS_p
dms
,
const
char
*
view_name
,
const
char
*
view_to_clone_name
,
index_t
*
line_selection
,
const
char
*
comments
,
bool
quality_column
);
Obiview_p
obi_new_view_nuc_seqs_cloned_from_name
(
OBIDMS_p
dms
,
const
char
*
view_name
,
const
char
*
view_to_clone_name
,
index_t
*
line_selection
,
const
char
*
comments
);
/**
* @brief Clones a view using a pointer on the view to clone.
*
* The new view has the same type as the cloned one.
* Fails if a view with the same name already exists.
*
* @param dms A pointer on the OBIDMS.
* @param view_to_clone A pointer on the opened view to clone to create the new one.
* @param view_name The unique name of the new view.
* @param line_selection Eventually a pointer on a list of indexes corresponding to a line selection to use with the view to clone
* if there is one. NULL if there is no line selection or no view to clone.
* @param comments Eventually, comments to associate with the view. NULL if not.
*
* @returns A pointer to the newly created view structure.
* @retval NULL if an error occurred.
*
* @since April 2017
* @author Celine Mercier (celine.mercier@metabarcoding.org)
*/
Obiview_p
obi_clone_view
(
OBIDMS_p
dms
,
Obiview_p
view_to_clone
,
const
char
*
view_name
,
index_t
*
line_selection
,
const
char
*
comments
);
/**
* @brief Clones a view using the name of the view to clone.
*
* The new view has the same type as the cloned one.
* Fails if a view with the same name already exists.
*
* @param dms A pointer on the OBIDMS.
* @param view_to_clone_name The name of the view to clone.
* @param view_name The unique name of the new view.
* @param line_selection Eventually a pointer on a list of indexes corresponding to a line selection to use with the view to clone
* if there is one. NULL if there is no line selection or no view to clone.
* @param comments Eventually, comments to associate with the view. NULL if not.
*
* @returns A pointer to the newly created view structure.
* @retval NULL if an error occurred.
*
* @since April 2017
* @author Celine Mercier (celine.mercier@metabarcoding.org)
*/
Obiview_p
obi_clone_view_from_name
(
OBIDMS_p
dms
,
const
char
*
view_to_clone_name
,
const
char
*
view_name
,
index_t
*
line_selection
,
const
char
*
comments
);
/**
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment