# CBMDB: A Database for Accessing, Analyzing, and Mining CBM Information
## 2 Materials and Methods
### Data Acquisition and Compilation  
Comprehensive and reliable data for the CBMDB were collected from various resources including NCBI ([[https://www.ncbi.nlm.nih.gov/](https://www.ncbi.nlm.nih.gov/)]([https://www.ncbi.nlm.nih.gov/](https://www.ncbi.nlm.nih.gov/))), PDB ([[https://www.rcsb.org/](https://www.rcsb.org/)]([https://www.rcsb.org/](https://www.rcsb.org/))), CAZy ([[http://www.cazy.org/](http://www.cazy.org/)]([http://www.cazy.org/](http://www.cazy.org/))), and PubMed ([[https://pubmed.ncbi.nlm.nih.gov/](https://pubmed.ncbi.nlm.nih.gov/)]([https://pubmed.ncbi.nlm.nih.gov/](https://pubmed.ncbi.nlm.nih.gov/))). By searching CAZy with the CBM family name, GenBank accession numbers of carbohydrate-active enzymes were returned. Edirect [12], a searching and batch download tool provided by NCBI, was used to download the amino acid sequences of enzymes containing CBMs using the GenBank accession numbers. Article information on CBM and its related carbohydrate-active enzymes, including title and index number, was downloaded from the PubMed Library ([[https://pubmed.ncbi.nlm.nih.gov/](https://pubmed.ncbi.nlm.nih.gov/)]([https://pubmed.ncbi.nlm.nih.gov/](https://pubmed.ncbi.nlm.nih.gov/))). Shell scripts and Python scripts were used to extract the enzyme type and organism information from the downloaded data. Annotation information for CAZy enzymes and CBMs, and their amino acid sequences obtained from other databases were downloaded in FASTA format. In a file with FASTA formatting, the sequence annotation and sequence were split into two lines, where the sequence annotation line had a unique symbol as a handle. Based on this feature, Python scripts were used to split these data into annotations and sequences using handles, where the annotations were then separated by regular expressions and separators. These split data were then stored in a database in the form of a table.  
HMMER [13] ([[http://hmmer.org/](http://hmmer.org/)]([http://hmmer.org/](http://hmmer.org/)), version 3.3.2) was used for analyzing the primary structure of carbohydrate-active enzymes and for obtaining the position information of CBMs. HMMER's hmmscan program was applied for annotating the amino acid sequence of enzymes against the PFAM database. The domain hits table was selected as the output format of domain annotations. The domain table had 22 whitespace-delimited fields followed by a free text target sequence description. A Python script was used to derive the target name, the position information of primary structures of CBMs, and the E-value and to filter the information. There may be more than one domain per sequence in the domain hits table, so we filtered the annotation results according to the E-value and the target name. The annotation results of the query sequences that were annotated as 'CBM' in the 'target names' column and with an E-value of less than 0.1 were selected as the basis for extracting CBM sequences. For the extraction of CBM sequences, Python scripts were used based on the location information of the CBM provided by the analysis results of the HMMER package. The specific extraction process was to extract the characters in the string according to the position index, where the amino acid sequence was equivalent to the string and the position of the CBM provided the position index. The extracted CBM sequences were then combined with information on their source enzymes and stored in the database in tabular form. Throughout the data-processing process, Shell scripts were used to automate the running of programs and to batch process large amounts of data.