This document imports common bioinformatics file types into R and examines the data structure and data types used to store each file.

# Load packages -------------------------------------

library(ape)
# Import FASTA file ---------------------------------

fasta_data <- read.dna(
  "MT103168.fasta",
  format = "fasta",
  as.matrix = FALSE
)

head(fasta_data)
## 1 DNA sequence in binary format stored in a list.
## 
## Sequence length: 1560 
## 
## Label:
## MT103168.1 Bifidobacterium longum strain BB536 cell division...
## 
## Base composition:
##     a     c     g     t 
## 0.156 0.319 0.289 0.236 
## (Total: 1.56 kb)
str(fasta_data)
## List of 1
##  $ MT103168.1 Bifidobacterium longum strain BB536 cell division protein FtsW (rodA) gene, complete cds: raw [1:1560] 88 18 48 88 ...
##  - attr(*, "class")= chr "DNAbin"
length(fasta_data)
## [1] 1

The FASTA file is stored as a list containing one DNA sequence in binary DNAbin format.

#Import FASTQ file -----------------------------------

fastq_data <- read.fastq("ERR1072710.fastq")

head(fastq_data)
## 3 DNA sequences in binary format stored in a list.
## 
## Mean sequence length: 183.667 
##    Shortest sequence: 146 
##     Longest sequence: 259 
## 
## Labels:
## ERR1072710.1 10317.000001315_0 length=151
## ERR1072710.2 10317.000001315_1 length=116
## ERR1072710.4 10317.000001315_3 length=151
## 
## Base composition:
##     a     c     g     t 
## 0.318 0.208 0.254 0.219 
## (Total: 551 bases)
str(fastq_data)
## List of 3
##  $ ERR1072710.1 10317.000001315_0 length=151: raw [1:146] 18 18 88 88 ...
##  $ ERR1072710.2 10317.000001315_1 length=116: raw [1:259] 18 28 18 28 ...
##  $ ERR1072710.4 10317.000001315_3 length=151: raw [1:146] 28 28 88 28 ...
##  - attr(*, "class")= chr "DNAbin"
##  - attr(*, "QUAL")=List of 7
##   ..$ ERR1072710.1 10317.000001315_0 length=151: num [1:11] 32 38 51 34 32 34 32 34 32 38 ...
##   ..$ ERR1072710.2 10317.000001315_1 length=116: num [1:11] 30 30 30 30 30 30 30 30 30 30 ...
##   ..$ ERR1072710.4 10317.000001315_3 length=151: num [1:42] 10 36 49 49 16 15 22 17 22 16 ...
##   ..$ NA                                       : num [1:70] 51 32 34 38 38 32 38 38 38 51 ...
##   ..$ NA                                       : num [1:67] 30 30 30 30 30 30 30 30 30 30 ...
##   ..$ NA                                       : num [1:11] 32 51 51 32 38 32 38 34 34 51 ...
##   ..$ NA                                       : num [1:11] 30 30 30 30 30 30 30 30 30 30 ...
length(fastq_data)
## [1] 3

The FASTQ file is stored as a list containing three DNA sequences in binary DNAbin format. The file also contains quality-score information for the sequences.

#Import VCF file -------------------------------------

vcf_file <- "TwoVariants.vcf"

skip_lines <- length(grep("^##", readLines(vcf_file)))

vcf_data <- read.csv(
  vcf_file,
  sep = "\t",
  skip = skip_lines, 
  header = TRUE,
  check.names = FALSE
)

head(vcf_data)
##              #CHROM POS ID REF ALT QUAL FILTER                 INFO
## 1 NZ_BCYL01000006.1  29  .   A   G    .      .  AC=84;AF=1.0;SB=0.0
## 2 NZ_BCYL01000006.1 145  .   A   G    .      . AC=114;AF=1.0;SB=0.0
##           FORMAT                   __NONE__
## 1 GT:AC:AF:SB:NC  1:84:1.0:0.0:+G=37,-G=47,
## 2 GT:AC:AF:SB:NC 1:114:1.0:0.0:+G=42,-G=72,
str(vcf_data)
## 'data.frame':    2 obs. of  10 variables:
##  $ #CHROM  : chr  "NZ_BCYL01000006.1" "NZ_BCYL01000006.1"
##  $ POS     : int  29 145
##  $ ID      : chr  "." "."
##  $ REF     : chr  "A" "A"
##  $ ALT     : chr  "G" "G"
##  $ QUAL    : chr  "." "."
##  $ FILTER  : chr  "." "."
##  $ INFO    : chr  "AC=84;AF=1.0;SB=0.0" "AC=114;AF=1.0;SB=0.0"
##  $ FORMAT  : chr  "GT:AC:AF:SB:NC" "GT:AC:AF:SB:NC"
##  $ __NONE__: chr  "1:84:1.0:0.0:+G=37,-G=47," "1:114:1.0:0.0:+G=42,-G=72,"

The VCF file is stored as a data frame with two variants and ten variables. The POS column is stored as an integer, while the remaining columns are stored as character data.