R/sqlite_view_qhchains.R

Defines functions sqlite_view_qhchains

Documented in sqlite_view_qhchains

#' sqlite_view_qhchains
#'
#' @param xh fraction for clonotypes
#' @param alnstart alnstart
#' @param cdhit_dbtype cdhit dbtype
#' @param cdhit_fraction cdhit fraction
#' @param depth depth
#' @param group_by_clonotype boolean
#' @param extras extra columns from heavy_chains table
#' @param cdhit_view_name cdhit view name
#'
#' @return
#' @export
#'
#' @examples
sqlite_view_qhchains <- function(xh = 0.8,
                                 alnstart = 9,
                                 cdhit_view_name = "cds_99",
                                 cdhit_dbtype = "nt",
                                 cdhit_fraction=100,
                                 depth=1,
                                 group_by_clonotype=FALSE,
                                 extras="") {
  if ((length(extras) > 0 ) && extras != "") {
    extras <- sprintf("%s, ",
                      paste(paste0("hc_1.", extras), collapse=", ")
    )
  }
  if (group_by_clonotype)
    sql_hc <- sprintf('
    SELECT
  	hc_1.name, hc_1.chain_type,
    hc_1.vh, hc_1.vh2,
    hc_1.jh, hc_1.jh2,
    hc_1.dh, hc_1.dh2,
    hc_1.cdr3_seq,
    substr(hc_1.vh, 1,1) as V,
    hc_1.cdr3, hc_1.length,
    hc_1.mutations,
    %s
    rs.R_FR1,
    rs.R_CDR1,
    rs.R_FR2,
    rs.R_CDR2,
    rs.R_FR3,
    rs.FREQ_R_FR1,
    rs.FREQ_R_CDR1,
    rs.FREQ_R_FR2,
    rs.FREQ_R_CDR2,
    rs.FREQ_R_FR3,
    rs.S_FR1,
    rs.S_CDR1,
    rs.S_FR2,
    rs.S_CDR2,
    rs.S_FR3,
    rs.FREQ_S_FR1,
    rs.FREQ_S_CDR1,
    rs.FREQ_S_FR2,
    rs.FREQ_S_CDR2,
    rs.FREQ_S_FR3,
    rs.RS_FR1,
    rs.RS_CDR1,
    rs.RS_FR2,
    rs.RS_CDR2,
    rs.RS_FR3,
    rs.R_VREG,
    rs.FREQ_R_VREG,
    rs.S_VREG,
    rs.FREQ_S_VREG,
    rs.RS_VREG,
    mut_hc.pos_ch_cdr3, mut_hc.neg_ch_cdr3,
    mut_hc.gravy_cdr3, mut_hc.div_germ,
    mut_hc.ncl_mut_fr1,
    mut_hc.ncl_mut_cdr1,
    mut_hc.ncl_mut_fr2,
    mut_hc.ncl_mut_cdr2,
    mut_hc.ncl_mut_fr3,
    COALESCE(cl.clstr_id, -hc_1.rowid) AS id2,
    cl.clstr_id, cl.color, cl.fraction,
    sb.subtype,
    cdhit_99.n as depth
    FROM
    heavy_chains hc_1,
    %s AS cdhit_99,
    rs_ratios rs,
    mutations_hc mut_hc,
    subtypes sb,
    clones_hc cl
    WHERE hc_1.name = cdhit_99.name
    AND hc_1.name = rs.name
    AND hc_1.name = mut_hc.name
    AND hc_1.name = sb.name
    AND hc_1.name = cl.name
    AND hc_1.evalue < 10e-3
    AND hc_1.vh != ""
    AND hc_1.jh != ""
    AND hc_1.stop = 0
    AND hc_1.fr1 != ""
    AND hc_1.cdr1 != ""
    AND hc_1.fr2 != ""
    AND hc_1.cdr2 != ""
    AND hc_1.fr3 != ""
    AND hc_1.wgxg = 1
    AND hc_1.alnstart <= %s
    AND cl.fraction = %s
    AND cdhit_99.fraction = %s
    AND cdhit_99.dbtype = "%s"
    AND cdhit_99.n >= %s
    GROUP BY id2;
   ', extras, cdhit_view_name, alnstart, xh, cdhit_fraction, cdhit_dbtype, depth)
  else
    sql_hc <- sprintf('
    SELECT
    hc_1.name, hc_1.chain_type, hc_1.vh, hc_1.vh2,
    hc_1.jh, hc_1.jh2,
    hc_1.dh, hc_1.dh2,
    hc_1.cdr3_seq,
    substr(hc_1.vh, 1,1) as V,
    hc_1.cdr3, hc_1.length,
    hc_1.mutations,
    %s
    rs.R_FR1,
    rs.R_CDR1,
    rs.R_FR2,
    rs.R_CDR2,
    rs.R_FR3,
    rs.FREQ_R_FR1,
    rs.FREQ_R_CDR1,
    rs.FREQ_R_FR2,
    rs.FREQ_R_CDR2,
    rs.FREQ_R_FR3,
    rs.S_FR1,
    rs.S_CDR1,
    rs.S_FR2,
    rs.S_CDR2,
    rs.S_FR3,
    rs.FREQ_S_FR1,
    rs.FREQ_S_CDR1,
    rs.FREQ_S_FR2,
    rs.FREQ_S_CDR2,
    rs.FREQ_S_FR3,
    rs.RS_FR1,
    rs.RS_CDR1,
    rs.RS_FR2,
    rs.RS_CDR2,
    rs.RS_FR3,
    rs.R_VREG,
    rs.FREQ_R_VREG,
    rs.S_VREG,
    rs.FREQ_S_VREG,
    rs.RS_VREG,
    mut_hc.pos_ch_cdr3, mut_hc.neg_ch_cdr3,
    mut_hc.gravy_cdr3, mut_hc.div_germ,
    mut_hc.ncl_mut_fr1,
    mut_hc.ncl_mut_cdr1,
    mut_hc.ncl_mut_fr2,
    mut_hc.ncl_mut_cdr2,
    mut_hc.ncl_mut_fr3,
    COALESCE(cl.clstr_id, -hc_1.rowid) AS id2,
    cl.clstr_id, cl.color, cl.fraction,
    sb.subtype,
    cdhit_99.n as depth
    FROM
    heavy_chains hc_1,
    %s AS cdhit_99,
    rs_ratios rs,
    mutations_hc mut_hc,
    subtypes sb,
    clones_hc cl
    WHERE hc_1.name = cdhit_99.name
    AND hc_1.name = rs.name
    AND hc_1.name = mut_hc.name
    AND hc_1.name = sb.name
    AND hc_1.name = cl.name
    AND hc_1.evalue < 10e-3
    AND hc_1.vh != ""
    AND hc_1.jh != ""
    AND hc_1.stop = 0
    AND hc_1.fr1 != ""
    AND hc_1.cdr1 != ""
    AND hc_1.fr2 != ""
    AND hc_1.cdr2 != ""
    AND hc_1.fr3 != ""
    AND hc_1.wgxg = 1
    AND hc_1.alnstart <= %s
    AND cl.fraction = %s
    AND cdhit_99.fraction = %s
    AND cdhit_99.dbtype = "%s"
    AND cdhit_99.n >= %s;
    ', extras, cdhit_view_name, alnstart, xh, cdhit_fraction, cdhit_dbtype, depth)
  sql_hc
}
thierrycnam/igfuns documentation built on May 4, 2020, 3:21 a.m.