0% found this document useful (0 votes)
19 views74 pages

NG-Tax 2.0: High-Throughput Amplicon Analysis

Uploaded by

Jose Manuel
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views74 pages

NG-Tax 2.0: High-Throughput Amplicon Analysis

Uploaded by

Jose Manuel
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

8/3/24, 12:27 NG-Tax 2.

0: A Semantic Framework for High-throughput Amplicon Analysis — NG-Tax

rint to PDF NG-Tax 2.0: A Semantic


Framework for High-
throughput Amplicon Analysis
Contents
Summary

Summary

NG-Tax 2.0 is a semantic framework for FAIR high-throughput analysis and classification of
marker gene amplicon sequences including bacterial and archaeal 16S ribosomal RNA (rRNA),
eukaryotic 18S rRNA and ribosomal intergenic transcribed spacer sequences. It can directly
use single or merged reads, paired-end reads and unmerged paired-end reads from long
range fragments as input to generate de novo Amplicon Sequence Variants (ASV). Using the
RDF data model, ASV’s can be automatically stored in a graph database as objects that link
ASV sequences with the full data-wise and element-wise provenance, thereby achieving the
level of interoperability required to utilize such data to its full potential. The graph database
can be directly queried, allowing for comparative analyses of over thousands of samples and
is connected with an interactive Rshiny toolbox for analysis and visualization of (meta) data.
Additionally, NG-Tax 2.0 exports an extended BIOM 1.0 (JSON) file as starting point for further
analyses by other means. The extended BIOM file contains new attribute types to include
Skip to main content

[Link] 1/2
8/3/24, 12:27 NG-Tax 2.0: A Semantic Framework for High-throughput Amplicon Analysis — NG-Tax

information about the command arguments used, the sequences of the ASVs formed,
classification confidence scores and is backwards compatible.

The performance of NG-Tax 2.0 was compared with DADA2, using the plugin in the QIIME 2
analysis pipeline. Fourteen 16S rRNA gene amplicon mock community samples were obtained
from the literature and evaluated. Precision of NG-Tax 2.0 was significantly higher with an
average of 0.95 vs 0.58 for QIIME2-DADA2 while recall was comparable with an average of
0.85 and 0.77, respectively.

NG-Tax 2.0 is written in Java. The code, the ontology, a Galaxy platform implementation, the
analysis toolbox, tutorials and example SPARQL queries are freely available at
[Link] under the MIT License.

Cite this article


Poncheewin W., Hermes, G.D.A. et al. NG-Tax 2.0: A Semantic Framework for High-throughput
Amplicon Analysis. Frontiers in Genetics 10 (2019): 1366. doi: 10.3389/fgene.2019.01366

Next
Availability

[Link] 2/2
8/3/24, 12:27 Availability — NG-Tax

Availability
Contents
NG-Tax 2.0
Toolbox
Mockrobiota analysis results

NG-Tax 2.0
Galaxy docker (see NG-Tax galaxy tutorial section for more details)
Standalone JAR file: [Link] (see NG-Tax commandline
tutorial for more details )
Git repository:  wurssb/NG-Tax (also contains galaxy xml files)

Toolbox
Git repository:  wurssb/NGTaxToolbox

Mockrobiota analysis results


The data can be found here.

Previous Next
NG-Tax 2.0: A Semantic Command line usage
Framework for High-
throughput Amplicon Analysis

[Link] 1/1
8/3/24, 12:27 Command line usage — NG-Tax

rint to PDF Command line usage


Contents
Standalone JAR file
Requirements
Command line options

Standalone JAR file


To use the commandline, the standalone JAR file needs to be downloaded.
To download the latest NGTax program, go to [Link] and
download the latest version (you can sort by date). At this website you will also find the
datasets used for the exercises, the silva databases and if you dare, for the latest updates you
can try the development version of NG-Tax.

Requirements
Java (JDK) version: 1.8

Command line options


To run NG-Tax on the command line the following options are required to run the program:

FastQ files: -fS, -fastQsets


Mapping file: -mapFile
Forward primer sequence: -for_p, -sequence_forward
Reverse primer sequence: -rev_p, -sequence_reverse
Reference database: -refdb, -referencedatabase
Biom file name: -b, -biomfile

Skip to main content

[Link] 1/5
8/3/24, 12:27 Command line usage — NG-Tax

Be aware of -for_read_len and -rev_read_len, the default value is 70 and when attempting to
analyse reads shorter they will be discarded.

The next sections are examples of command line usage of NGTax 2.0 using the following
input files.

Paired-end reads
java -jar [Link] -fS ./small_1.fastq,./small_2.fastq -mapFile small_mapping.txt -

Use SILVA Fasta zipped format for a database input.


Forward and reverse fastq files are separated by comma (“,”) where multiple libraries are
separated by space (” “).

For example: ./project/fastq1_1.fastq,./project/fastq1_2.fastq


./project/fastq2_1.fastq,./project/fastq2_2.fastq

Demultiplexed paired-end reads


# Move the test fastq files into the `my_demultiplexed_folder` folder.
# mkdir my_demultiplexed_folder
# cp small_*.fastq my_demultiplexed_folder
java -jar [Link] -folder ./my_demultiplexed_folder/ -mapFile mapping_file_test.tx

Input folder should consists of only the input fastq files.


Paired reads should be named such that the files follow one other.
Mapping file will be generated automatically and saved to the -mapFile location.

Single-end reads
java -jar [Link] -single -fS ./small_1.fastq -mapFile small_mapping.txt -for_p "[

Overview
Skip toyou
To obtain an overview of all possibilities main
cancontent
run java -jar [Link]
[Link] 2/5
8/3/24, 12:27 Command line usage — NG-Tax

java -jar [Link]


Usage: <main class> [options]
Options:
-barcodeSplitting
Raw data is split into individual fastq files based on the given barcode
in the mapping file
Default: false
-biom2rdf
Directly convert existing BIOM file(s) into RDF format, space separated.
EX. 'biom1 biom2 biom3
Default: false
-db2rdf
Convert reference database to an RDF reference database
Default: false
-demultiplex
Demultiplex data for submission
Default: false
-exportFasta
Export fasta
Default: false
-help

-ngtax
Runs the NG-Tax pipeline
Default: false
-otu2fasta
Conversion of ASV's from Biom file to FASTA
Default: false
-reClassify
ReClassify the existing NG-Tax's BIOM file using a new database.
Default: false
-remultiplex
Remultiplex the data to conveniently analyse the demultiplexed samples.
Default: false

* required parameter

To get help for the core of NG-tax, ASV identification and classification you can run java -jar
[Link] -ngtax

java -jar [Link] -ngtax


The following options are required: [-b | -biomfile], [-for_p | -sequence_forward]
Usage: <main class> [options]
Options:
--help

* -b, -biomfile
BiomFile location
-cR, -chimeraRatio
ratio otu_parent_abundance/otu_chimera_abundance (recommended 2, both
otu parents must be two times more abundant than the otu chimera)
Default: 2.0
-clR, -classifyRatio
the minimum ratio that a taxon needs to be compared to others
Default: 0.8
-email Skip to main content

[Link] 3/5
8/3/24, 12:27 Command line usage — NG-Tax
User email (Galaxy Only)
-errorCorr, -errorCorrClusPer
Number of mismatch(es) allowed for each ASV clusters (only one mismatch
recommended, input: 1)
Default: 1
-fS, -fastQ
Either a set of fastQfiles seperated by a space 'fastQF1,fastQR1
fastQF2,fastQR2'
-fQF, -fastQFiles
Create fastQ files for each library
Default: false
-fastaFileLocation
output Fasta file location
-folder
Folder location of the fastQfiles, should be a clean folder with only
the input (fastq) files
-for_read_len
Forward read length
Default: 70
-identLvl, -identityLevel
identity level between parents and chimera (recommended 100, no error
allowed, chimera as perfect combination of two otus)
Default: 100.0
-log
Location of the log file
-mapFile
Mapping file containing metadata [txt]
-m, -markIfMoreThen1
Mark the classification with *~ if there are more then 1 possible
spieces
Default: false
-OTUSizeT, -minimumOTUSize
Minimum size of an ASV before minimum threshold filtering
Default: 100
-minPerT, -minimumThreshold
Minimum threshold detectable, expressed in percentage
Default: 0.1
-nomismatch
Primers are not allowed to have a mismatch when a database is created
using a simple FASTA file
Default: false
-prefixId
Prefix for the id of the otu's
-primersRemoved
Are the primers already removed?
Default: false
-project
Project description (Galaxy Only)
-refdb, -referencedatabase
The reference fasta file (Aligned or not aligned)
-rja, -rejectedASVAnnotation
The number of rejected ASVs to be classified according to its abundance
(-1 to classify everything)
Default: 100
-rev_read_len
Reverse read length
Default: 70
* -for_p, -sequence_forward
Forward primer sequence (degenerate positions between brackets or use
degenerate letters) Skip to main content

[Link] 4/5
8/3/24, 12:27 Command line usage — NG-Tax
-rev_p, -sequence_reverse
Reverse primer sequence (degenerate positions between brackets or use
degenerate letters)
-shannon, -shannonEvenness
Minimum threshold based upon the Shannons equitability method
(dynamically estimated assuming that each ASV represents a species)
Default: false
-single
Single end reads
Default: false
-skipFiltering
Skip filtering step reuse data already generated
Default: false
-t, -ttl
Generate a BIOM RDF file

* required parameter

Previous Next
Availability Contact

[Link] 5/5
8/3/24, 12:27 Contact — NG-Tax

Contact
You can create issues or contact us directly.

Previous Next
Command line usage Workflow

[Link] 1/1
8/3/24, 12:27 Workflow — NG-Tax

Workflow
Contents
NG-Tax Workflow

NG-Tax Workflow
There is a workflow written in CWL available for the NG-Tax pipeline. The workflow is
available on the WorkflowHub and can be executed using CWL. CWL is a standard for
describing workflows and executing them on different platforms.

Workflow Inputs

reverse reads forward reads Reverse read length Reverse read length Forward primer Reverse primer Primers are removed Reference database number of threads Sample name Subfragment name Metadata file

fastqs files fastqs files

fastqc reads_to_folder rev_read_len for_read_len forward_primer reverse_primer primersRemoved reference_db sample fragment

folder identifier fragment metadata

ngtax threads identifier

filesfiles input

ngtax_files_to_folder ngtax_to_tsv-fasta

files input_table fasta files files files files

picrust2 fasta phyloseq_files_to_folder

indir fasta

files files files folders folders folders folders folders folders files folder_compression files files

files

fastqc_files_to_folder picrust_files_to_folder

files_to_folder_fastqc turtle files_to_folder_ngtax files_to_folder_picrust2 files_to_folder_phyloseq

Workflow Outputs

Executing the workflow


To execute the NG-Tax workflow you need a CWL workflow runner.

The easiest is to use cwltool and it can be installed using pip install cwltool .

To start the workflow you can use the following command

cwltool
[Link]

Skip to main content

[Link] 1/2
8/3/24, 12:27 Workflow — NG-Tax

This will download the workflow and ensures that it can be executed. Be aware that the
workflow makes use of docker containers and this is required to be installed on your system.

It is currently developed to process a single sample at a time. Parallelisation or library


processing is not yet implemented.

Input

usage: [Link]

[Link]

Result
The outcome will be a folder with multiple files. The most important documents are related
to:

Quality control using fastqc


The classification files in biom and RDF format
Picrust annotation files
Phyloseq TSV files

Previous Next
Contact File layout

[Link] 2/2
8/3/24, 12:28 File layout — NG-Tax

File layout
Contents
NG-Tax file layout
Mapping file
Pair-end FASTQ files
Single-end FASTQ files
Database

NG-Tax file layout


Files that are required to use NG-Tax are:

A mapping file
Paired or single end FASTQ files

Mapping file
The mapping file should be tab-delimited format and contain several different columns
with the header names:

#sampleID, barcodeSequences, library number, direction, library name, project name, region,
location, and description.

The columns after description can be used to put metadata if available.


An example of the layout:

Example of a paired-end FASTQ file:

Example of a demultiplexed paired-end FASTQ file:


Skip to main content

[Link] 1/4
8/3/24, 12:28 File layout — NG-Tax

Explaining the headers:


#sampleID: This is a unique name for that sample.
forwardBarcodeSequence: This is the barcode sequence for the forward FASTQ file. *
reverseBarcodeSequence: This is the barcode sequence for the reverse FASTQ file. **
LibraryNumber: This is a positive number, usually starting at 1, and increases by one for
each library. ***
Direction: Use ‘p’ for paired end sequences and ‘s’ for single end sequences.
LibraryName: Name of the FASTQ files composed to the library. ProjectName: The name of
the project.
Region: The 16S region sequenced.
Location: If known, give the location.
Description: This column can be add in as a last column to give a short description of the
sample.

Note
* If the forward barcode is not known, the column is still compulsory but the content
can be empty.
** If the reverse barcode is not known, the column is not compulsory. Can not only use
a reverse barcode sequence.
*** Barcodes in each library must be unique.

For an example of the mapping file right click [download]


([Link] and select 'save link
as'.

Pair-end FASTQ files


Data needs to be high read count.
Each sequence needs to be in standard FASTQ format as follows:
Start with a header which starts with a ‘>’,
Followed by the sequence
A ‘+’ sign.
Skip to
Finally the quality score, each onmain content
a separate line.
[Link] 2/4
8/3/24, 12:28 File layout — NG-Tax

FASTQ files need to be pair end in separate files, the paired file is separated by the same
header with different identifier called forward and reverse files.
The paired files need to be the same length.

Example of forward FASTQ file:

Example of reverse FASTQ file:

Single-end FASTQ files


Data needs to be high read count.
Each sequence needs to be in standard FASTQ format as follows:
Start with an header which starts with a ‘>’,
Followed by the sequence
A ‘+’ sign
Finally the quality score, each on a separate line.

Example of a single end FASTQ file:

Database
Generally, SILVA database can be use for taxonomic assignment. The program supported
both aligned and unaligned file format.

Latest SILVA database (v.132): Unaligned and Aligned

Noted that custom databse in FASTA format could also be use for taxonomic
classification.
Skip to main content

[Link] 3/4
8/3/24, 12:28 File layout — NG-Tax

This custom database must contain the primer for the hypervariable region of interest. The
header must contain an identifier follow by a space. Then the maximum of 7 taxonomic
lineage, separated by ‘;’ and cannot starts with ‘Eukaryota’. Example: “>Identifier
Kingdom;Phylum;Class;Order;Family;Genus;Species”

Previous Next
Workflow NG-Tax’s Galaxy

[Link] 4/4
8/3/24, 12:28 NG-Tax’s Galaxy — NG-Tax

NG-Tax’s Galaxy
Contents
NG-Tax 2.0 in Galaxy
Upload demo files
Viewing and Downloading files
Using NGTax
Identifier & Description
Mapping file
ASV taxonomic classification
Input FASTQ/FASTA files
Other settings
Run
Downstream analysis
Galaxy job status
File preparation
Update the NGTax docker image.

The galaxy environment works best when you have amplicon libraries, meaning
multiple samples with barcodes in a single / paired FASTQ file (primers are optional)

When you have many demultiplexed samples we suggest to use the command line
version of NGTax 2.0

NG-Tax 2.0 in Galaxy


NG-Tax is available as a standalone software package or within galaxy through docker.
Docker is a virtual environment which allows you to easily deploy a large variety of
applications.

To start Galaxy with NG-Tax you need to have docker installed and then you can run the
following command: Skip to main content

[Link] 1/11
8/3/24, 12:28 NG-Tax’s Galaxy — NG-Tax

# To enable the interactive environment within galaxy we use the `--privileged` opt
docker run -p 8080:80 -p 8021:21 -p 8800:8800 --privileged=true -v ~/ngtax_storage/

# The internal ports 80, 21, 8800 are made available towards 8080, 8021 and 8800 re

You can access the NGTax Galaxy environment via [Link]

The first time you start this docker image, galaxy will copy its internal files to your home
directory inside the ngtax_storage folder to assure that the next time you restart your
computer or the docker instance all your result files and accounts are not lost due to dockers
nature.

Upload demo files


Input files can be upload via the Galaxy interface through “Get data” menu or the shortcut
icon. After the white upload box appeared, your files can be upload by either browsing
through your computer or drag and drop the files into the box. Then click Start .

In this tutorial we use a paired-end dataset of two FASTQ files and a mapping file containing
the library information.

All the files used in the tutorial can be found here:


[Link]

Skip to main content

[Link] 2/11
8/3/24, 12:28 NG-Tax’s Galaxy — NG-Tax

Viewing and Downloading files


When each job is completely processed, indicates by the status, any files can be view and
download. You can view the results by pressing on the eye icon at the top, or download it by
clicking on the name of the job causing it to unfold and select the floppy disk icon to
download as shown below.

Using NGTax
To start using NGTax, when you have finished uploading the files, you have to unfold NG-Tax
in the left panel and select NG-Tax. This will give you an overview of all the options and the
next sections is a step by step guide through each section.

Skip to main content

[Link] 3/11
8/3/24, 12:28 NG-Tax’s Galaxy — NG-Tax

Identifier & Description


In this first section you can give a short identifier that is used by galaxy in the history, so that
jobs are easier to find back and give a description of the project.

Here you can use as identifier for instance demo and as a project for instance demo
project

Mapping file
Select the mapping file in the right section that you have just uploaded. The exact layout of
this mapping file is specified in the files usage section. It is best to open another tab so that
you do not lose the current view.

ASV taxonomic classification


Two options are available for ASVs classification:

“yes”: to classify the ASV into a taxonomic lineage using the provided database.
“no”: do not classify the ASV into a taxonomic lineage.

In this demo we choose yes for classification and use Silva 132 as the database

Input FASTQ/FASTA files


The input FASTQ/FASTA files can be either paired or single end reads.
Skip to main content

[Link] 4/11
8/3/24, 12:28 NG-Tax’s Galaxy — NG-Tax

In this demo we choose paired-end

FASTQ/FASTA sets
A FASTQ/FASTA set is a single end or paired end FASTQ/FASTA This file / files can consists of
multiple samples and are often known as amplicon libraries.

If you have demultiplexed files and many of them we suggest to use the command line and
use the -folder option to automatically analyse the demultiplexed files that are stored
within a given folder.

To give the FASTQ/FASTA files to the pipeline, the “Insert FASTQ/FASTA sets” button needs to
be pressed. This will open up a new section where you are able to select the forward and the
reverse files for paired-end reads and a single file for single-end reads.

In this demo we click insert FastQ sets once and add small_1.[Link] as fastQ file.1
and small_2.[Link] as fastQ file.2

Skip to main content

[Link] 5/11
8/3/24, 12:28 NG-Tax’s Galaxy — NG-Tax

Please note: As can be seen in the figure above, galaxy tries to automatically add the
FASTQ/FASTA files from your history but by doing so only adds the last file (often twice).
Therefore always double check if the input files are correct!

After pressing you can add as many pairs of FASTQ files as needed by pressing the button
again.
If you want to remove a set of FASTQ files press on the garbage icon in the yellow region.

Read lengths
Select the preffered read length for the forward and reverse sequence used in the analysis.
Default is 70 and for most optimal results also adviced.

In this demo we keep the default settings


Skip to main content

[Link] 6/11
8/3/24, 12:28 NG-Tax’s Galaxy — NG-Tax

Primer sequences
Add the primer sequences for the forward and the reverse primers.
The degenerate positions can also be filled in with the corresponding letters.
If you don’t know the degenerate letters, you can use square brackets ‘[ ]’, as in the example
below.

Please note: Primers are obligatory as they are required to build the lookup database.

In this demo we keep the default settings

Other settings
In this demo we keep the default settings

Primer removed:
Select “yes”, if your data is demultiplexed. Meaning that the barcode and the primer is
removed.

Ratio ASV abundance:


Chimera checking, select the ratio that the parents need to more abundant than the chimera.

Classify ratio:
ASV abundance in ratio to use as threshold for taxonomic classification of an ASV.

Minimum percentage threshold:


Select the minimum threshold that an ASV needs to be present compared to all the reads in
the sample.

Identity level (%):


Identity level between parents and chimera (recommended 100%, no error allowed, chimera
as perfect combination of two ASVs)

Error correction:
Select the number of mismatches allowed for grouping input sequences into ASVs. Strongly
recommended only 1 mismatch allowed.

Show if there are more taxonomies, if applicable:


Select if you want to (show) highlight if there are more than one species for an ASV, if there
are more taxonomies. I.e. when the classification confidence is <100%.

Skip to main content

[Link] 7/11
8/3/24, 12:28 NG-Tax’s Galaxy — NG-Tax

Create additional BIOM RDF file:


Creates a second output file in turtle format.

Run
If all the sections are filled in, press ‘Execute’.

On a standard laptop/desktop it takes approximately 10mins to analyse this test set

Downstream analysis
Once the output files are generated the biom file can be analysed using standard methods
such as is mentioned in [Link]

Galaxy job status

Statuses {#statuses}
There are 5 states to be found in the user history in galaxy. More information can be found
here Skip to main content

[Link] 8/11
8/3/24, 12:28 NG-Tax’s Galaxy — NG-Tax

Completed jobs & Data retrieval


{#viewanddownload}
You can see if a job is completed, by the fact that the color is green and the icon (next to the
name) is gone.

When the job is completed, you can view the results by pressing on the eye icon at the top,
or download it by clicking on the name of the job causing it to unfold and select the
download icon (the floppy disk) as shown below.

Skip to main content

[Link] 9/11
8/3/24, 12:28 NG-Tax’s Galaxy — NG-Tax

Failed
You can see if a job failed, by the fact that the color is red and there is an ‘X’ next to the
name of the job.

To view what the reason is the job failed, select the job and press on the left ‘i’ icon.

File preparation
Minimal requirements
- Mapping file.
- One or two FASTQ/FASTA file(s) containing the amplicon sequences.
Skip to main content
- Primers used (used for the creation of the classification database), this is also the case
[Link] 10/11
8/3/24, 12:28 NG-Tax’s Galaxy — NG-Tax

for demultiplexed data in which the primers are removed.

For the mapping file


\* If the forward barcode is removed, the column is still compulsory but the content
can be empty. \*\* If the reverse barcode is not known, the column is not compulsory.
Can not only use a reverse barcode sequence. \*\*\* Barcodes in each library must be
unique.
Demultiplexed data
We advice to try the command line version of NGTax when you work with many
samples that already have been demultiplexed into separate FASTQ files. When using
galaxy, each FASTQ set is a sample and corresponds to a new library (increment the
library number) meaning that if you have 10 samples you will have 10 entries starting
from library 1 up to library 10.

Example of a paired-end mapping file:

Example of a demultiplexed paired-end mapping file:

More information can be found in the File usage section

Update the NGTax docker image.


We are continously improving ngtax and you can check / download the latest version using
the following command:

docker pull wurssb/ngtax

Once it has been retrieved you can start galaxy using the command above but make sure
that galaxy is not already running.

Previous Next
File layout Coverage

[Link] 11/11
8/3/24, 12:28 Coverage — NG-Tax

Coverage
Contents
Summary
Visualization

Summary
The coverage functionality in NG-Tax allows users to generate an overview for which taxa can
be targeted given a primer subset.

Please not that this is a recent addition to NG-Tax and only available from 2.2.17 onwards.

To use this function start with -coverage followed by the primer set used, the reference
database either in alignment or fasta format and the length you would like to use.
Depending on the size of the database it can take a moment to process all the entires.

-coverage
-for_p ACTCCTACGGRAGGCAGCA
-rev_p GACTACHVGGGTWTCTAAT
-refdb ./databases/SILVA_138_SSURef_tax_silva.[Link]
-for_read_len 70
-rev_read_len 70

Once finished a [Link] is generated that looks like (normally it is tab separated):

Superkingdom,Phylum,Class,Order,Family,Genus,Species,Hit,Total
Bacteria,,,,,,,67237,70303
Bacteria,Abditibacteriota,,,,,,1,1
Bacteria,Abditibacteriota,Abditibacteria,,,,,1,1
Bacteria,Abditibacteriota,Abditibacteria,Abditibacteriales,,,,1,1
Bacteria,Abditibacteriota,Abditibacteria,Abditibacteriales,Abditibacteriaceae,,,1,1
Bacteria,Abditibacteriota,Abditibacteria,Abditibacteriales,Abditibacteriaceae,Abdit
Bacteria,Abditibacteriota,Abditibacteria,Abditibacteriales,Abditibacteriaceae,Abdit
Bacteria,Acidobacteriota,,,,,,53,53
...

Skip to main content

[Link] 1/2
8/3/24, 12:28 Coverage — NG-Tax

As you can see in this example there are 70303 bacterial entries for which 67237 had a
match with the primer set. When scrolling through the list you can see which taxa are either
completely missed, partially covered or completely covered. This is shown in the last 2
columns. Number of hits and the total number of entries.

Visualization
At the moment it is a straight forward table that you should be able to load into Excel or
other software that can easily read tab delimited files. If you have any ideas on how to
visualize this further please let us know!

Previous Next
NG-Tax’s Galaxy RDF tutorial

[Link] 2/2
8/3/24, 12:28 RDF tutorial — NG-Tax

rint to PDF RDF tutorial


Contents
Introduction to RDF and SPARQL
R SPARQL function
Example queries
Advance queries

Introduction to RDF and SPARQL

Conversion reminder
Biom files created with NG-Tax can also be queried when you need to extract additional
information. If you have NG-Tax Biom files or biom files obtained from other applications you
can easily convert them to RDF using the NG-Tax conversion command:

java -jar [Link] -biom2rdf -i [Link] -o [Link]

log4j:WARN No appenders could be found for logger ([Link]).


log4j:WARN Please initialize the log4j system properly.
log4j:WARN See [Link] for more info.
[Link]
Converting [Link] to RDF format.
(75/474) >> Creating RDF database for sample name: 1927.SRS019910.SRX020516.SRR04434

Load file into a graph database


RDF files can be loaded into so called triple-stores. These are dedicated databases which can
easily be setup to load your data into. The tutorial can be found here. The RDF representation
of the paired-end example biom file has been loaded into this system and is queriable via the
web interface or via R. Skip to main content

[Link] 1/46
8/3/24, 12:28 RDF tutorial — NG-Tax

Jena-Fuseki

This was tested on apache-jena-fuseki-3.12.0


Apache jena-fuseki was downloaded from the apache website and decompressed
Start the fuseki server using ./fuseki start
The webserver should start immediately and becomes available at [Link]
Go to manage datasets
Add a new dataset
Give it a name and for testing a small file we create an in-memory database
Once you have created the dataset you can start uploading data
Click upload files and select the file you want to upload
Make sure the file ends with .ttl to denote that this is a RDF turtle file
Click upload now and a progress bar should appear
Once finished it should mention how many triples were added (e.g. Result: success.
28635 triples)
You can now perform queries, click the query button.
An example query could be: SELECT * WHERE { ?subject a ?object . } LIMIT 100
This should show you some results from the RDF file

Jena

This was tested on apache-jena-3.12.0


Apache jena was downloaded from the apache website and decompressed
To query a turtle file (extension .ttl) and the file is relatively small, it can be directly
queried using the following command: ./bin/sparql
--data=/home/rdf/008F355R_rep1_70.ttl --query [Link]

The [Link] file contains the query to be executed, for example: SELECT * WHERE {
?subject a ?object } LIMIT 10

GraphDB

This was tested on GraphDB 8.5.0


Graphdb can be obtained from the graphdb’s website of ontotext.
Once started it should be running by default on localhost:7200
On the left, click setup > repositories > create new repository
The only requirement is to give it a name, the rest can stay at default and click create
Once created, click on the power plug icon to connect to that specific database
Skip> to
To load the RDF file, click import main
RDF contentRDF files and select your .ttl file.
> Upload
[Link] 2/46
8/3/24, 12:28 RDF tutorial — NG-Tax

It should appear in the load overview and you can import it by clicking on the right
import button
Click import again on the popup window
A small file should only take a few seconds to load.
To query the database, click on SPARQL and the default (select all) query should show up.
Click Run to get the results. The first part often is the graphdb’s own logic and further
down you should see the content of your RDF file.

Basics to use SPARQL


# Dependencies used in this documentation
# [Link]("DT")
# [Link]("ggplot2")
# [Link]("plotly")
# [Link]("d3r")
# [Link]("treemap")
# [Link]("devtools")

# library("devtools");
# devtools::install_github("timelyportfolio/sankeytree")

library(DT)
library(ggplot2)
library(plotly)
library(d3r)
library(dplyr)
# library(treemap)
library(sankeytreeR)

R SPARQL function
To query the RDF file from R, the SPARQL function below can be used. The original SPARQL
function is unfortunately not available anymore in R due to the lack of maintenance. This
function queries the SPARQL endpoint and receives a JSON file.

# Script to query the triple store


library(stringr)
library(httr)
library(jsonlite)

# SPARQL endpoint where the triple store endpoint is located


endpoint = "[Link]
Skip to main content
# create a named character vector of URLs and prefixes
[Link] 3/46
8/3/24, 12:28 RDF tutorial — NG-Tax
url_dict <- c("[Link] = "ex:",
"[Link] = "gbol:",
"[Link] = "rdf:",
"[Link] = "rdfs:",
"[Link] = "owl:",
"[Link] = "xsd:",
"[Link] = "dcterms:",
"[Link] = "dc:",
"[Link] = "dcmitype:",
"[Link] = "dcam:",
"[Link] = "dcq:"
)

prefix_cleaner <- function(x, prefixes = url_dict) {


x <- [Link](x)
for (u in names(url_dict)) {
x <- str_replace(x, u, url_dict[u])
}
return(x)
}

# SPARQL function to query the triple store


sparql <- function(query, endpoint, prefixes = NULL) {
res <- httr::GET(endpoint, query = list(query = query, format = "json"))
if (res$status_code != 200) {
stop("Error: ", res$status_code, " ", res$reason)
}
# return(content(res, "text", encoding = "UTF-8"))
dfGraph = jsonlite::fromJSON(content(res, "text", encoding = "UTF-8"))
dfGraph <- [Link](dfGraph$results$bindings)
# Keep only the columns that contain the value
table = dfGraph[,grep(".value", names(dfGraph), value=TRUE), with=FALSE]
# Clean the table
table <- lapply(FUN = prefix_cleaner, table, prefixes = prefixes)
# table$[Link] <- prefix(table$[Link])
return([Link](table))
}

Example queries

Analysis settings
library([Link])
query <- paste0("PREFIX gbol:<[Link]
SELECT DISTINCT ?library ?predicate ?object
WHERE {
?library a gbol:Library .
?library gbol:provenance ?prov .
?prov gbol:annotation ?annot .
?annot ?predicate ?object .
}")

Skip to main content

[Link] 4/46
8/3/24, 12:28 RDF tutorial — NG-Tax
dfGraph <- sparql(query, endpoint, prefixes)
dfGraph

Skip to main content

[Link] 5/46
8/3/24, 12:28 RDF tutorial — NG-Tax

A [Link]: 369 x 3

[Link] [Link]

<chr> <chr>

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- rdf:type g
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:biomFile DR
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:chimeraRatio
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:classifyRatio
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:date
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:errorCorr
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:fPrimerLength
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:fastQSet [Link]
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:fastQSet [Link]
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
/var/lib/cwl/stg
e425-4d0f-92a6- gbol:folder
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:format Biologic
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f- gbol:formatURL
e425-4d0f-92a6-
Skip to main content

[Link] 6/46
8/3/24, 12:28 RDF tutorial — NG-Tax

[Link] [Link]

<chr> <chr>
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:forwardReadLength
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:generatedBy
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:headerType
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:id
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:identLvl
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:identity85MismatchCount
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:identity90MismatchCount
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:identity92MismatchCount
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:identity95MismatchCount
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:identity97MismatchCount
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:logFile
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:mapFile
ebc4041e32c1/Library/1 Skip to main content

[Link] 7/46
8/3/24, 12:28 RDF tutorial — NG-Tax

[Link] [Link]

<chr> <chr>

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:markIfMoreThen1
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:matrixElementType
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:matrixType
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:maxChimeraDistF
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:maxChimeraDistR
ebc4041e32c1/Library/1

gbol:NG-Tax/50e2a75f-
e425-4d0f-92a6- gbol:maxClusteringMismatchCount
ebc4041e32c1/Library/1

... ...

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:formatURL
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:forwardReadLength
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:generatedBy
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:headerType
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:id
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a- gbol:identLvl
2768-40fd-96aa-
Skip to main content

[Link] 8/46
8/3/24, 12:28 RDF tutorial — NG-Tax

[Link] [Link]

<chr> <chr>
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:identity85MismatchCount
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:identity90MismatchCount
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:identity92MismatchCount
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:identity95MismatchCount
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:identity97MismatchCount
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:logFile
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:mapFile
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:markIfMoreThen1
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:matrixElementType
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:matrixType
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:maxChimeraDistF
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:maxChimeraDistR
9c9f518eef94/Library/1 Skip to main content

[Link] 9/46
8/3/24, 12:28 RDF tutorial — NG-Tax

[Link] [Link]

<chr> <chr>

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:maxClusteringMismatchCount
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:minOTUsizeT
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:minPerT
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:nomismatch
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:rPrimerLength
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:refdb SILVA_138
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:reference [Link]
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:reverseReadLength
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:shannon
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:subfragment
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:turtle
9c9f518eef94/Library/1

gbol:NG-Tax/37ab639a-
2768-40fd-96aa- gbol:version
9c9f518eef94/Library/1
Skip to main content

[Link] 10/46
8/3/24, 12:28 RDF tutorial — NG-Tax

Overview of number of samples per library


query <- paste0("PREFIX gbol:<[Link]
SELECT DISTINCT ?library (COUNT(?sample) AS ?sampleCount)
WHERE {
?library gbol:sample ?sample .
} GROUP BY ?library")
dfGraph <- sparql(query, endpoint, prefixes)
dfGraph

A [Link]: 9 x 2

[Link] [Link]

<chr> <chr>

gbol:NG-Tax/50e2a75f-e425-4d0f-92a6-ebc4041e32c1/Library/1 1

gbol:NG-Tax/00a9aa92-3587-4b66-a3f2-d74510719711/Library/1 1

gbol:NG-Tax/d34be824-e169-4d5e-88fe-8ad344c1d315/Library/1 1

gbol:NG-Tax/a56511cd-aa41-4a44-bbd5-7ca5abda65a4/Library/1 1

gbol:NG-Tax/d3d94825-d60d-4436-afdc-f183fe22643c/Library/1 1

gbol:NG-Tax/5d960204-1d2c-4c4f-a333-f6e4ada92960/Library/1 1

gbol:NG-Tax/541e4d6d-2087-47e3-9e5a-2b0b2c46b5a7/Library/1 1

gbol:NG-Tax/1d589c52-0f53-4c81-a651-709723c62950/Library/1 1

gbol:NG-Tax/37ab639a-2768-40fd-96aa-9c9f518eef94/Library/1 1

Overview of the samples in the dataset and


corresponding metadata
query <- "PREFIX gbol: <[Link]
PREFIX rdf: <[Link]
SELECT ?sampleName ?totalCounts ?numAcceptedOtuBeforeChimera ?numRejectedOtu ?evenne
WHERE {
?library gbol:sample ?sample .
?sample gbol:name ?sampleName .
?sample gbol:metadata/gbol:totalCounts ?totalCounts .
?sample gbol:metadata/gbol:numAcceptedOtuBeforeChimera ?numAcceptedOtuBeforeChim
?sample gbol:metadata/gbol:numRejectedOtu ?numRejectedOtu.
?sample gbol:metadata/gbol:evenness ?evenness .
?sample gbol:metadata/gbol:totalCounts ?totalCounts .
?sample gbol:metadata/gbol:numAcceptedReadsBeforeChimera ?numAcceptedReadsBefore
Skip to main content
?sample gbol:metadata/gbol:percentAcceptedReadsBeforeChimera ?percentAcceptedRea

[Link] 11/46
8/3/24, 12:28 RDF tutorial — NG-Tax
?sample gbol:metadata/gbol:numReadsChimera ?numReadsChimera .
?sample gbol:metadata/gbol:numAcceptedReadsAfterErrorCorrection ?numAcceptedRead
?sample gbol:metadata/gbol:percentAcceptedReadsAfterErrorCorrection ?percentAcce
?sample gbol:metadata/gbol:numAcceptedOtuBeforeChimera ?numAcceptedOtuBeforeChim
?sample gbol:metadata/gbol:numRejectedOtu ?numRejectedOtu .
?sample gbol:metadata/gbol:evenness ?evenness .
}"
dfGraph <- sparql(query, endpoint, prefixes)
dfGraph

[Link] [Link] [Link]

<chr> <chr> <ch

Sample1_DRR243856_1.[Link] 125846

Sample1_DRR243863_1.[Link] 124753 1

Sample1_DRR243881_1.[Link] 116644

Sample1_DRR243899_1.[Link] 96000 1

Sample1_DRR243894_1.[Link] 89268

Sample1_DRR243906_1.[Link] 104877 1

Sample1_DRR243924_1.[Link] 130377

Sample1_DRR243850_1.[Link] 134560 1

Sample1_DRR243845_1.[Link] 107834 1

Number of ASV’s per sample


query <- paste0("PREFIX gbol:<[Link]
SELECT DISTINCT ?sampleName (COUNT(?asv) AS ?count)
WHERE {
?library gbol:sample ?sample .
?sample gbol:name ?sampleName .
?sample gbol:asv ?asv .
?asv a gbol:ASVSet .
} GROUP BY ?sampleName")
dfGraph <- sparql(query, endpoint)
dfGraph

Skip to main content

[Link] 12/46
8/3/24, 12:28 RDF tutorial — NG-Tax

A [Link]: 9 x 2

[Link] [Link]

<chr> <chr>

Sample1_DRR243856_1.[Link] 97

Sample1_DRR243863_1.[Link] 147

Sample1_DRR243881_1.[Link] 76

Sample1_DRR243899_1.[Link] 102

Sample1_DRR243894_1.[Link] 49

Sample1_DRR243906_1.[Link] 102

Sample1_DRR243924_1.[Link] 66

Sample1_DRR243850_1.[Link] 101

Sample1_DRR243845_1.[Link] 118

Overview of ASV and taxonomic lineage


query <- paste0("PREFIX gbol:<[Link]
SELECT ?sampleName ?clusteredReadCount ?taxonName
WHERE {
?lib a gbol:Library .
?lib gbol:sample ?sample .
?sample gbol:name ?sampleName .
?sample gbol:asv ?asv .
?asv a gbol:ASVSet .
?asv gbol:assignedTaxon ?assignedTaxon .
?asv gbol:clusteredReadCount ?clusteredReadCount .
?assignedTaxon gbol:taxonName ?taxonName .
}")
dfGraph <- sparql(query, endpoint)
library(stringr)
#split up taxonName into 6 column
taxonomy = str_split_fixed(dfGraph$taxonName, ";", 6)
dfGraph = [Link](dfGraph$sampleName, dfGraph$clusteredReadCount, taxonom
colnames(dfGraph) = c("sampleName", "counts", "Domain", "Phylum", "Class", "Order"
dfGraph

Skip to main content

[Link] 13/46
8/3/24, 12:28 RDF tutorial — NG-Tax

A [Link]

sampleName counts Domain Phylum C

<chr> <chr> <chr> <chr> <c

Sample1_DRR243856_1.[Link] 24997 Bacteria Proteobacteria Gammaproteobac

Sample1_DRR243856_1.[Link] 16692 Bacteria Firmicutes Clost

Sample1_DRR243856_1.[Link] 10992 Bacteria Proteobacteria Gammaproteobac

Sample1_DRR243856_1.[Link] 7795 Bacteria Firmicutes Clost

Sample1_DRR243856_1.[Link] 7592 Bacteria Firmicutes B

Sample1_DRR243856_1.[Link] 2867 Bacteria Firmicutes Clost

Sample1_DRR243856_1.[Link] 2119 Bacteria Firmicutes B

Sample1_DRR243856_1.[Link] 1487 Bacteria Firmicutes B

Sample1_DRR243856_1.[Link] 1362 Bacteria Firmicutes Clost

Sample1_DRR243856_1.[Link] 1149 Bacteria Actinobacteriota Coriobact

Sample1_DRR243856_1.[Link] 1161 Bacteria Firmicutes Clost

Sample1_DRR243856_1.[Link] 1051 Bacteria Proteobacteria Gammaproteobac

Sample1_DRR243856_1.[Link] 996 Bacteria Firmicutes Clost

Sample1_DRR243856_1.[Link] 959 Bacteria Actinobacteriota Actinobac

Sample1_DRR243856_1.[Link] 887 Bacteria Actinobacteriota Coriobact

Sample1_DRR243856_1.[Link] 750 Bacteria Firmicutes B

Sample1_DRR243856_1.[Link] 759 Bacteria Proteobacteria Gammaproteobac

Sample1_DRR243856_1.[Link] 562 Bacteria Firmicutes Clost

Sample1_DRR243856_1.[Link] 532 Bacteria Firmicutes Clost

Sample1_DRR243856_1.[Link] 515 Bacteria Bacteroidota Bactero

Sample1_DRR243856_1.[Link] 482 Bacteria Actinobacteriota Coriobact

Sample1_DRR243856_1.[Link] 471 Bacteria Firmicutes Clost

Sample1_DRR243856_1.[Link] 454 Bacteria Firmicutes Clost

Sample1_DRR243856_1.[Link] 462 Bacteria Firmicutes Clost


Skip to main content

[Link] 14/46
8/3/24, 12:28 RDF tutorial — NG-Tax

sampleName counts Domain Phylum C

<chr> <chr> <chr> <chr> <c

Sample1_DRR243856_1.[Link] 431 Bacteria Proteobacteria Alphaproteobac

Sample1_DRR243856_1.[Link] 420 Bacteria Verrucomicrobiota Verrucomicro

Sample1_DRR243856_1.[Link] 387 Bacteria Firmicutes B

Sample1_DRR243856_1.[Link] 347 Bacteria Actinobacteriota Coriobact

Sample1_DRR243856_1.[Link] 337 Bacteria Firmicutes Clost

Sample1_DRR243856_1.[Link] 338 Bacteria Firmicutes Clost

... ... ... ...

Sample1_DRR243845_1.[Link] 110 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 137 Bacteria Bacteroidota Bactero

Sample1_DRR243845_1.[Link] 115 Bacteria Bacteroidota Bactero

Sample1_DRR243845_1.[Link] 102 Bacteria Bacteroidota Bactero

Sample1_DRR243845_1.[Link] 110 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 99 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 89 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 97 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 93 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 104 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 92 Bacteria Bacteroidota Bactero

Sample1_DRR243845_1.[Link] 76 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 96 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 95 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 95 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 95 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 72 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 75 Bacteria Firmicutes Clost

Skip to main content

[Link] 15/46
8/3/24, 12:28 RDF tutorial — NG-Tax

sampleName counts Domain Phylum C

<chr> <chr> <chr> <chr> <c

Sample1_DRR243845_1.[Link] 72 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 115 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 104 Bacteria Bacteroidota Bactero

Sample1_DRR243845_1.[Link] 79 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 89 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 78 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 91 Bacteria Firmicutes B

Sample1_DRR243845_1.[Link] 73 Bacteria Bacteroidota Bactero

Sample1_DRR243845_1.[Link] 96 Bacteria Cyanobacteria Vampirivibri

Sample1_DRR243845_1.[Link] 78 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 71 Bacteria Firmicutes Clost

Sample1_DRR243845_1.[Link] 131 Bacteria Firmicutes Clost

ASV sequences
query <- paste0("PREFIX gbol:<[Link]
SELECT ?fseq ?rseq ?taxonName
WHERE {
?lib a gbol:Library .
?lib gbol:sample ?sample .
?sample gbol:name ?sampleName .
?sample gbol:asv ?asv .
?asv a gbol:ASVSet .
?asv gbol:forwardASV ?fasv .
?fasv gbol:sequence ?fseq .
?asv gbol:reverseASV ?rasv .
?rasv gbol:sequence ?rseq .
?asv gbol:assignedTaxon ?assignedTaxon .
?assignedTaxon gbol:taxonName ?taxonName .
}")
dfGraph2 <- sparql(query, endpoint)
library(stringr)
#split up taxonName into 6 column
taxonomy = str_split_fixed(dfGraph2$taxonName, ";", 6)
dfGraph2 = [Link](dfGraph2$fseq, dfGraph2$rseq, taxonomy)

Skip to main content

[Link] 16/46
8/3/24, 12:28 RDF tutorial — NG-Tax
colnames(dfGraph2) = c("fseq", "rseq", "Domain", "Phylum", "Class", "Order", "Fami
dfGraph2

Skip to main content

[Link] 17/46
8/3/24, 12:28 RDF tutorial — NG-Tax

TGGGGAATATTGGACAATGGGCGCAAGCCTGATCCAGCCATACCGCGTGGGTGAAGAAGGCCTTC

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTT

TGGGGAATTTTGGACAATGGGGGAAACCCTGATCCAGCCATCCCGCGTGTGCGATGAAGGCCTTCG

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTT

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAGTGATGAAGGTCCT

TGGGGAATATTGGGCAATGGGCGCAAGCCTGACCCAGCAACGCCGCGTGAAGGAAGAAGGCTTTC

TTAGGAATATTCGTCAATGGAGGAAACTCTGAACGAGCAATGCCGCGTGAGTGATGAAGGTCTT

TTAGGAATATTCGGCAATGGGGGAAACCCTGACCGAGCAATGCCGCGTGTGAGATGAAGGTCCT

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTT

TGGGGAATTTTGCGCAATGGGGGCAACCCTGACGCAGCAACGCCGCGTGCGGGACGAAGGCGTCC

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGAGGGAAGACGGTCCTC

TGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCCATGCCGCGTGTATGAAGAAGGCCTTCG

TCGGGAATATTGCGCAATGGAGGAAACTCTGACGCAGTGACGCCGCGTATAGGAAGAAGGTTTTC

TGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCGACGCCGCGTGCGGGATGACGGCCTTC

TGGGGAATTTTGCGCAATGGGGGAAACCCTGACGCAGCAACGCCGCGTGCGGGACGAAGGCGTCC

TAGGGAATTTTCGGCAATGGGGGAAACCCTGACCGAGCAACGCCGCGTGAAGGAAGAAGTAATT

TGGGGAATATTGGACAATGGGCGCAAGCCTGATCCAGCCATACCGCGTGGGTGAAGAAGGTCTTC

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTT

TGGGGAATATTGGGCAATGGGCGCAAGCCTGACCCAGCAACGCCGCGTGAAGGAAGAAGGCTTTCG

TGAGGAATATTGGTCAATGGACGCGAGTCTGAACCAGCCAAGTAGCGTGAAGGATGACTGCCC

TGGGGAATTTTGCGCAATGGGGGCAACCCTGACGCAGCAACGCCGCGTGCGGGACGAAGGCGTCC

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTT

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGCTTT

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGAGCGAAGAAGTATTTC
Skip to main content

[Link] 18/46
8/3/24, 12:28 RDF tutorial — NG-Tax

TGGGGAATATTGGACAATGGGCGCAAGCCTGATCCAGCCATGCCGCGTGAGTGATGAAGGCCCTA

TCGAGAATCATTCACAATGGGGGAAACCCTGATGGTGCGACGCCGCGTGGGGGAATGAAGGTCT

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAGTGATGACGGTCCT

TGGGGAATCTTGCGCAATGGGGGGAACCCTGACGCAGCGACGCCGCGTGCGGGACGGAGGCCTTCG

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTT

TCGGGAATATTGCGCAATGGAGGAAACTCTGACGCAGTGACGCCGCGTGCAGGAAGAAGGTTTTC

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTT

TGAGGAATATTGGTCAATGGACGAGAGTCTGAACCAGCCAAGTAGCGTGCAGGAAGACGGCCCTA

TGAGGAATATTGGTCAATGGGCGAGAGCCTGAACCAGCCAAGTAGCGTGCAGGATGACGGTCCT

TGAGGAATATTGGTCAATGGGCGCGAGCCTGAACCAGCCAAGTAGCGTGAAGGATGACTGCCCT

TGGGGAATATTGGGCAATGGGGGAAACCCTGACCCAGCAACGCCGCGTGAAGGAAGAAGGCCTTC

TCGGGAATATTGCGCAATGGAGGAAACTCTGACGCAGTGACGCCGCGTATAGGAAGAAGGTTTTC

TGGGGAATATTGGGCAATGGGCGCAAGCCTGACCCAGCAACGCCGCGTGAAGGAAGAAGGTTTTC

TGGGGAATATTGCACAATGGGGGAGACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTT

TGGGGAATATTGGGCAATGGGCGAAAGCCTGACCCAGCAACGCCGCGTGAAGGAAGAAGGTCTTC

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGAGTGAAGAAGTATTTC

TGAGGAATATTGGTCAATGGGCGAGAGCCTGAACCAGCCAAGTAGCGTGAAGGATGACTGCCC

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTT

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTT

CGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTT

TGGGGAATATTGCACAATGGGGGGAACCCTGATGCAGCGACGCCGCGTGAAGGAAGAAGGTATT

TGGGGAATATTGCACAATGGAGGAAACTCTGATGCAGCGATGCCGCGTGAGGGAAGAAGGCTTTA

TGGGGAATATTGCACAATGGGCGAAAGCCTGATGCAGCGACGCCGCGTGAAGGATGAAGTATTTC

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCAACGCCGCGTGAACGAAGAAGGCTCTTG

Skip to main content

[Link] 19/46
8/3/24, 12:28 RDF tutorial — NG-Tax

TGGGGAATATTGCACAATGGGGGAAACCCCGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTT

TGGGGAATATTGGGCAATGGGGGAAACCCTGACCCAGCAACGCCGCGTGAAGGAAGAAGGCTTTC

TGAGGAATATTGGTCAATGGGCGATGGCCTGAACCAGCCAAGTAGCGTGAAGGATGACTGCCCT

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCAACGCCGCGTGAGTGAAGAAGTATTTC

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGAAGGAAGAAGTATCT

TGGGGAATATTGCACAATGGGGGAAACCCTGACGCAGCGACGCCGCGTGGAGGAAGAAGGTCTT

TAGGGAATTTTCGTCAATGGGGGGAACCCTGAACGAGCAATGCCGCGTGAGTGAGGAAGGTCTTC

TGAGGAATATTGGTCAATGGGCGATGGCCTGAACCAGCCAAGTAGCGTGAAGGATGACTGTCCT

TAGGGAATTTTGCGCAATGGGCGAAAGCCTGACGCAGCAACGCCGCGTGAACGAGACGCCCTTCG

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTT

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTT

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCAATGCCGCGTGAAGGATGAAGGTTTT

Chimera sequences
query <- "PREFIX gbol:<[Link]
SELECT ?fseq ?rseq
WHERE {
?lib a gbol:Library .
?lib gbol:sample ?sample .
?sample gbol:name ?sampleName .
?sample gbol:asv ?asv .
?asv a gbol:RejectedAsChimera .
?asv gbol:forwardASV ?fasv .
?fasv gbol:sequence ?fseq .
?asv gbol:reverseASV ?rasv .
?rasv gbol:sequence ?rseq .
}"
dfGraph2 <- sparql(query, endpoint)
library(stringr)
#split up taxonName into 6 column
dfGraph2 = [Link](dfGraph2$fseq, dfGraph2$rseq)
colnames(dfGraph2) = c("fseq", "rseq")
dfGraph2

Skip to main content

[Link] 20/46
8/3/24, 12:28 RDF tutorial — NG-Tax

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGCTTTC

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTTC

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTTC

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTTC

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTTC

TGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCCATGCCGCGTGTATGAAGAAGGCCTTCGG

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTTC

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTTC

TGGGGAATATTGGACAATGGGCGCAAGCCTGATCCAGCCATACCGCGTGGGTGAAGAAGGCCTTCG

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTTC

TGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCCATGCCGCGTGTGTGAAGAAGGCCTTCGG

TGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCCATGCCGCGTGTATGAAGAAGGCCTTCGG

TGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCCATGCCGCGTGTGTGAAGAAGGCCTTCGG

TGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCCATGCCGCGTGTGTGAAGAAGGCCTTCGG

TGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCCATGCCGCGTGTATGAAGAAGGCCTTCGG

TGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCCATGCCGCGTGTATGAAGAAGGCCTTCG

TGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCCATGCCGCGTGTATGAAGAAGGCCTTCGG

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGAGCGAAGAAGTATTTCG

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGAGTGAAGAAGTATTTCG

ASV sequences shared among samples


query <- "PREFIX gbol:<[Link]
SELECT DISTINCT ?fseq ?rseq (COUNT(DISTINCT(?sample)) AS ?samples
WHERE {
?sample a gbol:Sample .
?sample gbol:asv ?asv .
Skip to main content
?asv gbol:forwardASV ?fasv .
[Link] 21/46
8/3/24, 12:28 RDF tutorial — NG-Tax
?fasv gbol:sequence ?fseq .
?asv gbol:reverseASV ?rasv .
?rasv gbol:sequence ?rseq .
} GROUP BY ?fseq ?rseq"
dfGraph2 <- sparql(query, endpoint)
dfGraph2

Skip to main content

[Link] 22/46
8/3/24, 12:28 RDF tutorial — NG-Tax

TGGGGAATATTGGACAATGGGCGCAAGCCTGATCCAGCCATACCGCGTGGGTGAAGAAGGCCTTC

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTT

TGGGGAATTTTGGACAATGGGGGAAACCCTGATCCAGCCATCCCGCGTGTGCGATGAAGGCCTTCG

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTT

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAGTGATGAAGGTCCT

TGGGGAATATTGGGCAATGGGCGCAAGCCTGACCCAGCAACGCCGCGTGAAGGAAGAAGGCTTTC

TTAGGAATATTCGTCAATGGAGGAAACTCTGAACGAGCAATGCCGCGTGAGTGATGAAGGTCTT

TTAGGAATATTCGGCAATGGGGGAAACCCTGACCGAGCAATGCCGCGTGTGAGATGAAGGTCCT

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTT

TGGGGAATTTTGCGCAATGGGGGCAACCCTGACGCAGCAACGCCGCGTGCGGGACGAAGGCGTCC

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGAGGGAAGACGGTCCTC

TGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCCATGCCGCGTGTATGAAGAAGGCCTTCG

TCGGGAATATTGCGCAATGGAGGAAACTCTGACGCAGTGACGCCGCGTATAGGAAGAAGGTTTTC

TGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCGACGCCGCGTGCGGGATGACGGCCTTC

TGGGGAATTTTGCGCAATGGGGGAAACCCTGACGCAGCAACGCCGCGTGCGGGACGAAGGCGTCC

TAGGGAATTTTCGGCAATGGGGGAAACCCTGACCGAGCAACGCCGCGTGAAGGAAGAAGTAATT

TGGGGAATATTGGACAATGGGCGCAAGCCTGATCCAGCCATACCGCGTGGGTGAAGAAGGTCTTC

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTT

TGGGGAATATTGGGCAATGGGCGCAAGCCTGACCCAGCAACGCCGCGTGAAGGAAGAAGGCTTTCG

TGAGGAATATTGGTCAATGGACGCGAGTCTGAACCAGCCAAGTAGCGTGAAGGATGACTGCCC

TGGGGAATTTTGCGCAATGGGGGCAACCCTGACGCAGCAACGCCGCGTGCGGGACGAAGGCGTCC

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTT

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGCTTT

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGAGCGAAGAAGTATTTC

TGGGGAATATTGGACAATGGGCGCAAGCCTGATCCAGCCATGCCGCGTGAGTGATGAAGGCCCTA
Skip to main content

[Link] 23/46
8/3/24, 12:28 RDF tutorial — NG-Tax

TCGAGAATCATTCACAATGGGGGAAACCCTGATGGTGCGACGCCGCGTGGGGGAATGAAGGTCT

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAGTGATGACGGTCCT

TGGGGAATCTTGCGCAATGGGGGGAACCCTGACGCAGCGACGCCGCGTGCGGGACGGAGGCCTTCG

TGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTT

TCGGGAATATTGCGCAATGGAGGAAACTCTGACGCAGTGACGCCGCGTGCAGGAAGAAGGTTTTC

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCAACGCCGCGCGAGTGAAGAAGTATTTC

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGAGCGAGGAAGTATTTC

TGAGGAATATTGGTCAATGGACGAGAGTCTGAACCAGCCAAGTAGCGTGCAGGATGACGGCCCT

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGAGTGAAGAAGTATTTC

TGAGGAATATTGGTCAATGGACGAGAGTCTGAACCAGCCAAGTAGCGTGTAGGATGACGGCCCT

TGGGGAATATTGGACAATGGGCGGAAGCCTGATCCAGCCATGCCGCGTGTGTGAAGAAGGCCTTTT

TGAGGAATATTGGTCAATGGGCGATGGCCTGAACCAGCCAAGTAGCGTGAAGGATGACTGCCCT

TGAGGAATATTGGACAATGGACGAGAGTCTGAACCAGCCAAGTAGCGTGTAGGATGACGGCCCT

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGAGCGAAGAAGTATTTC

TGAGGAATATTGGTCAATGGACGAGAGTCTGAACCAGCCAAGTAGCGTGAAGGATGACTGTCCT

TGAGGAATATTGGTCAATGGGCGAGAGCCTGAACCAGCCAAGTCGCGTGAGGGACGAATGGTCTA

TGAGGAATATTGGTCAATGGACGAGAGTCTGAACCAGCCAAGTAGCGTGCAGGATGACGGCCCT

TGGGGAATATTGGGCAATGGGCGCAAGCCTGACCCAGCAACGCCGCGTGAAGGAAGAAGGTTTTC

TGAGGAATATTGGTCAATGGGCGAGAGCCTGAACCAGCCAAGTAGCGTGCAGGATGACGGCCCT

TGAGGAATATTGGTCAATGGGCGAGAGCCTGAACCAGCCAAGTAGCGTGCAGGATGACGGCCCT

TGAGGAATATTGGTCAATGGACGAGAGTTTGAACCAGCCAAGTAGCGTGCAGGATGACGGCCCT

TGAGGAATATTGGTCAATGGACGAGAGTCTGAGCCAGCCAAGTAGCGTGTAGGATGACGGCCCT

TGGGGAATATTGGGCAATGGGCGCAAGCCTGACCCAGCAACGCCGCGTGAAGGAAGAAGGCTTTCG

TGAGGAATATTGGTCAATGGACGCGAGTCTGAACCAGCCAAGTAGCGTGAAGGATGACTGCCC

TGAGGAATATTGGTCAATGGGCGAGAGCCTGAACCAGCCAAGTAGCGTGCAGGATGACGGCCCT
Skip to main content

[Link] 24/46
8/3/24, 12:28 RDF tutorial — NG-Tax

TGAGGAATATTGGTCAATGGGCGAGAGCCTGAACCAGCCAAGTAGCGTGCAGGATGACGGCCCT

TGGGGAATATTGCACAATGGGGGGAACCCTGACGCAGCGACGCCGCGTGGAGGAAGAAGGTCTT

TGGGGAATATTGCACAATGGAGGAAACTCTGATGCAGCGATGCCGCGTGAGGGAAGAAGGTTTTA

TGAGGAATATTGGTCAATGGACGAGAGTCTGAACCAGCCAAGTAGCGTGCAGGATGACGGCCCT

TGAGGAATATTGGTCAATGGGCGAGAGCCTGAACCAGCCAAGTAGCGTGCAGGATGACGGCCCT

TGGGGGATATTGCGCAATGGGGGAAACCCTGACGCAGCAACGCCGCGTGATGGAAGAAGGCCTTCG

TGGGGAATATTGCACAATGGGGGAAACTCTGATGCAGCGACGCCGCGTGAGCGAAGAAGTATTTC

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGAGTGAAGAAGTATTTC

TGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTT

TGGGGGATATTGGGCAATGGGCGCAAGCCTGACCCAGCAACGCCGCGTGAAGGAAGAAGGCTTTC

Number of reads per sample


query <- "PREFIX gbol:<[Link]
SELECT ?sampleName ?totalCounts
WHERE {
?library gbol:sample ?sample .
?sample gbol:name ?sampleName .
?sample gbol:metadata/gbol:totalCounts ?totalCounts .
}"
dfGraph2 <- sparql(query, endpoint)

p <- ggplot(data=dfGraph2, aes(x=[Link], y=[Link])) +


geom_bar(stat="identity", fill="steelblue") +
theme_minimal() +
theme([Link].x = element_text(angle = 90, hjust = 1))
p

Skip to main content

[Link] 25/46
8/3/24, 12:28 RDF tutorial — NG-Tax

Histogram of OTU counts


query <- "PREFIX gbol:<[Link]
SELECT ?asvid ?clusteredReadCount
WHERE {
?library gbol:sample ?sample .
?sample gbol:name ?sampleName .
?sample gbol:asv ?asv .
?asv a gbol:ASVSet .
?asv gbol:clusteredReadCount ?clusteredReadCount .
?asv gbol:masterASVId ?asvid .
}"
dfGraph2 <- sparql(query, endpoint)
p <- plot_ly(x = dfGraph2$clusteredReadCount, type = "histogram")
ggplotly(p)

Skip to main content

[Link] 26/46
8/3/24, 12:28 RDF tutorial — NG-Tax

0
100
106
1113
1161
120
128
135
14096
1480
1533
161
171
17841
1848
198
209
2184
227
2358
246
252
263
276
290
303
317
330
3414
371
3866
4058
4219
446
470
496
516
543
590
624
696
Total abundances (raw reads)
*Utilize dataframe from ASV table (Overview of ASV and taxonomic lineage)

taxonomy = paste(sep = ";", dfGraph$Domain, dfGraph$Phylum, dfGraph$Class, dfGraph$O


#
# Create a data frame with the sample name, the counts and the taxonomy
dfGraph2 = [Link](cbind([Link](dfGraph$sampleName), dfGraph$counts, taxonomy)
# Set column names
colnames(dfGraph2) = c("sampleName","counts","taxonomy")
# Convert counts to numeric
dfGraph2$counts = [Link](dfGraph2$counts)
#sum the counts of same taxonomy inside different samples
dfGraph2 = aggregate(counts ~ taxonomy + sampleName, data = dfGraph2, sum)

p <- ggplot() +
geom_bar(aes(y = counts, x = sampleName, fill = taxonomy), data = dfGraph2, stat="
theme([Link].x = element_text(angle = 90, hjust = 1)) +
theme([Link]="none")
ggplotly(p)

100000

75000
counts

50000

25000

0
Skip to main content

[Link] 27/46
8/3/24, 12:28 RDF tutorial — NG-Tax

Sample1_DRR243845_1.[Link]

Sample1_DRR243850_1.[Link]

Sample1_DRR243856_1.[Link]

Sample1_DRR243863_1.[Link]

Sample1_DRR243881_1.[Link]

Sample1_DRR243894_1.[Link]

Sample1_DRR243899_1.[Link]

Sample1 DRR243906 1 fastq gz


sampleName

Total abundances (%)


*Utilize dataframe from ASV table (Overview of ASV and taxonomic lineage)

taxonomy = paste(sep = ";", dfGraph$Domain, dfGraph$Phylum, dfGraph$Class, dfGraph$O


dfGraph2 = [Link](cbind([Link](dfGraph$sampleName), dfGraph$counts, taxonomy)
colnames(dfGraph2) = c("sampleName","counts","taxonomy")
dfGraph2$counts = [Link](dfGraph2$counts)
#sum the counts of same taxonomy inside different samples
dfGraph2 = aggregate(counts ~ taxonomy + sampleName, data = dfGraph2, sum)
p <- ggplot(dfGraph2, aes(x=sampleName, y=counts, fill=taxonomy)) +
geom_bar(stat="identity", position = "fill") +
scale_y_continuous() +
theme([Link]="none") +
theme([Link].x = element_text(angle = 90, hjust = 1))
ggplotly(p)

Skip to main content

[Link] 28/46
8/3/24, 12:28 RDF tutorial — NG-Tax

1.00

counts 0.75

0.50

0.25

0.00
Sample1_DRR243845_1.[Link]

Sample1_DRR243850_1.[Link]

Sample1_DRR243856_1.[Link]

Sample1_DRR243863_1.[Link]

Sample1_DRR243881_1.[Link]

Sample1_DRR243894_1.[Link]

Sample1_DRR243899_1.[Link]

Sample1 DRR243906 [Link]


sampleName

Present/absent of taxonomic lineage via heatmap


*Utilize dataframe from ASV table (Overview of ASV and taxonomic lineage)

taxonomy = paste(dfGraph$Genus)
dfGraph2 = [Link]([Link]([Link](dfGraph$sampleName), taxonomy))
colnames(dfGraph2) = c("sampleName", "taxonomy")
dfGraph2 <- table(dfGraph2)
dfGraph2 <- [Link](dfGraph2)
dfGraph2[dfGraph2 > 0] <- 1
dfGraph2 <- [Link](dfGraph2)
colnames(dfGraph2) = c("sampleName", "taxonomy","counts")
p <- ggplot(dfGraph2, aes(sampleName, taxonomy)) +
geom_tile(aes(fill = counts), colour = "white") +
scale_fill_gradient(low = "white", high = "steelblue") +
theme([Link].x = element_text(angle = 90, hjust = 1))
p

Warning message in [Link](left, right):


"'>' not meaningful for factors"
Warning message in [Link](left, right):
"'>' not meaningful for factors"

Skip to main content

[Link] 29/46
8/3/24, 12:28 RDF tutorial — NG-Tax

Advance queries

Overlapped ASVs between samples


#
query <- "PREFIX gbol: <[Link]
SELECT DISTINCT ?sampleName ?taxonName
WHERE {
?sample a gbol:Sample .
?sample gbol:name ?sampleName .
?sample gbol:asv ?asv .
?asv a gbol:ASVSet .
?asv gbol:assignedTaxon ?assignedTaxon .
?assignedTaxon gbol:taxonName ?taxonName .
{ Skip to main content

[Link] 30/46
8/3/24, 12:28 RDF tutorial — NG-Tax
SELECT DISTINCT ?taxonName (COUNT(DISTINCT(?sample)) AS ?sampleC
WHERE {
?sample a gbol:Sample .
?sample gbol:asv ?asv .
?asv gbol:assignedTaxon ?assignedTaxon .
?assignedTaxon gbol:taxonName ?taxonName .
} GROUP BY ?taxonName
HAVING(?sampleC > 1)
}
}"
dfGraph <- sparql(query, endpoint)
dfGraph

Skip to main content

[Link] 31/46
8/3/24, 12:28 RDF tutorial — NG-Tax

A [Link]: 340 x 2

[Link]

<chr>

Sample1_DRR243856_1.[Link] Bacteria;Proteobacteria;Gammaproteobacteria;Xan

Sample1_DRR243894_1.[Link] Bacteria;Proteobacteria;Gammaproteobacteria;Xan

Sample1_DRR243906_1.[Link] Bacteria;Proteobacteria;Gammaproteobacteria;Xan

Sample1_DRR243850_1.[Link] Bacteria;Proteobacteria;Gammaproteobacteria;Xan

Sample1_DRR243856_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospirales;Rum

Sample1_DRR243863_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospirales;Rum

Sample1_DRR243881_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospirales;Rum

Sample1_DRR243899_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospirales;Rum

Sample1_DRR243894_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospirales;Rum

Sample1_DRR243906_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospirales;Rum

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospirales;Rum

Sample1_DRR243850_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospirales;Rum

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospirales;Rum

Sample1_DRR243856_1.[Link] Bacteria;Proteobacteria;Gammaproteob

Sample1_DRR243894_1.[Link] Bacteria;Proteobacteria;Gammaproteob

Sample1_DRR243906_1.[Link] Bacteria;Proteobacteria;Gammaproteob

Sample1_DRR243850_1.[Link] Bacteria;Proteobacteria;Gammaproteob

Sample1_DRR243856_1.[Link]

Sample1_DRR243881_1.[Link]

Sample1_DRR243899_1.[Link]

Sample1_DRR243924_1.[Link]

Sample1_DRR243850_1.[Link]

Sample1_DRR243845_1.[Link]

Sample1_DRR243856_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillos

Sample1_DRR243863_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillos
Skip to main content

[Link] 32/46
8/3/24, 12:28 RDF tutorial — NG-Tax

[Link]

<chr>

Sample1_DRR243881_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillos

Sample1_DRR243899_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillos

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillos

Sample1_DRR243850_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillos

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillos

...

Sample1_DRR243850_1.[Link] Bacteria;Firmicutes;Bacilli;Erysipelotrichales;Erysipela

Sample1_DRR243881_1.[Link] Bacteria;Actinobacteriota;Coriobacteriia;Coriobacte

Sample1_DRR243881_1.[Link] Bacteria;Actinobacteriota;Corioba

Sample1_DRR243924_1.[Link] Bacteria;Actinobacteriota;Corioba

Sample1_DRR243881_1.[Link] Bacteria;Bacter

Sample1_DRR243899_1.[Link] Bacteria;Bacter

Sample1_DRR243881_1.[Link] Bacteria;Actinobacteriota

Sample1_DRR243924_1.[Link] Bacteria;Actinobacteriota

Sample1_DRR243850_1.[Link] Bacteria;Actinobacteriota

Sample1_DRR243881_1.[Link] Bacteria;Firmicutes;Clostridia;Lachnospirales;Lachnosp

Sample1_DRR243850_1.[Link] Bacteria;Firmicutes;Clostridia;Lachnospirales;Lachnosp

Sample1_DRR243881_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospirales;Eubact

Sample1_DRR243899_1.[Link] Bacteria;Firmicutes;Clostridia

Sample1_DRR243899_1.[Link] Bacteria;Firmicute

Sample1_DRR243850_1.[Link] Bacteria;Firmicute

Sample1_DRR243899_1.[Link] Bacteria;Firmicutes;Clostridia;Peptostreptococcale

Sample1_DRR243906_1.[Link] Bacteria;Firmicutes;Clostridia;Peptostreptococcale

Sample1_DRR243894_1.[Link] Bacteria;Actinobacteriota;Actinobacteria;Actinomycetales

Sample1_DRR243850_1.[Link]
Tissierellales;Anaerovorac
Skip to main content

[Link] 33/46
8/3/24, 12:28 RDF tutorial — NG-Tax

[Link]

<chr>

Sample1_DRR243845_1.[Link] Bacteria;Bacteroidota;Bacteroidia;Bacter

Sample1_DRR243845_1.[Link] Bacteria;Cyanobacteria;Vampiriv

Sample1_DRR243845_1.[Link] Bacteria;Firmic

Sample1_DRR243906_1.[Link] Bacteria;Firmicutes;Bacilli;Erysipelotrichales;Erysipelatoclos

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Monogloba

Sample1_DRR243906_1.[Link] Bacteria;Firmicutes;Clostridia;Lachnospirales;Lachnospiracea

Sample1_DRR243894_1.[Link] Bacteria;Firmicutes;Negativicutes;Veillonella

Sample1_DRR243906_1.[Link] Bacteria;Firmicutes;Negativicutes;Veillonella

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;Ba

Sample1_DRR243850_1.[Link] Bacteria;Firmicutes;Ba

Sample1_DRR243850_1.[Link] Archaea;Euryarchaeota;Methanobacteria;Methan

Non-overlapped OTUs
query <- paste0("PREFIX gbol: <[Link]
SELECT DISTINCT ?sampleName ?taxonName
WHERE {
?sample a gbol:Sample .
?sample gbol:name ?sampleName .
?sample gbol:asv ?asv .
?asv a gbol:ASVSet .
?asv gbol:assignedTaxon ?assignedTaxon .
?assignedTaxon gbol:taxonName ?taxonName .
{
SELECT DISTINCT ?taxonName (COUNT(DISTINCT(?sample)) AS ?sampleC
WHERE {
?sample a gbol:Sample .
?sample gbol:asv ?asv .
?asv gbol:assignedTaxon ?assignedTaxon .
?assignedTaxon gbol:taxonName ?taxonName .
} GROUP BY ?taxonName
HAVING(?sampleC = 1)
}
}")
dfGraph <- sparql(query, endpoint)
dfGraph

Skip to main content

[Link] 34/46
8/3/24, 12:28 RDF tutorial — NG-Tax

A [Link]: 50 x 2

[Link]

<chr>

Sample1_DRR243856_1.[Link]

Sample1_DRR243856_1.[Link] Bacteria;Firmic

Sample1_DRR243856_1.[Link] Bacteria;Firmic

Sample1_DRR243856_1.[Link]

Sample1_DRR243856_1.[Link] Bacteria;Firmicutes;Clo

Sample1_DRR243856_1.[Link] Bacteria;F

Sample1_DRR243856_1.[Link] Bacteria;Proteobacteria;Alphapro

Sample1_DRR243856_1.[Link]
Tissierellales;Pep

Sample1_DRR243856_1.[Link] Bacteria;Firmicutes;Bacilli;Erysipelot

Sample1_DRR243863_1.[Link] Bacteria;Bacteroidota;Bacteroidia;Ba

Sample1_DRR243863_1.[Link] Bacteria;Bacteroidota;Bac

Sample1_DRR243863_1.[Link] Bacteria;Proteobacteria;Gammaproteobacteria;Entero

Sample1_DRR243863_1.[Link] Bacteria;Firmicutes;Negativic

Sample1_DRR243863_1.[Link] Bacteria;Bacteroidota;Bacteroid

Sample1_DRR243863_1.[Link] Bacteria;Firmicutes;Clostridia;Lac

Sample1_DRR243863_1.[Link] Bacteria;Proteobacteria;Gamm

Sample1_DRR243863_1.[Link] Bacteria;Firmicutes;Clostridia;Lachnospirales;Lachnosp

Sample1_DRR243881_1.[Link] Bacteria;Firmicutes;Negativicute

Sample1_DRR243881_1.[Link] Bacteria;Firm

Sample1_DRR243881_1.[Link] Bacteria;Bacteroidot

Sample1_DRR243881_1.[Link] Bacteria;Firmicutes;Bacilli;Erysipelotrichales;

Sample1_DRR243881_1.[Link] Bacteria;Proteobacteria;Gammapro

Sample1_DRR243881_1.[Link]

Sample1_DRR243881_1.[Link] Bacteria;Actinobacteriota;Coriobacteriia;
Skip to main content

[Link] 35/46
8/3/24, 12:28 RDF tutorial — NG-Tax

[Link]

<chr>

Sample1_DRR243899_1.[Link] Bacteria;Firm

Sample1_DRR243899_1.[Link] Bacteria;Firmicutes;Clostridia;Christe

Sample1_DRR243899_1.[Link] Bacteria;Firmicutes;Clostridia;Lachnospirales;Lac

Sample1_DRR243899_1.[Link] Bacteria;Firmicutes;Cl

Sample1_DRR243899_1.[Link] Bacte

Sample1_DRR243899_1.[Link] Bacteria;Firmicutes;Bacilli;Erysipelo

Sample1_DRR243894_1.[Link] Bacteria;Firmicutes;Clostridia

Sample1_DRR243906_1.[Link]

Sample1_DRR243906_1.[Link] Bacteria;Firmicutes;Clostridia;Lachnos

Sample1_DRR243906_1.[Link] Bacter

Sample1_DRR243906_1.[Link] Bacteria;Proteo

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;Bacilli;Erysipelotrichales;Erysipelo

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;Bacilli;Erysipelo

Sample1_DRR243924_1.[Link] Bacteria

Sample1_DRR243850_1.[Link] Bacteria;Firmicutes;Clostridia;Pep

Sample1_DRR243850_1.[Link] Bacteria;Fi

Sample1_DRR243850_1.[Link] Bacteria;Actinobacteriota;Coriobacteriia;Coriobacteriales;Co

Sample1_DRR243850_1.[Link] Bacteria;Verrucomicrobiota;Verruc

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Lachnos

Sample1_DRR243845_1.[Link] Bacteria;

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;L

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostr

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Oscil

Sample1_DRR243845_1.[Link] Bact

Bacteria;Firmicutes;Clostridia;Peptostr
Sample1_DRR243845_1.[Link]

Skip to main content

[Link] 36/46
8/3/24, 12:28 RDF tutorial — NG-Tax

[Link]

<chr>

Sample1_DRR243845_1.[Link] Bacteria;

Possible ASV taxonomic classification hits at genus


level
query <- "PREFIX gbol: <[Link]
SELECT DISTINCT ?sampleName ?taxName ?ratio
WHERE {
?library gbol:sample ?sample .
?sample gbol:name ?sampleName .
?sample gbol:asv ?asv .
?asv gbol:masterASVId ?asvid .
?asv gbol:asvAssignment ?possibleAssignment .
FILTER (contains(str(?possibleAssignment), \"Level/4\"))
?possibleAssignment gbol:taxon ?tax .
?tax gbol:taxonName ?taxName .
?possibleAssignment gbol:ratio ?ratio .
} ORDER BY ?sampleName ?asvid DESC(?ratio)"
dfGraph <- sparql(query, endpoint)
dfGraph

Skip to main content

[Link] 37/46
8/3/24, 12:28 RDF tutorial — NG-Tax

A [Link]: 113

[Link]

<chr>

Sample1_DRR243845_1.[Link] Bacteria;Firmic

Sample1_DRR243845_1.[Link] Bacteria;Firmic

Sample1_DRR243845_1.[Link] Bacteria;B

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clos

Sample1_DRR243845_1.[Link] Bacte

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Peptostre

Sample1_DRR243845_1.[Link] Bacteria;Firmicute

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clos

Sample1_DRR243845_1.[Link] Ba

Sample1_DRR243845_1.[Link] Bacter

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clo

Sample1_DRR243845_1.[Link] Bacteria;Firm

Sample1_DRR243845_1.[Link] Bacteria;Cyanobacte

Sample1_DRR243845_1.[Link] Bacter

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostrid

Sample1_DRR243845_1.[Link] Bacteria

Sample1_DRR243845_1.[Link] Bacteria;Fi

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospir

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Os

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillo

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospirales;

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospirales;Eubacterium_co

Sample1_DRR243845_1.[Link] Bacteria;

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostrid

Sample1_DRR243845_1.[Link] Bacteria;Firm
Skip to main content

[Link] 38/46
8/3/24, 12:28 RDF tutorial — NG-Tax

[Link]

<chr>

Sample1_DRR243845_1.[Link] Bacteria;

Sample1_DRR243845_1.[Link] Bact

Sample1_DRR243845_1.[Link] Bacteria;Firmic

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clos

Sample1_DRR243845_1.[Link] Bacte

...

Sample1_DRR243924_1.[Link] Bacteria;Firm

Sample1_DRR243924_1.[Link] Bacteria;Proteobacteria;G

Sample1_DRR243924_1.[Link] Bacteria;Proteobacteria

Sample1_DRR243924_1.[Link] Bacteria;Proteobacteria;Gammap

Sample1_DRR243924_1.[Link] Bacteria;Proteobacteria;Gam

Sample1_DRR243924_1.[Link] Bacteria;Proteobacte

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;Clostridia;

Sample1_DRR243924_1.[Link] Bacteria;Proteobacteria;Gamm

Sample1_DRR243924_1.[Link] Bacteria;Proteobacteria;Gammaproteobacteria;Enterobact

Sample1_DRR243924_1.[Link]

Sample1_DRR243924_1.[Link] Bacteria;Proteobacteria;Gammap

Sample1_DRR243924_1.[Link] Bacteria;Proteobacteria;Gammap

Sample1_DRR243924_1.[Link] Bacteria;Actinoba

Sample1_DRR243924_1.[Link] Bacteria;Bacte

Sample1_DRR243924_1.[Link] Bacteria;Proteobacteria;Gam

Sample1_DRR243924_1.[Link] Bacteria;Proteobacteria;Gam

Sample1_DRR243924_1.[Link] Bacteria;Proteobacteria;Gamm

Sample1_DRR243924_1.[Link] Bacteria;Proteobacter

Sample1_DRR243924_1.[Link] Bacteria;Proteobacteria;Gam
Skip to main content

[Link] 39/46
8/3/24, 12:28 RDF tutorial — NG-Tax

[Link]

<chr>

Sample1_DRR243924_1.[Link] Bacteria;Proteobacteria;Gammapro

Sample1_DRR243924_1.[Link] Bacteria;Proteobacteri

Sample1_DRR243924_1.[Link] Bacteria;Proteobact

Sample1_DRR243924_1.[Link] Bacteria;Firm

Sample1_DRR243924_1.[Link] Bacteria;Firmic

Sample1_DRR243924_1.[Link] Bacteria;Firmic

Sample1_DRR243924_1.[Link] Bacteria

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospira

Sample1_DRR243924_1.[Link] Bacteria;F

Sample1_DRR243924_1.[Link] Bacteria;Proteobacteria

Taxonomic assignment details


Number of ASVs and the summation of the reads that being assigned to a taxonomy.

query <- "PREFIX gbol: <[Link]


SELECT ?sampleName ?taxonName (COUNT(?asv) AS ?asvs) (SUM(?clustered
WHERE {
?library a gbol:Library .
?library gbol:sample ?sample .
?sample gbol:name ?sampleName .
?sample gbol:asv ?asv .
?asv gbol:assignedTaxon ?assignedTaxon .
?asv gbol:clusteredReadCount ?clusteredReadCount .
?assignedTaxon gbol:taxonName ?taxonName .
} GROUP BY ?sampleName ?taxonName
ORDER BY ?sampleName DESC(?totalCount)"
dfGraph <- sparql(query, endpoint)
dfGraph

Skip to main content

[Link] 40/46
8/3/24, 12:28 RDF tutorial — NG-Tax

A [Link]

[Link]

<chr>

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;

Sample1_DRR243845_1.[Link] Bacteria;Bacteroidota;Bacteroidia;Bac

Sample1_DRR243845_1.[Link] Bacteria;Bacter

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Os

Sample1_DRR243845_1.[Link] Bacteria;Firmicut

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospirale

Sample1_DRR243845_1.[Link] Bacteria;Fir

Sample1_DRR243845_1.[Link] Bacteria;Bacte

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospirales;Eub

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Lachno

Sample1_DRR243845_1.[Link] Bacteria;F

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Os

Sample1_DRR243845_1.[Link] B

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Lachnospirales;Lachnospirace

Sample1_DRR243845_1.[Link] Bacteria;Firmicut

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Monog

Sample1_DRR243845_1.[Link] Bacteria;Bacteroido

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Lachnospirales;Lachnospirac

Sample1_DRR243845_1.[Link] Bacteria;Proteobacteria;Gammaproteobacte

Sample1_DRR243845_1.[Link] Bacteria;Proteobacteria;Gammaproteobacteria;Enterobacte

Sample1_DRR243845_1.[Link] Bacteria;Firmi

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillosp

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Lachnos

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;

Sample1_DRR243845_1.[Link] Bacteria;Firmicu
Skip to main content

[Link] 41/46
8/3/24, 12:28 RDF tutorial — NG-Tax

[Link]

<chr>

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;C

Sample1_DRR243845_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillospir

Sample1_DRR243845_1.[Link] Bacteria;F

Sample1_DRR243845_1.[Link] Bacteria;F

...

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;

Sample1_DRR243924_1.[Link] Bacteria;Actinobacteriota;Co

Sample1_DRR243924_1.[Link] Bacteria;Actinobacteriota

Sample1_DRR243924_1.[Link] Bacteria;Actinobacte

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;Clostridia;La

Sample1_DRR243924_1.[Link] Bacteria;Actinobacteriota;Cor

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;C

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;Bacilli;Erysipelotrichales;Erysipelotri

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;Negativicutes;Veillonellales-Sele

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;Bacilli;Erysipelotr

Sample1_DRR243924_1.[Link] Bacteria;Firm

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;Clostridia;La

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;Clostridia;Clostridiales;Clos

Sample1_DRR243924_1.[Link] Bacteria;Fi

Sample1_DRR243924_1.[Link] Bacteria;P

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;Bacilli;Erysipelotrichales;Erys

Sample1_DRR243924_1.[Link] Bacteria;Firmicut

Sample1_DRR243924_1.[Link]

Sample1_DRR243924_1.[Link] Bacteria;Actinobacteriota;Coriobacteriia;Coriob

Sample1_DRR243924_1.[Link] Archaea;Euryarchaeota;Methanobacteria;Me
Skip to main content

[Link] 42/46
8/3/24, 12:28 RDF tutorial — NG-Tax

[Link]

<chr>

Sample1_DRR243924_1.[Link] Bacteria;Bacteroidota;Bacteroidia;Bac

Sample1_DRR243924_1.[Link] Bacteria;F

Sample1_DRR243924_1.[Link] Bacteria;Actinobacteriota;Coriobacteriia;Coriob

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;Clostridia;Peptostrep

Sample1_DRR243924_1.[Link] Bacteria;Firmicu

Sample1_DRR243924_1.[Link] Bacteria;Actinobacteri

Sample1_DRR243924_1.[Link] Bacteria;Bacteroidota;Bacteroidia;Flav

Sample1_DRR243924_1.[Link] Bacteria;Firmicut

Sample1_DRR243924_1.[Link] Bacteria;Firm

Sample1_DRR243924_1.[Link] Bacteria;Firmicutes;Clostridia;Oscillo

Taxonomic classification comparison between


databases
query <- "PREFIX gbol: <[Link]
SELECT ?fseq ?rseq ?taxName ?db
WHERE {
?library gbol:provenance ?prov .
?prov gbol:annotation ?annot .
?annot gbol:refdb ?db .
?library gbol:sample ?sample .
?sample gbol:asv ?asv .
?asv gbol:forwardASV ?fasv .
?fasv gbol:sequence ?fseq .
?asv gbol:reverseASV ?rasv .
?rasv gbol:sequence ?rseq .
?asv gbol:assignedTaxon ?tax .
?tax gbol:taxonName ?taxName .
} ORDER BY ?fseq ?rseq"
dfGraph <- sparql(query, endpoint)
dfGraph

Skip to main content

[Link] 43/46
8/3/24, 12:28 RDF tutorial — NG-Tax

AGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTTCG

AGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTTCG

AGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTTCG

AGGGGAATATTGGACAATGGGCGCAAGCCTGATCCAGCCATACCGCGTGGGTGAAGAAGGCCTTCG

AGGGGAATATTGGACAATGGGCGCAAGCCTGATCCAGCCATACCGCGTGGGTGAAGAAGGCCTTCG

AGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTTCG

AGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTTCG

CCGGGAATATTGCGCAATGGAGGAAACTCTGACGCAGTGACGCCGCGTATAGGAAGAAGGTTTTCG

CGAGGAATATTGGTCAATGGACGAGAGTCTGAACCAGCCAAGTAGCGTGCAGGATGACGGCCCTAT

CGGGGAATATTGCACAATGGGCGAAAGCCTGATGCAGCGACGCCGCGTGAGCGAAGAAGTATTTCG

CGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCCATGCCGCGTGTATGAAGAAGGCCTTCGG

CGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCCATGCCGCGTGTATGAAGAAGGCCTTCGG

CGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCCATGCCGCGTGTATGAAGAAGGCCTTCGG

CGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCCATGCCGCGTGTATGAAGAAGGCCTTCGG

CGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTTCG

CGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTTCG

CGGGGAATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTCTTCG

CGGGGAATATTGGACAATGGGCGCAAGCCTGATCCAGCCATACCGCGTGGGTGAAGAAGGCCTTCG

CGGGGAATATTGGACAATGGGCGCAAGCCTGATCCAGCCATACCGCGTGGGTGAAGAAGGCCTTCG

CGGGGAATATTGGACAATGGGCGCAAGCCTGATCCAGCCATACCGCGTGGGTGAAGAAGGCCTTCG

CGGGGAATTTTGGACAATGGGGGAAACCCTGATCCAGCCATCCCGCGTGTGCGATGAAGGCCTTCGG

CGGGGAATTTTGGACAATGGGGGAAACCCTGATCCAGCCATCCCGCGTGTGCGATGAAGGCCTTCGG

CGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTTCG

CGGGGGATATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTTCG

GCGCGAAACCTCCGCAATGTGAGAAATCGCGACGGGGGGATCCCAAGTGCCATTCTTAACGGGATG
Skip to main content

[Link] 44/46
8/3/24, 12:28 RDF tutorial — NG-Tax

GCGCGAAACCTCCGCAATGTGAGAAATCGCGACGGGGGGATCCCAAGTGCCATTCTTAACGGGATG

GCGCGAACCCTCCGCAATGTGAGAAATCGCGACGGGGGGATCCCAAGTGCCATTCTTAACGGGATG

TAAGGAATTTTCGGCAATGGAGGAAACTCTGACCGAGCAACGCCGCGTGAGTGATGAAGGCCTTCG

TAGGGAATATTGCACAATGGAGGAAACTCTGATGCAGCCATGCCGCGTGTGTGAAGAAGGCCTTCGG

TAGGGAATATTGCACAATGGAGGAAACTCTGATGCAGCCATGCCGCGTGTGTGAAGAAGGCCTTCGG

TGGGGGGTATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTTCG

TGGGGGGTATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTTCG

TGGGGGGTATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTTCG

TGGGGGGTATTGCACAATGGGGGAAACCCTGATGCAGCGACGCCGCGTGGAGGAAGAAGGTTTTCG

TTAGGAATATTCGGCAATGGGGGAAACCCTGACCGAGCAATGCCGCGTGTGAGATGAAGGTCCTT

TTAGGAATATTCGTCAATGGAGGAAACTCTGAACGAGCAATGCCGCGTGAACGATGACGGCCCTAT

TTAGGAATATTCGTCAATGGAGGAAACTCTGAACGAGCAATGCCGCGTGAAGGAAGACGGTCCTTT

TTAGGAATATTCGTCAATGGAGGAAACTCTGAACGAGCAATGCCGCGTGAGTGATGAAGGTCTTAT

TTAGGAATATTCGTCAATGGAGGAAACTCTGAACGAGCAATGCCGCGTGAGTGATGAAGGTCTTAT

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAACGATGAAGGCCCTAT

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAACGATGAAGGCCCTAT

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAACGATGAAGGCCCTAT

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAACGATGACGGCCCTAT

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAAGGAAGACGGTCCTCT

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAAGGAAGACGGTCCTCT

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAAGGATGACGGTCCTTT

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAATGAAGAAGGCCCTA

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAATGAAGAAGGCCCTA

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAGTGATGAAGGCCCTC

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAGTGATGAAGGTCCTC
Skip to main content

[Link] 45/46
8/3/24, 12:28 RDF tutorial — NG-Tax

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAGTGATGAAGGTCCTC

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAGTGATGAAGGTCCTC

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAGTGATGAAGGTCCTTT

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAGTGATGAAGGTCTTTA

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAGTGATGACGGTCCTCT

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAGTGATGACGGTCCTC

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAGTGATGACGGTCCTT

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAGTGATGACGGTCCTT

TTAGGAATATTCGTCAATGGGGGAAACCCTGAACGAGCAATGCCGCGTGAGTGATGAGGGTCCTC

TTAGGAATATTCGTCAATGGGGGGAACCCTGAACGAGCAATGCCGCGTGAGTGATGAAGGTCTTAT

Previous
Coverage

[Link] 46/46

You might also like