1 Annotation version: 20200103

1.1 Genome annotation with OrgDb/TxDb/OrganismDbi

The tritrypdb just released a new version. Let us make new annotation data from it.

## These functions take _forever_ the first time around.
devtools::load_all("~/scratch/git/EuPathDB")
## Loading EuPathDB
## Loading required package: GenomeInfoDbData
pan_entry <- get_eupath_entry("panamensis", webservice="tritrypdb")
## Found the following hits: Leishmania panamensis MHOM/COL/81/L13, Leishmania panamensis strain MHOM/PA/94/PSC-1, choosing the first.
## Using: Leishmania panamensis MHOM/COL/81/L13.
installedp <- get_eupath_pkgnames(pan_entry)$orgdb_installed
if (!isTRUE(installedp)) {
  pan_annot <- EuPathDB::make_eupath_orgdb(pan_entry, reinstall=TRUE,
                                           overwrite=TRUE)
}
pan_names <- get_eupath_pkgnames(pan_entry)
library(pan_names$orgdb, character=TRUE)
## Loading required package: AnnotationDbi
## Loading required package: stats4
## Loading required package: IRanges
## Loading required package: S4Vectors
## 
## Attaching package: 'S4Vectors'
## The following objects are masked from 'package:EuPathDB':
## 
##     first, rename
## The following object is masked from 'package:base':
## 
##     expand.grid
## 
## Attaching package: 'IRanges'
## The following objects are masked from 'package:EuPathDB':
## 
##     collapse, desc, slice
## 
## Attaching package: 'AnnotationDbi'
## The following object is masked from 'package:EuPathDB':
## 
##     select
## 
pan_db <- get0(pan_names$orgdb)
pan_db
## OrgDb object:
## | DBSCHEMAVERSION: 2.1
## | DBSCHEMA: NOSCHEMA_DB
## | ORGANISM: Leishmania panamensis MHOM/COL/81/L13
## | SPECIES: Leishmania panamensis MHOM/COL/81/L13
## | CENTRALID: GID
## | Taxonomy ID: 1295824
## | Db type: OrgDb
## | Supporting package: AnnotationDbi
## 
## Please see: help('select') for usage information

For those packages I have generated/installed, use this to generate an annotation table. Oh, but I prefixed the column names with ‘annot_’ in order to make sure that nothing is duplicated with the GO tables, ortholog tables, etc.

But first, lets see what columns are available in the annotation packages.

all_fields <- columns(pan_db)
head(all_fields)
## [1] "ANNOT_BFD3_CDS"   "ANNOT_BFD3_MODEL" "ANNOT_BFD6_CDS"   "ANNOT_BFD6_MODEL"
## [5] "ANNOT_CDS"        "ANNOT_CDS_LENGTH"
all_lp_annot <- load_orgdb_annotations(
  pan_db,
  keytype="gid",
  fields="all")$genes
## Selecting the following fields, this might be too many: 
## ANNOT_BFD3_CDS, ANNOT_BFD3_MODEL, ANNOT_BFD6_CDS, ANNOT_BFD6_MODEL, ANNOT_CDS, ANNOT_CDS_LENGTH, ANNOT_CHROMOSOME, ANNOT_DIF_CDS, ANNOT_DIF_MODEL, ANNOT_EC_NUMBERS, ANNOT_EC_NUMBERS_DERIVED, ANNOT_EXON_COUNT, ANNOT_FC_BFD3_CDS, ANNOT_FC_BFD3_MODEL, ANNOT_FC_BFD6_CDS, ANNOT_FC_BFD6_MODEL, ANNOT_FC_DIF_CDS, ANNOT_FC_DIF_MODEL, ANNOT_FC_PF_CDS, ANNOT_FC_PF_MODEL, ANNOT_FIVE_PRIME_UTR_LENGTH, ANNOT_GENE_ENTREZ_ID, ANNOT_GENE_EXON_COUNT, ANNOT_GENE_HTS_NONCODING_SNPS, ANNOT_GENE_HTS_NONSYN_SYN_RATIO, ANNOT_GENE_HTS_NONSYNONYMOUS_SNPS, ANNOT_GENE_HTS_STOP_CODON_SNPS, ANNOT_GENE_HTS_SYNONYMOUS_SNPS, ANNOT_GENE_LOCATION_TEXT, ANNOT_GENE_NAME, ANNOT_GENE_ORTHOLOG_NUMBER, ANNOT_GENE_ORTHOMCL_NAME, ANNOT_GENE_PARALOG_NUMBER, ANNOT_GENE_PREVIOUS_IDS, ANNOT_GENE_PRODUCT, ANNOT_GENE_SOURCE_ID, ANNOT_GENE_TOTAL_HTS_SNPS, ANNOT_GENE_TRANSCRIPT_COUNT, ANNOT_GENE_TYPE, ANNOT_GO_COMPONENT, ANNOT_GO_FUNCTION, ANNOT_GO_ID_COMPONENT, ANNOT_GO_ID_FUNCTION, ANNOT_GO_ID_PROCESS, ANNOT_GO_PROCESS, ANNOT_HAS_MISSING_TRANSCRIPTS, ANNOT_INTERPRO_DESCRIPTION, ANNOT_INTERPRO_ID, ANNOT_IS_PSEUDO, ANNOT_ISOELECTRIC_POINT, ANNOT_LOCATION_TEXT, ANNOT_MATCHED_RESULT, ANNOT_MOLECULAR_WEIGHT, ANNOT_NO_TET_CDS, ANNOT_NO_TET_MODEL, ANNOT_ORGANISM, ANNOT_PF_CDS, ANNOT_PF_MODEL, ANNOT_PFAM_DESCRIPTION, ANNOT_PFAM_ID, ANNOT_PIRSF_DESCRIPTION, ANNOT_PIRSF_ID, ANNOT_PREDICTED_GO_COMPONENT, ANNOT_PREDICTED_GO_FUNCTION, ANNOT_PREDICTED_GO_ID_COMPONENT, ANNOT_PREDICTED_GO_ID_FUNCTION, ANNOT_PREDICTED_GO_ID_PROCESS, ANNOT_PREDICTED_GO_PROCESS, ANNOT_PROJECT_ID, ANNOT_PROSITEPROFILES_DESCRIPTION, ANNOT_PROSITEPROFILES_ID, ANNOT_PROTEIN_LENGTH, ANNOT_PROTEIN_SEQUENCE, ANNOT_SEQUENCE_ID, ANNOT_SIGNALP_PEPTIDE, ANNOT_SIGNALP_SCORES, ANNOT_SMART_DESCRIPTION, ANNOT_SMART_ID, ANNOT_SOURCE_ID, ANNOT_STRAND, ANNOT_SUPERFAMILY_DESCRIPTION, ANNOT_SUPERFAMILY_ID, ANNOT_THREE_PRIME_UTR_LENGTH, ANNOT_TIGRFAM_DESCRIPTION, ANNOT_TIGRFAM_ID, ANNOT_TM_COUNT, ANNOT_TRANS_FOUND_PER_GENE_INTERNAL, ANNOT_TRANSCRIPT_INDEX_PER_GENE, ANNOT_TRANSCRIPT_LENGTH, ANNOT_TRANSCRIPT_LINK, ANNOT_TRANSCRIPT_PRODUCT, ANNOT_TRANSCRIPT_SEQUENCE, ANNOT_TRANSCRIPTS_FOUND_PER_GENE, ANNOT_UNIPROT_ID, ANNOT_URI, ANNOT_WDK_WEIGHT
## Extracted all gene ids.
## Attempting to select: ANNOT_BFD3_CDS, ANNOT_BFD3_MODEL, ANNOT_BFD6_CDS, ANNOT_BFD6_MODEL, ANNOT_CDS, ANNOT_CDS_LENGTH, ANNOT_CHROMOSOME, ANNOT_DIF_CDS, ANNOT_DIF_MODEL, ANNOT_EC_NUMBERS, ANNOT_EC_NUMBERS_DERIVED, ANNOT_EXON_COUNT, ANNOT_FC_BFD3_CDS, ANNOT_FC_BFD3_MODEL, ANNOT_FC_BFD6_CDS, ANNOT_FC_BFD6_MODEL, ANNOT_FC_DIF_CDS, ANNOT_FC_DIF_MODEL, ANNOT_FC_PF_CDS, ANNOT_FC_PF_MODEL, ANNOT_FIVE_PRIME_UTR_LENGTH, ANNOT_GENE_ENTREZ_ID, ANNOT_GENE_EXON_COUNT, ANNOT_GENE_HTS_NONCODING_SNPS, ANNOT_GENE_HTS_NONSYN_SYN_RATIO, ANNOT_GENE_HTS_NONSYNONYMOUS_SNPS, ANNOT_GENE_HTS_STOP_CODON_SNPS, ANNOT_GENE_HTS_SYNONYMOUS_SNPS, ANNOT_GENE_LOCATION_TEXT, ANNOT_GENE_NAME, ANNOT_GENE_ORTHOLOG_NUMBER, ANNOT_GENE_ORTHOMCL_NAME, ANNOT_GENE_PARALOG_NUMBER, ANNOT_GENE_PREVIOUS_IDS, ANNOT_GENE_PRODUCT, ANNOT_GENE_SOURCE_ID, ANNOT_GENE_TOTAL_HTS_SNPS, ANNOT_GENE_TRANSCRIPT_COUNT, ANNOT_GENE_TYPE, ANNOT_GO_COMPONENT, ANNOT_GO_FUNCTION, ANNOT_GO_ID_COMPONENT, ANNOT_GO_ID_FUNCTION, ANNOT_GO_ID_PROCESS, ANNOT_GO_PROCESS, ANNOT_HAS_MISSING_TRANSCRIPTS, ANNOT_INTERPRO_DESCRIPTION, ANNOT_INTERPRO_ID, ANNOT_IS_PSEUDO, ANNOT_ISOELECTRIC_POINT, ANNOT_LOCATION_TEXT, ANNOT_MATCHED_RESULT, ANNOT_MOLECULAR_WEIGHT, ANNOT_NO_TET_CDS, ANNOT_NO_TET_MODEL, ANNOT_ORGANISM, ANNOT_PF_CDS, ANNOT_PF_MODEL, ANNOT_PFAM_DESCRIPTION, ANNOT_PFAM_ID, ANNOT_PIRSF_DESCRIPTION, ANNOT_PIRSF_ID, ANNOT_PREDICTED_GO_COMPONENT, ANNOT_PREDICTED_GO_FUNCTION, ANNOT_PREDICTED_GO_ID_COMPONENT, ANNOT_PREDICTED_GO_ID_FUNCTION, ANNOT_PREDICTED_GO_ID_PROCESS, ANNOT_PREDICTED_GO_PROCESS, ANNOT_PROJECT_ID, ANNOT_PROSITEPROFILES_DESCRIPTION, ANNOT_PROSITEPROFILES_ID, ANNOT_PROTEIN_LENGTH, ANNOT_PROTEIN_SEQUENCE, ANNOT_SEQUENCE_ID, ANNOT_SIGNALP_PEPTIDE, ANNOT_SIGNALP_SCORES, ANNOT_SMART_DESCRIPTION, ANNOT_SMART_ID, ANNOT_SOURCE_ID, ANNOT_STRAND, ANNOT_SUPERFAMILY_DESCRIPTION, ANNOT_SUPERFAMILY_ID, ANNOT_THREE_PRIME_UTR_LENGTH, ANNOT_TIGRFAM_DESCRIPTION, ANNOT_TIGRFAM_ID, ANNOT_TM_COUNT, ANNOT_TRANS_FOUND_PER_GENE_INTERNAL, ANNOT_TRANSCRIPT_INDEX_PER_GENE, ANNOT_TRANSCRIPT_LENGTH, ANNOT_TRANSCRIPT_LINK, ANNOT_TRANSCRIPT_PRODUCT, ANNOT_TRANSCRIPT_SEQUENCE, ANNOT_TRANSCRIPTS_FOUND_PER_GENE, ANNOT_UNIPROT_ID, ANNOT_URI, ANNOT_WDK_WEIGHT
## 'select()' returned 1:1 mapping between keys and columns
hs_annot <- load_biomart_annotations()
## The biomart annotations file already exists, loading from it.
hs_annot <- hs_annot[["annotation"]]
hs_annot[["transcript"]] <- paste0(rownames(hs_annot), ".", hs_annot[["version"]])
rownames(hs_annot) <- make.names(hs_annot[["ensembl_gene_id"]], unique=TRUE)
tx_gene_map <- hs_annot[, c("transcript", "ensembl_gene_id")]
orthos <- EuPathDB::extract_eupath_orthologs(db=pan_db)
## Some columns were missing: ORTHOLOGS_COUNT
## Removing them, which may end badly.
## 'select()' returned 1:many mapping between keys and columns
## There are 52 possible species in this group.
## Found species: Blechomonas ayalai B08-376
## Found species: Bodo saltans strain Lake Konstanz
## Found species: Crithidia fasciculata strain Cf-Cl
## Found species: Endotrypanum monterogeii strain LV88
## Found species: Leishmania aethiopica L147
## Found species: Leishmania amazonensis MHOM/BR/71973/M2269
## Found species: Leishmania arabica strain LEM1108
## Found species: Leishmania braziliensis MHOM/BR/75/M2903
## Found species: Leishmania braziliensis MHOM/BR/75/M2904
## Found species: Leishmania braziliensis MHOM/BR/75/M2904 2019
## Found species: Leishmania donovani BPK282A1
## Found species: Leishmania donovani CL-SL
## Found species: Leishmania donovani strain LV9
## Found species: Leishmania enriettii strain LEM3045
## Found species: Leishmania gerbilli strain LEM452
## Found species: Leishmania infantum JPCM5
## Found species: Leishmania major strain Friedlin
## Found species: Leishmania major strain LV39c5
## Found species: Leishmania major strain SD 75.1
## Found species: Leishmania mexicana MHOM/GT/2001/U1103
## Found species: Leishmania panamensis MHOM/COL/81/L13
## Found species: Leishmania panamensis strain MHOM/PA/94/PSC-1
## Found species: Leishmania sp. MAR LEM2494
## Found species: Leishmania tarentolae Parrot-TarII
## Found species: Leishmania tropica L590
## Found species: Leishmania turanica strain LEM423
## Found species: Leptomonas pyrrhocoris H10
## Found species: Leptomonas seymouri ATCC 30220
## Found species: Paratrypanosoma confusum CUL13
## Found species: Trypanosoma brucei brucei TREU927
## Found species: Trypanosoma brucei gambiense DAL972
## Found species: Trypanosoma brucei Lister strain 427
## Found species: Trypanosoma brucei Lister strain 427 2018
## Found species: Trypanosoma congolense IL3000
## Found species: Trypanosoma congolense IL3000 2019
## Found species: Trypanosoma cruzi Brazil A4
## Found species: Trypanosoma cruzi CL Brener Esmeraldo-like
## Found species: Trypanosoma cruzi CL Brener Non-Esmeraldo-like
## Found species: Trypanosoma cruzi Dm28c 2014
## Found species: Trypanosoma cruzi Dm28c 2017
## Found species: Trypanosoma cruzi Dm28c 2018
## Found species: Trypanosoma cruzi marinkellei strain B7
## Found species: Trypanosoma cruzi strain CL Brener
## Found species: Trypanosoma cruzi Sylvio X10/1
## Found species: Trypanosoma cruzi Sylvio X10/1-2012
## Found species: Trypanosoma cruzi TCC
## Found species: Trypanosoma cruzi Y C6
## Found species: Trypanosoma evansi strain STIB 805
## Found species: Trypanosoma grayi ANR4
## Found species: Trypanosoma rangeli SC58
## Found species: Trypanosoma theileri isolate Edinburgh
## Found species: Trypanosoma vivax Y486
dim(orthos)
## [1] 530405      5

2 Sample Estimation

2.1 Generate expressionsets

tmrc3_hs_expt <- create_expt("sample_sheets/tmrc3_samples_20200102.xlsx",
                             file_column="hg3891hisatfile",
                             gene_info=hs_annot)
## Reading the sample metadata.
## The sample definitions comprises: 49 rows(samples) and 74 columns(metadata fields).
## Reading count tables.
## Reading count tables with read.table().
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30001/outputs/hisat2_hg38_91/forward.count.xz contains 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30002/outputs/hisat2_hg38_91/forward.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30003/outputs/hisat2_hg38_91/forward.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30004/outputs/hisat2_hg38_91/forward.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30005/outputs/hisat2_hg38_91/forward.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30006/outputs/hisat2_hg38_91/forward.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30007/outputs/hisat2_hg38_91/forward.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30008/outputs/hisat2_hg38_91/forward.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30009/outputs/hisat2_hg38_91/forward.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30010/outputs/hisat2_hg38_91/forward.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30011/outputs/hisat2_hg38_91/forward.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30012/outputs/hisat2_hg38_91/forward.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30013/outputs/hisat2_hg38_91/forward.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30016/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30017/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30018/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30019/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30014/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30021/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30029/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30020/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30038/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30039/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30023/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30025/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30022/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30026/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30030/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30031/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30032/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30024/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30040/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30033/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30037/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30027/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30028/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30034/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30035/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30036/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30044/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30041/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30042/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30043/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30045/outputs/hisat2_hg38_91/concatenated.count.xz contains 58307 rows and merges to 58307 rows.
## Finished reading count tables.
## Matched 58243 annotations and counts.
## Bringing together the count matrix and gene information.
## Some annotations were lost in merging, setting them to 'undefined'.
## The final expressionset has 58302 rows and 44 columns.
libsizes <- plot_libsize(tmrc3_hs_expt)
## The scale difference between the smallest and largest
## libraries is > 10. Assuming a log10 scale is better, set scale=FALSE if not.
libsizes$plot

## I think samples 7,10 should be removed at minimum, probably also 9,11
nonzero <- plot_nonzero(tmrc3_hs_expt)
nonzero$plot

box <- plot_boxplot(tmrc3_hs_expt)
## This data will benefit from being displayed on the log scale.
## If this is not desired, set scale='raw'
## Some entries are 0.  We are on log scale, adding 1 to the data.
## Changed 1641803 zero count features.
box

rownames(all_lp_annot) <- paste0("exon_", rownames(all_lp_annot), ".E1")

tmrc3_lp_expt <- create_expt("sample_sheets/tmrc3_samples_20200102.xlsx",
                             file_column="lpanamensisv36hisatfile",
                             gene_info=all_lp_annot)
## Reading the sample metadata.
## The sample definitions comprises: 49 rows(samples) and 74 columns(metadata fields).
## Reading count tables.
## Reading count tables with read.table().
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30001/outputs/hisat2_lpanamensis_v36/forward.count.xz contains 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30002/outputs/hisat2_lpanamensis_v36/forward.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30003/outputs/hisat2_lpanamensis_v36/forward.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30004/outputs/hisat2_lpanamensis_v36/forward.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30005/outputs/hisat2_lpanamensis_v36/forward.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30006/outputs/hisat2_lpanamensis_v36/forward.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30007/outputs/hisat2_lpanamensis_v36/forward.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30008/outputs/hisat2_lpanamensis_v36/forward.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30009/outputs/hisat2_lpanamensis_v36/forward.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30010/outputs/hisat2_lpanamensis_v36/forward.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30015/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30011/outputs/hisat2_lpanamensis_v36/forward.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30012/outputs/hisat2_lpanamensis_v36/forward.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30013/outputs/hisat2_lpanamensis_v36/forward.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30016/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30017/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30018/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30019/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30014/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30021/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30029/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30020/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30038/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30039/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30023/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30025/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30022/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30026/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30030/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30031/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30032/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30024/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30040/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30033/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30037/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30027/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30028/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30034/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30035/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30036/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30044/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30041/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30042/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30043/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## /mnt/sshfs/cbcbsub/fs/cbcb-lab/nelsayed/scratch/atb/rnaseq/lpanamensis_tmrc_2019/preprocessing/tmrc30045/outputs/hisat2_lpanamensis_v36/concatenated.count.xz contains 8846 rows and merges to 8846 rows.
## Finished reading count tables.
## Matched 8778 annotations and counts.
## Bringing together the count matrix and gene information.
## Some annotations were lost in merging, setting them to 'undefined'.
## Warning in create_expt("sample_sheets/tmrc3_samples_20200102.xlsx", file_column
## = "lpanamensisv36hisatfile", : The following samples have no counts! TMRC30010
## The final expressionset has 8841 rows and 45 columns.
hs_valid <- subset_expt(tmrc3_hs_expt, coverage=3000000)
## Subsetting given a minimal number of counts/sample.
## There were 44, now there are 41 samples.
plot_libsize(hs_valid)$plot
lp_tmrc3_valid <- subset_expt(tmrc3_lp_expt, coverage=10000)
## Subsetting given a minimal number of counts/sample.
## There were 45, now there are 4 samples.
valid_write <- write_expt(hs_valid, excel=glue("excel/hs_valid-v{ver}.xlsx"))
## Writing the first sheet, containing a legend and some summary data.
## Writing the raw reads.
## Graphing the raw reads.
## Warning: The shape palette can deal with a maximum of 6 discrete values because
## more than 6 becomes difficult to discriminate; you have 12. Consider
## specifying shapes manually if you must have them.
## Warning: Removed 28 rows containing missing values (geom_dotplot).
## Warning: The shape palette can deal with a maximum of 6 discrete values because
## more than 6 becomes difficult to discriminate; you have 12. Consider
## specifying shapes manually if you must have them.
## Warning: Removed 28 rows containing missing values (geom_dotplot).
## Warning: The shape palette can deal with a maximum of 6 discrete values because
## more than 6 becomes difficult to discriminate; you have 12. Consider
## specifying shapes manually if you must have them.
## Warning: Removed 28 rows containing missing values (geom_dotplot).
## Warning: The shape palette can deal with a maximum of 6 discrete values because
## more than 6 becomes difficult to discriminate; you have 12. Consider
## specifying shapes manually if you must have them.
## Warning: Removed 28 rows containing missing values (geom_dotplot).
## Writing the normalized reads.
## Graphing the normalized reads.
## Warning: The shape palette can deal with a maximum of 6 discrete values because
## more than 6 becomes difficult to discriminate; you have 12. Consider
## specifying shapes manually if you must have them.

## Warning: Removed 28 rows containing missing values (geom_dotplot).
## Warning: The shape palette can deal with a maximum of 6 discrete values because
## more than 6 becomes difficult to discriminate; you have 12. Consider
## specifying shapes manually if you must have them.
## Warning: Removed 28 rows containing missing values (geom_dotplot).
## Warning: The shape palette can deal with a maximum of 6 discrete values because
## more than 6 becomes difficult to discriminate; you have 12. Consider
## specifying shapes manually if you must have them.
## Warning: Removed 28 rows containing missing values (geom_dotplot).
## Warning: The shape palette can deal with a maximum of 6 discrete values because
## more than 6 becomes difficult to discriminate; you have 12. Consider
## specifying shapes manually if you must have them.
## Warning: Removed 28 rows containing missing values (geom_dotplot).
## Writing the median reads by factor.
all_norm <- normalize_expt(hs_valid, norm="quant", transform="log2", convert="cpm", batch=FALSE,
                           filter=TRUE)
## This function will replace the expt$expressionset slot with:
## log2(cpm(quant(cbcb(data))))
## It will save copies of each step along the way
##  in expt$normalized with the corresponding libsizes. Keep libsizes in mind
##  when invoking limma.  The appropriate libsize is non-log(cpm(normalized)).
##  This is most likely kept at:
##  'new_expt$normalized$intermediate_counts$normalization$libsizes'
##  A copy of this may also be found at:
##  new_expt$best_libsize
## Not correcting the count-data for batch effects.  If batch is
##  included in EdgerR/limma's model, then this is probably wise; but in extreme
##  batch effects this is a good parameter to play with.
## Step 1: performing count filter with option: cbcb
## Removing 40537 low-count genes (17765 remaining).
## Step 2: normalizing the data with quant.
## Step 3: converting the data with cpm.
## Step 4: transforming the data with log2.
## transform_counts: Found 1239 values equal to 0, adding 1 to the matrix.
## Step 5: not doing batch correction.
all_pca <- plot_pca(all_norm)
all_pca$plot

knitr::kable(all_pca$table)
sampleid condition batch batch_int colors labels PC1 PC2 pc_1 pc_2 pc_3 pc_4 pc_5 pc_6 pc_7 pc_8 pc_9 pc_10 pc_11 pc_12 pc_13 pc_14 pc_15 pc_16 pc_17 pc_18 pc_19 pc_20 pc_21 pc_22 pc_23 pc_24 pc_25 pc_26 pc_27 pc_28 pc_29 pc_30 pc_31 pc_32 pc_33 pc_34 pc_35 pc_36 pc_37 pc_38 pc_39 pc_40
tmrc30001 TMRC30001 PBMCs 41935 1 #1B9E77 TMRC30001 -0.0388 -0.1828 -0.0388 -0.1828 -0.0355 -0.2840 0.0235 0.1039 -0.0948 0.0569 -0.0446 0.1607 -0.0258 0.0409 -0.2124 0.3413 -0.0285 0.3064 0.1573 -0.1855 -0.1242 0.0841 0.0187 0.0684 0.1398 0.0856 -0.1151 -0.0369 -0.0634 -0.0969 -0.1620 -0.0214 -0.0330 0.0069 0.0145 0.0345 0.1245 0.1565 0.1244 0.1020 0.0967 -0.5502
tmrc30002 TMRC30002 PBMCs 41935 1 #1B9E77 TMRC30002 -0.0258 -0.1942 -0.0258 -0.1942 -0.0277 -0.2895 0.0270 -0.0427 0.0707 0.0119 -0.0049 0.0491 -0.1277 0.1518 0.0791 0.2741 0.0899 0.2120 -0.0197 0.0422 0.0556 -0.0109 0.0713 -0.1124 0.1281 -0.0503 -0.0385 0.0580 0.0116 -0.0105 0.0706 0.0152 0.0429 -0.0030 0.0277 -0.0721 -0.2969 -0.5564 -0.2358 -0.3684 0.0093 0.1396
tmrc30003 TMRC30003 PBMCs 41935 1 #1B9E77 TMRC30003 -0.0253 -0.1983 -0.0253 -0.1983 -0.0141 -0.3149 -0.0944 -0.1002 0.0676 0.0002 0.0506 0.0044 -0.1446 0.2118 0.1954 0.1679 0.1593 0.1283 -0.1263 0.1679 0.2211 0.0655 0.1110 -0.1988 0.0063 -0.0536 0.1276 0.0977 0.0377 0.0331 0.0305 -0.0426 0.0174 0.0326 -0.0528 0.0676 0.2201 0.4244 0.1075 0.2463 -0.0846 0.3693
tmrc30004 TMRC30004 PBMCs 41935 1 #1B9E77 TMRC30004 -0.0411 -0.1808 -0.0411 -0.1808 -0.0315 -0.2982 0.0404 0.1424 -0.0922 -0.0265 0.0112 0.0561 0.0998 -0.2002 -0.2045 -0.1302 -0.1947 -0.0955 0.1823 -0.1791 -0.2252 0.0167 -0.1138 0.1822 0.0007 0.0543 -0.1303 -0.0866 -0.1019 -0.0783 -0.0829 -0.0112 0.0513 -0.0053 -0.0030 0.0154 0.0656 0.0466 0.0007 -0.1107 -0.4668 0.4562
tmrc30005 TMRC30005 PBMCs 41935 1 #1B9E77 TMRC30005 -0.0350 -0.1989 -0.0350 -0.1989 0.0008 -0.3607 -0.0893 0.0635 -0.0660 -0.0339 0.0239 -0.0338 -0.0031 -0.0829 -0.0193 -0.2706 -0.1141 -0.2308 0.0075 0.0032 -0.0481 -0.0880 -0.0703 0.0635 -0.0922 0.0433 0.0063 -0.0297 -0.0376 0.0230 -0.0210 -0.0227 -0.0977 0.0324 -0.0398 -0.0154 -0.1223 -0.0573 -0.0502 0.2079 0.7169 0.1229
tmrc30006 TMRC30006 PBMCs 41935 1 #1B9E77 TMRC30006 -0.0252 -0.1976 -0.0252 -0.1976 -0.0059 -0.3278 -0.1281 0.0071 0.0241 -0.0537 0.0475 -0.1581 -0.0264 -0.0588 0.1637 -0.3186 -0.0168 -0.2698 -0.1678 0.1811 0.0854 -0.0397 -0.0078 -0.0645 -0.1425 0.0050 0.0634 0.0207 0.0616 0.1138 0.1155 0.0377 0.0519 -0.0450 0.0218 -0.0234 0.0190 -0.0335 0.0321 -0.1310 -0.3574 -0.5407
tmrc30008 TMRC30008 Monocytes 41935 1 #7570B3 TMRC30008 0.0006 -0.1631 0.0006 -0.1631 -0.1717 0.0912 0.1490 0.1583 0.0103 0.0646 -0.0819 0.1195 0.2254 -0.1238 -0.0580 0.0359 0.0089 -0.0779 0.1766 -0.0938 0.0369 -0.1956 0.0362 0.0249 0.2344 -0.2345 0.4381 0.0434 0.4490 -0.0559 0.3597 -0.0056 0.0862 -0.1118 0.0284 0.0502 0.0473 0.0672 0.0482 -0.0690 0.0724 -0.0066
tmrc30009 TMRC30009 Neutrophils 41955 2 #D95F02 TMRC30009 0.1913 0.2060 0.1913 0.2060 -0.0863 -0.0207 0.1505 0.2519 -0.0886 -0.0389 0.3384 -0.1540 -0.0036 0.1457 0.0424 -0.0053 -0.1466 0.2073 -0.1489 0.3299 -0.2263 -0.0732 -0.5142 -0.1129 0.2053 0.0378 0.0935 -0.0952 0.1400 0.0348 -0.1163 -0.0023 -0.0196 0.0077 -0.0217 0.0679 0.0306 -0.0174 0.0021 0.0127 0.0032 0.0078
tmrc30011 TMRC30011 Neutrophils 41961 3 #D95F02 TMRC30011 0.1914 0.2299 0.1914 0.2299 -0.1050 -0.0430 0.0997 0.2852 -0.1842 -0.0889 0.3936 -0.2282 -0.1777 0.1822 -0.0032 0.0274 0.1793 -0.1192 0.0109 -0.3297 -0.0321 -0.1307 0.4161 0.1002 -0.1228 -0.2220 0.0748 -0.0067 -0.1756 0.0248 -0.0076 0.0138 0.0365 -0.0165 0.0841 0.0136 0.0159 0.0002 -0.0121 -0.0120 -0.0006 -0.0059
tmrc30012 TMRC30012 Monocytes 41962 4 #7570B3 TMRC30012 0.0027 -0.1341 0.0027 -0.1341 -0.1925 0.1493 0.2670 0.2643 0.0480 0.0175 0.0024 0.0429 0.2637 -0.0840 0.1769 0.0193 0.0578 0.0139 0.0242 0.1029 0.1889 0.1699 0.0520 0.0336 -0.1714 0.1522 -0.0890 0.0595 -0.0833 0.0377 -0.1153 -0.0098 -0.0354 0.1005 -0.0454 0.0465 0.0368 0.2258 -0.6307 -0.0727 0.0363 -0.0574
tmrc30013 TMRC30013 Monocytes 41963 5 #7570B3 TMRC30013 0.0080 -0.1357 0.0080 -0.1357 -0.1730 0.1334 0.2640 0.2741 0.0690 0.0003 -0.0276 -0.0666 0.2124 -0.1266 0.1585 0.0717 0.0280 0.0066 -0.0899 0.0592 0.2287 0.1461 0.0469 0.0126 -0.0807 0.0980 -0.1395 0.0365 -0.1176 0.0174 -0.0095 -0.0129 -0.0936 0.0596 -0.0440 -0.1305 -0.0573 -0.2811 0.6223 0.1362 -0.0102 0.0630
tmrc30016 TMRC30016 Biopsy 42096 6 #E7298A TMRC30016 -0.2262 0.0941 -0.2262 0.0941 0.0347 -0.0054 -0.0858 0.0465 -0.2754 0.3537 -0.3119 -0.2974 0.1991 0.3897 -0.0297 -0.0062 0.0818 0.0329 0.0644 -0.0547 0.0203 0.1440 -0.1765 0.0367 -0.2089 -0.0817 0.0731 -0.1240 -0.0301 -0.0404 0.1045 0.3963 -0.0856 -0.0293 -0.0060 0.0593 -0.0377 -0.0218 -0.0065 0.0143 -0.0246 0.0333
tmrc30017 TMRC30017 Biopsy 42096 6 #E7298A TMRC30017 -0.2426 0.1409 -0.2426 0.1409 0.0584 0.0314 -0.2157 0.1941 0.1232 -0.2534 -0.0514 0.1694 -0.0159 0.0255 -0.1130 -0.1019 0.2560 0.3491 0.0096 -0.0722 0.1115 -0.1528 -0.1560 0.1757 -0.3293 0.0299 0.0424 -0.2437 0.0994 0.2979 0.1131 -0.3155 -0.0491 0.0344 -0.0059 -0.0300 -0.0126 -0.0157 0.0237 -0.0450 -0.0201 0.0186
tmrc30018 TMRC30018 Biopsy 42186 7 #E7298A TMRC30018 -0.2407 0.1575 -0.2407 0.1575 0.0283 0.1022 -0.3195 0.2636 0.1979 -0.2901 -0.1225 0.0298 -0.0466 0.1977 0.1486 0.3139 -0.3859 -0.2966 0.0869 0.0376 0.0898 -0.1925 -0.0345 0.0857 0.0728 0.0505 0.0603 0.1951 -0.0853 -0.1708 -0.0968 0.0609 -0.0709 0.0163 -0.0186 -0.0346 0.0416 -0.0047 -0.0204 -0.0097 -0.0336 -0.0098
tmrc30019 TMRC30019 Biopsy 42186 7 #E7298A TMRC30019 -0.2417 0.1476 -0.2417 0.1476 0.0392 0.0208 -0.0945 0.1066 0.1066 -0.2397 0.0940 0.1722 0.0136 -0.1545 -0.0552 -0.1457 0.1155 -0.0236 -0.0744 -0.0178 -0.2252 0.5237 0.1025 -0.3020 0.1554 -0.3078 -0.0210 -0.0221 0.0562 -0.0838 0.0345 0.1727 -0.3245 0.0025 0.0232 -0.0205 -0.0462 0.0024 -0.0311 0.0227 0.0026 -0.0085
tmrc30014 TMRC30014 Monocytes 42264 8 #7570B3 TMRC30014 -0.0095 -0.1592 -0.0095 -0.1592 -0.1736 0.2121 -0.2497 -0.2128 -0.0967 -0.0663 0.1966 -0.1675 -0.0685 0.0349 0.0962 -0.1363 -0.1650 0.2211 0.2631 0.0322 -0.0221 0.1895 0.1002 0.2766 -0.0708 -0.0505 -0.1149 0.2692 0.3963 0.1106 -0.2120 0.0870 0.0519 0.1747 0.1438 0.0241 -0.0776 -0.0028 0.0779 -0.0375 0.0206 0.0199
tmrc30021 TMRC30021 Neutrophils 42264 8 #D95F02 TMRC30021 0.1805 0.1640 0.1805 0.1640 -0.0653 -0.0522 -0.1694 -0.1672 -0.0146 0.0106 -0.0344 0.0205 0.2787 -0.1210 0.1990 0.0439 -0.1546 0.2565 -0.0859 0.0497 -0.3317 -0.0168 0.1931 0.0316 -0.1400 0.1237 0.2866 -0.0045 -0.2060 -0.1492 0.1769 -0.0360 0.0339 0.0940 -0.0804 -0.3631 -0.2698 0.1779 0.0271 -0.0230 -0.0147 -0.0111
tmrc30029 TMRC30029 Eosinophils 42264 8 #66A61E TMRC30029 0.1121 -0.0889 0.1121 -0.0889 0.3006 0.0981 -0.0775 -0.0818 -0.0254 -0.0603 0.1078 -0.1381 0.1252 -0.0991 0.2498 0.0429 -0.0827 0.1252 0.0889 -0.1744 0.0059 -0.0661 0.0618 -0.1601 -0.1494 -0.0006 -0.1462 -0.1657 0.1944 -0.1533 -0.0920 -0.0206 -0.0740 -0.5060 -0.3612 -0.0308 0.2582 -0.1313 -0.0598 0.0116 0.0329 0.0104
tmrc30020 TMRC30020 Biopsy 42187 9 #E7298A TMRC30020 -0.2353 0.1121 -0.2353 0.1121 0.0340 -0.0077 0.1961 -0.2340 -0.3050 0.0398 -0.0585 -0.0767 0.0073 -0.0070 0.0311 -0.0216 0.0303 -0.0711 -0.1584 -0.1154 0.0882 0.0876 -0.2025 0.1005 0.0302 -0.2122 0.1236 0.3491 -0.0508 -0.1815 -0.1658 -0.5624 -0.1183 -0.0473 -0.0545 -0.0988 -0.0088 -0.0184 -0.0277 -0.0419 -0.0316 -0.0402
tmrc30039 TMRC30039 Neutrophils 42194 10 #D95F02 TMRC30039 0.1937 0.1722 0.1937 0.1722 -0.0692 -0.0898 0.0579 -0.1988 0.2365 -0.0083 -0.1011 0.0622 0.2136 0.0554 -0.0383 -0.1566 -0.3257 0.1918 0.0688 0.0125 0.1114 -0.0322 0.0486 -0.1166 -0.1427 -0.2494 -0.0216 0.0309 -0.2257 -0.0451 0.0709 -0.1000 -0.0288 0.0195 0.3313 0.4089 0.2419 -0.1911 -0.0134 0.0657 0.0246 -0.0235
tmrc30023 TMRC30023 Eosinophils 42194 10 #66A61E TMRC30023 0.0885 -0.0865 0.0885 -0.0865 0.2542 0.0304 0.0887 -0.1180 0.2841 -0.2844 -0.1280 -0.6435 0.0537 -0.2083 -0.3037 0.1984 0.1458 0.0035 -0.0200 -0.0226 -0.0325 0.0172 -0.0467 0.0350 0.0723 0.0480 0.0721 0.0409 -0.0257 0.0124 0.0453 0.0097 -0.0214 0.1602 -0.0079 0.1264 -0.0814 0.0883 -0.0341 -0.0168 0.0246 -0.0020
tmrc30025 TMRC30025 Biopsy 42186 7 #E7298A TMRC30025 -0.2338 0.1190 -0.2338 0.1190 0.0213 0.0002 0.2719 -0.2183 -0.1195 0.1035 -0.0149 -0.0632 -0.0411 0.0295 0.0231 0.0949 -0.2175 -0.1224 0.1089 0.1353 -0.0942 -0.2109 0.3141 -0.1136 0.0936 0.1462 -0.1212 -0.2892 0.1570 0.3050 0.0601 -0.1115 -0.4097 0.2015 0.0272 -0.0592 0.0706 0.0372 0.0022 -0.0525 -0.0427 0.0125
tmrc30022 TMRC30022 Biopsy 42187 9 #E7298A TMRC30022 -0.2288 0.1172 -0.2288 0.1172 0.0316 -0.0260 0.3389 -0.2960 -0.1278 -0.2888 0.1404 0.2078 -0.1268 -0.1747 0.0166 -0.0500 0.0875 0.1214 -0.0332 0.0488 0.1729 -0.2155 -0.0701 0.1609 -0.0952 0.1481 0.1136 0.0440 -0.0672 -0.2113 -0.0091 0.5023 0.0222 -0.0648 0.0231 0.0752 -0.0119 0.0090 0.0343 0.0205 0.0050 -0.0130
tmrc30026 TMRC30026 Biopsy 42186 7 #E7298A TMRC30026 -0.2215 0.1200 -0.2215 0.1200 0.0119 0.0323 0.1401 -0.0690 -0.1410 -0.1950 -0.0889 0.0116 0.0362 0.0272 0.0833 0.1425 -0.1124 -0.1422 -0.0402 -0.0080 -0.1794 0.2272 0.0326 -0.1458 -0.0342 0.0346 -0.1327 -0.0952 0.0222 0.2404 0.0994 -0.0835 0.7159 -0.0906 0.0270 0.0885 -0.0200 0.0017 0.0257 0.0712 0.1053 -0.0015
tmrc30030 TMRC30030 Monocytes 42264 8 #7570B3 TMRC30030 -0.0018 -0.1518 -0.0018 -0.1518 -0.1862 0.2402 -0.1764 0.0080 -0.1886 0.0575 -0.0442 -0.0133 -0.1511 -0.1794 -0.1876 0.0326 -0.1116 0.0987 -0.1894 -0.1365 -0.0379 -0.0995 -0.0611 -0.2494 0.0360 0.1580 0.0682 0.3101 -0.2655 0.4248 0.0901 0.1092 -0.1424 -0.3267 0.0926 0.0180 0.0479 0.0267 -0.0308 -0.0461 0.0118 0.0510
tmrc30031 TMRC30031 Neutrophils 42264 8 #D95F02 TMRC30031 0.1911 0.2072 0.1911 0.2072 -0.0835 -0.0290 -0.1883 0.0389 -0.2299 0.1006 -0.1567 0.0157 -0.1882 -0.4146 0.0560 0.2574 0.2700 -0.1369 0.2907 0.4117 -0.0250 -0.0576 -0.0709 0.0010 -0.1469 -0.1538 -0.2062 0.0053 -0.0083 -0.1073 0.0701 -0.0546 -0.0264 -0.0668 0.1177 0.0742 0.0026 0.0016 0.0097 0.0101 0.0088 0.0116
tmrc30032 TMRC30032 Eosinophils 42264 8 #66A61E TMRC30032 0.1057 -0.0807 0.1057 -0.0807 0.2977 0.1775 -0.1873 0.1365 -0.3633 0.0731 0.0147 0.0928 -0.1220 -0.1709 -0.0809 -0.0352 -0.1956 0.0782 -0.2592 -0.0716 0.2678 0.0153 0.0659 -0.1166 0.0657 0.0018 0.0172 -0.1372 0.0174 -0.1809 0.1197 -0.0006 0.1246 0.5009 -0.1111 0.1237 0.0756 -0.0695 -0.0327 -0.0541 -0.0021 0.0029
tmrc30024 TMRC30024 Monocytes 42194 10 #7570B3 TMRC30024 0.0128 -0.1559 0.0128 -0.1559 -0.1789 0.1724 0.0402 -0.0296 0.0835 0.0351 -0.1801 0.0439 -0.1561 0.0350 -0.1580 -0.0152 0.0393 -0.0393 -0.1226 -0.0147 -0.1642 -0.2064 0.0634 -0.1868 -0.1748 -0.0714 0.1010 -0.1194 0.1535 -0.1460 -0.3063 -0.0182 0.0599 0.0475 0.0212 -0.0593 -0.1975 -0.1903 -0.1701 0.5515 -0.2209 -0.0273
tmrc30040 TMRC30040 Neutrophils 42194 10 #D95F02 TMRC30040 0.2064 0.2116 0.2064 0.2116 -0.0858 -0.0748 0.1000 -0.0648 0.1308 0.0348 -0.1467 0.0653 -0.1231 -0.0079 -0.1553 -0.1156 -0.1521 -0.0021 0.2205 -0.0787 0.3123 -0.0132 -0.0975 -0.1732 0.0343 -0.2830 -0.0509 -0.0040 -0.0328 0.2285 -0.2087 0.1323 0.1022 0.0496 -0.4359 -0.2138 -0.2101 0.1860 0.0648 -0.1337 0.0086 -0.0381
tmrc30033 TMRC30033 Eosinophils 42194 10 #66A61E TMRC30033 0.1257 -0.0688 0.1257 -0.0688 0.3099 0.0731 0.1416 0.0739 0.0680 0.0409 -0.1505 0.0443 -0.1434 0.0644 -0.1215 -0.0760 -0.0413 0.0238 -0.0567 0.2090 -0.0152 0.0995 0.0490 0.1952 0.0107 -0.1215 0.0730 -0.0110 -0.0238 0.0647 -0.0772 0.0905 0.0980 -0.0830 0.3238 -0.5751 0.3827 -0.0438 -0.0596 -0.0364 0.0798 0.0362
tmrc30037 TMRC30037 Monocytes 42194 10 #7570B3 TMRC30037 0.0178 -0.1513 0.0178 -0.1513 -0.1785 0.1646 -0.0117 -0.1712 0.1237 -0.0159 -0.0219 0.0120 -0.0964 0.0749 0.2449 -0.0414 0.1171 -0.0135 -0.0935 -0.1330 -0.1987 -0.1428 -0.2095 0.2612 0.2301 -0.2655 -0.3423 -0.0496 -0.2025 0.0337 0.3509 0.0633 -0.0129 0.1784 -0.2200 -0.0698 0.1782 -0.0136 -0.0875 0.1377 -0.0102 -0.0509
tmrc30027 TMRC30027 Neutrophils 42194 10 #D95F02 TMRC30027 0.2035 0.2009 0.2035 0.2009 -0.0733 -0.0803 -0.1082 -0.1032 0.0414 0.0394 -0.2266 0.0777 -0.0370 -0.1113 0.2899 -0.0234 0.2194 -0.1315 -0.0133 -0.2373 -0.0294 0.1732 -0.0239 0.1447 0.2446 0.2791 0.3342 -0.1191 0.0353 0.2064 -0.3060 0.0525 -0.0233 0.0986 -0.0227 0.1483 0.2162 -0.2060 -0.0063 -0.0073 -0.0049 0.0215
tmrc30028 TMRC30028 Eosinophils 42194 10 #66A61E TMRC30028 0.1280 -0.0872 0.1280 -0.0872 0.3199 0.0792 0.0231 0.0148 0.0082 0.0474 -0.0195 0.0927 0.0324 0.0115 0.3071 -0.0102 -0.0058 -0.0348 -0.0448 -0.1982 0.1227 -0.0754 -0.1292 0.0309 0.1912 -0.0734 -0.1477 -0.1734 -0.0130 0.0582 -0.0800 -0.0125 -0.0670 -0.1558 0.4559 0.0650 -0.4800 0.2713 0.0405 0.0398 -0.0502 -0.0024
tmrc30034 TMRC30034 Monocytes 42194 10 #7570B3 TMRC30034 0.0209 -0.1405 0.0209 -0.1405 -0.1865 0.1783 0.0407 -0.0424 0.1423 0.0241 -0.1594 0.0480 -0.1651 0.1373 -0.0109 -0.0805 0.0955 -0.0955 -0.2089 -0.0071 -0.2310 -0.0789 0.0117 -0.1230 -0.1980 0.0370 -0.0604 -0.1362 0.0311 -0.2788 -0.1884 -0.0424 0.0162 0.0090 0.0351 0.1434 0.0701 0.2167 0.2244 -0.5558 0.1843 0.0365
tmrc30035 TMRC30035 Neutrophils 42194 10 #D95F02 TMRC30035 0.2101 0.2350 0.2101 0.2350 -0.0933 -0.0582 0.0862 0.0224 0.0764 -0.0106 -0.1083 -0.0171 -0.2553 0.1575 -0.0929 -0.1595 -0.0291 -0.0266 0.0436 -0.1959 0.1041 0.1774 -0.0495 -0.0702 -0.0006 0.4595 -0.2200 0.1623 0.2602 -0.2482 0.3939 -0.0896 -0.0570 -0.0752 0.0727 -0.1128 -0.0361 0.0305 -0.0576 0.1046 -0.0295 0.0106
tmrc30036 TMRC30036 Eosinophils 42194 10 #66A61E TMRC30036 0.1213 -0.0723 0.1213 -0.0723 0.3060 0.1188 0.1291 0.0960 0.0209 0.0653 -0.0913 0.1923 -0.1599 0.1917 -0.0702 -0.1271 -0.0267 -0.0029 0.0403 0.3038 -0.1912 0.1204 0.2202 0.3051 0.0199 0.0406 0.1058 0.1609 -0.1025 0.0926 0.0813 -0.0744 -0.0682 -0.1722 -0.3354 0.3683 -0.1968 -0.0251 0.0519 0.0508 -0.0613 -0.0171
tmrc30044 TMRC30044 Biopsy 42237 11 #E7298A TMRC30044 -0.2533 0.1335 -0.2533 0.1335 0.0507 0.0343 -0.1238 0.1116 0.0565 0.1638 -0.0303 -0.1286 0.1549 -0.0109 -0.0179 -0.3847 0.2537 0.1758 0.1399 0.1309 0.0146 -0.2858 0.2213 -0.1510 0.4213 0.1474 -0.1617 0.1408 -0.1311 -0.1374 -0.1441 -0.0457 0.2235 -0.0209 0.0066 -0.0203 0.0308 0.0041 0.0148 0.0111 0.0179 0.0071
tmrc30041 TMRC30041 Monocytes 42264 8 #7570B3 TMRC30041 -0.0116 -0.1575 -0.0116 -0.1575 -0.1822 0.2128 -0.1584 -0.2367 0.0008 -0.0212 0.3000 -0.0106 -0.0135 0.1392 -0.2053 -0.0040 0.0219 -0.1612 0.2469 0.1486 0.2483 0.2183 -0.0592 0.0189 0.1526 0.1254 0.1994 -0.4169 -0.2871 -0.1379 0.0627 -0.1608 0.0269 -0.1514 0.0200 -0.0645 -0.0447 -0.0345 -0.0120 0.0053 -0.0066 -0.0269
tmrc30042 TMRC30042 Neutrophils 42264 8 #D95F02 TMRC30042 0.1664 0.1430 0.1664 0.1430 -0.0722 -0.0686 -0.1882 -0.1597 -0.0416 -0.0155 0.0861 0.1677 0.4306 0.1088 -0.3482 0.1465 0.1034 -0.1860 -0.4371 0.0972 0.1129 -0.0629 0.1149 0.2164 0.0856 -0.0001 -0.2706 0.0282 0.2066 0.0589 -0.0849 0.0730 -0.0167 -0.1145 -0.0404 -0.0044 -0.0152 0.0043 -0.0169 -0.0068 0.0004 0.0320
tmrc30043 TMRC30043 Eosinophils 42264 8 #66A61E TMRC30043 0.1122 -0.0839 0.1122 -0.0839 0.2985 0.0896 0.0142 -0.1133 0.0297 0.0489 0.2550 0.2514 0.2249 0.1806 -0.0451 0.0620 0.2458 -0.2324 0.2939 -0.0900 -0.1646 -0.0929 -0.2057 -0.2975 -0.2007 0.1152 0.0220 0.2948 -0.0396 0.0961 0.0127 0.0197 0.0016 0.2800 0.0211 -0.0667 0.0606 -0.0668 0.0692 -0.0097 -0.0176 -0.0284
tmrc30045 TMRC30045 Biopsy 42258 12 #E7298A TMRC30045 -0.2525 0.1584 -0.2525 0.1584 0.0741 -0.0112 -0.0237 -0.0037 0.4343 0.6019 0.3437 -0.0134 -0.1527 -0.2572 -0.0304 0.1432 -0.0991 -0.0408 -0.1350 -0.0875 -0.0016 0.0649 -0.0525 0.1331 -0.1298 0.0103 0.0338 0.0193 0.0468 -0.0016 0.0237 0.0207 0.1125 -0.0207 -0.0120 0.0460 -0.0141 0.0027 -0.0079 0.0181 0.0282 -0.0016
write.csv(all_pca$table, file="hs_donor_pca_coords.csv")
plot_corheat(all_norm)$plot

plot_topn(hs_valid)$plot

3 Questions from Najib

I wandered into Najib’s office and he asked a few interesting and pointed questions. I am not sure yet if I can properly address them with the samples at hand, let us look.

3.1 Individual cell types

Do we have samples sufficient to ask about individual cell types from visit 1 to visit 2?

hs_query <- hs_valid
pData(hs_query[["expressionset"]])[["cell_time"]] <- paste0(pData(hs_query)[["typeofcells"]], "_",
                                                            pData(hs_query)[["visitnumber"]])
hs_query <- set_expt_conditions(hs_query, fact="cell_time")
table(pData(hs_query)[["condition"]])
## 
##      Biopsy_1 Eosinophils_1 Eosinophils_2 Eosinophils_3   Monocytes_1 
##            10             3             2             2             3 
##   Monocytes_2   Monocytes_3 Neutrophils_1 Neutrophils_2 Neutrophils_3 
##             4             2             4             3             2 
##       PBMCs_1 
##             6
hs_query <- set_expt_batches(hs_query, fact="selectionmethod")

biopsy <- subset_expt(hs_query, subset="typeofcells=='Biopsy'")
## Using a subset expression.
## There were 41, now there are 10 samples.
biopsy_norm <- normalize_expt(biopsy, norm="quant", convert="cpm", filter=TRUE, transform="log2")
## This function will replace the expt$expressionset slot with:
## log2(cpm(quant(cbcb(data))))
## It will save copies of each step along the way
##  in expt$normalized with the corresponding libsizes. Keep libsizes in mind
##  when invoking limma.  The appropriate libsize is non-log(cpm(normalized)).
##  This is most likely kept at:
##  'new_expt$normalized$intermediate_counts$normalization$libsizes'
##  A copy of this may also be found at:
##  new_expt$best_libsize
## Not correcting the count-data for batch effects.  If batch is
##  included in EdgerR/limma's model, then this is probably wise; but in extreme
##  batch effects this is a good parameter to play with.
## Step 1: performing count filter with option: cbcb
## Removing 42978 low-count genes (15324 remaining).
## Step 2: normalizing the data with quant.
## Step 3: converting the data with cpm.
## Step 4: transforming the data with log2.
## transform_counts: Found 40 values equal to 0, adding 1 to the matrix.
## Step 5: not doing batch correction.
plot_pca(biopsy_norm)$plot

eo <- subset_expt(hs_query, subset="typeofcells=='Eosinophils'")
## Using a subset expression.
## There were 41, now there are 7 samples.
eo_norm <- normalize_expt(eo, norm="quant", convert="cpm", filter=TRUE, transform="log2")
## This function will replace the expt$expressionset slot with:
## log2(cpm(quant(cbcb(data))))
## It will save copies of each step along the way
##  in expt$normalized with the corresponding libsizes. Keep libsizes in mind
##  when invoking limma.  The appropriate libsize is non-log(cpm(normalized)).
##  This is most likely kept at:
##  'new_expt$normalized$intermediate_counts$normalization$libsizes'
##  A copy of this may also be found at:
##  new_expt$best_libsize
## Not correcting the count-data for batch effects.  If batch is
##  included in EdgerR/limma's model, then this is probably wise; but in extreme
##  batch effects this is a good parameter to play with.
## Step 1: performing count filter with option: cbcb
## Removing 46525 low-count genes (11777 remaining).
## Step 2: normalizing the data with quant.
## Step 3: converting the data with cpm.
## Step 4: transforming the data with log2.
## transform_counts: Found 9 values equal to 0, adding 1 to the matrix.
## Step 5: not doing batch correction.
plot_pca(eo_norm)$plot

neut <- subset_expt(hs_query, subset="typeofcells=='Neutrophils'")
## Using a subset expression.
## There were 41, now there are 9 samples.
neut_norm <- normalize_expt(neut, norm="quant", convert="cpm", filter=TRUE, transform="log2")
## This function will replace the expt$expressionset slot with:
## log2(cpm(quant(cbcb(data))))
## It will save copies of each step along the way
##  in expt$normalized with the corresponding libsizes. Keep libsizes in mind
##  when invoking limma.  The appropriate libsize is non-log(cpm(normalized)).
##  This is most likely kept at:
##  'new_expt$normalized$intermediate_counts$normalization$libsizes'
##  A copy of this may also be found at:
##  new_expt$best_libsize
## Not correcting the count-data for batch effects.  If batch is
##  included in EdgerR/limma's model, then this is probably wise; but in extreme
##  batch effects this is a good parameter to play with.
## Step 1: performing count filter with option: cbcb
## Removing 48289 low-count genes (10013 remaining).
## Step 2: normalizing the data with quant.
## Step 3: converting the data with cpm.
## Step 4: transforming the data with log2.
## transform_counts: Found 4 values equal to 0, adding 1 to the matrix.
## Step 5: not doing batch correction.
plot_pca(neut_norm)$plot

mono <- subset_expt(hs_query, subset="typeofcells=='Monocytes'")
## Using a subset expression.
## There were 41, now there are 9 samples.
mono_norm <- normalize_expt(mono, norm="quant", convert="cpm", filter=TRUE, transform="log2")
## This function will replace the expt$expressionset slot with:
## log2(cpm(quant(cbcb(data))))
## It will save copies of each step along the way
##  in expt$normalized with the corresponding libsizes. Keep libsizes in mind
##  when invoking limma.  The appropriate libsize is non-log(cpm(normalized)).
##  This is most likely kept at:
##  'new_expt$normalized$intermediate_counts$normalization$libsizes'
##  A copy of this may also be found at:
##  new_expt$best_libsize
## Not correcting the count-data for batch effects.  If batch is
##  included in EdgerR/limma's model, then this is probably wise; but in extreme
##  batch effects this is a good parameter to play with.
## Step 1: performing count filter with option: cbcb
## Removing 45926 low-count genes (12376 remaining).
## Step 2: normalizing the data with quant.
## Step 3: converting the data with cpm.
## Step 4: transforming the data with log2.
## transform_counts: Found 39 values equal to 0, adding 1 to the matrix.
## Step 5: not doing batch correction.
plot_pca(mono_norm)$plot

3.2 Can we get cell signatures?

hs_sig <- simple_xcell(hs_valid, column="cds_length")
## The biomart annotations file already exists, loading from it.
## xCell strongly perfers rpkm values, re-normalizing now.
## This function will replace the expt$expressionset slot with:
## rpkm(data)
## It will save copies of each step along the way
##  in expt$normalized with the corresponding libsizes. Keep libsizes in mind
##  when invoking limma.  The appropriate libsize is non-log(cpm(normalized)).
##  This is most likely kept at:
##  'new_expt$normalized$intermediate_counts$normalization$libsizes'
##  A copy of this may also be found at:
##  new_expt$best_libsize
## Filter is false, this should likely be set to something, good
##  choices include cbcb, kofa, pofa (anything but FALSE).  If you want this to
##  stay FALSE, keep in mind that if other normalizations are performed, then the
##  resulting libsizes are likely to be strange (potentially negative!)
## Leaving the data in its current base format, keep in mind that
##  some metrics are easier to see when the data is log2 transformed, but
##  EdgeR/DESeq do not accept transformed data.
## Leaving the data unnormalized.  This is necessary for DESeq, but
##  EdgeR/limma might benefit from normalization.  Good choices include quantile,
##  size-factor, tmm, etc.
## Not correcting the count-data for batch effects.  If batch is
##  included in EdgerR/limma's model, then this is probably wise; but in extreme
##  batch effects this is a good parameter to play with.
## Step 1: not doing count filtering.
## Step 2: not normalizing the data.
## Step 3: converting the data with rpkm.
## Step 4: not transforming the data.
## Step 5: not doing batch correction.
## Loading required namespace: xCell

jet_colors <- grDevices::colorRampPalette(c("#00007F", "blue", "#007FFF", "cyan",
                                            "#7FFF7F", "yellow", "#FF7F00", "red", "#7F0000"))
tt <- hs_sig$xcell_result
heatmap.3(tt, trace="none", col=jet_colors, cexRow=0.5)

if (!isTRUE(get0("skip_load"))) {
  pander::pander(sessionInfo())
  message(paste0("This is hpgltools commit: ", get_git_commit()))
  message(paste0("Saving to ", savefile))
  tmp <- sm(saveme(filename=savefile))
}
## If you wish to reproduce this exact build of hpgltools, invoke the following:
## > git clone http://github.com/abelew/hpgltools.git
## > git reset defea68c4df789830e6d759243e1f973d2d9dca7
## This is hpgltools commit: Fri Dec 27 17:07:39 2019 -0500: defea68c4df789830e6d759243e1f973d2d9dca7
## Saving to 01_sample_estimation_v20200103.rda.xz
tmp <- loadme(filename=savefile)
LS0tCnRpdGxlOiAiTC4gcGFuYW1lbnNpcyAyMDIwMDEwMzogU2FtcGxlIEVzdGltYXRpb24uIgphdXRob3I6ICJhdGIgYWJlbGV3QGdtYWlsLmNvbSIKZGF0ZTogImByIFN5cy5EYXRlKClgIgpvdXRwdXQ6CiBodG1sX2RvY3VtZW50OgogIGNvZGVfZG93bmxvYWQ6IHRydWUKICBjb2RlX2ZvbGRpbmc6IHNob3cKICBmaWdfY2FwdGlvbjogdHJ1ZQogIGZpZ19oZWlnaHQ6IDcKICBmaWdfd2lkdGg6IDcKICBoaWdobGlnaHQ6IGRlZmF1bHQKICBrZWVwX21kOiBmYWxzZQogIG1vZGU6IHNlbGZjb250YWluZWQKICBudW1iZXJfc2VjdGlvbnM6IHRydWUKICBzZWxmX2NvbnRhaW5lZDogdHJ1ZQogIHRoZW1lOiByZWFkYWJsZQogIHRvYzogdHJ1ZQogIHRvY19mbG9hdDoKICAgY29sbGFwc2VkOiBmYWxzZQogICBzbW9vdGhfc2Nyb2xsOiBmYWxzZQotLS0KCjxzdHlsZT4KICBib2R5IC5tYWluLWNvbnRhaW5lciB7CiAgICBtYXgtd2lkdGg6IDE2MDBweDsKICB9Cjwvc3R5bGU+CgpgYGB7ciBvcHRpb25zLCBpbmNsdWRlPUZBTFNFfQppZiAoIWlzVFJVRShnZXQwKCJza2lwX2xvYWQiKSkpIHsKICBsaWJyYXJ5KGhwZ2x0b29scykKICB0dCA8LSBzbShkZXZ0b29sczo6bG9hZF9hbGwoIi9kYXRhL2hwZ2x0b29scyIpKQogIGtuaXRyOjpvcHRzX2tuaXQkc2V0KHByb2dyZXNzPVRSVUUsCiAgICAgICAgICAgICAgICAgICAgICAgdmVyYm9zZT1UUlVFLAogICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPTkwLAogICAgICAgICAgICAgICAgICAgICAgIGVjaG89VFJVRSkKICBrbml0cjo6b3B0c19jaHVuayRzZXQoZXJyb3I9VFJVRSwKICAgICAgICAgICAgICAgICAgICAgICAgZmlnLndpZHRoPTgsCiAgICAgICAgICAgICAgICAgICAgICAgIGZpZy5oZWlnaHQ9OCwKICAgICAgICAgICAgICAgICAgICAgICAgZHBpPTk2KQogIG9sZF9vcHRpb25zIDwtIG9wdGlvbnMoZGlnaXRzPTQsCiAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdzQXNGYWN0b3JzPUZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgICAga25pdHIuZHVwbGljYXRlLmxhYmVsPSJhbGxvdyIpCiAgZ2dwbG90Mjo6dGhlbWVfc2V0KGdncGxvdDI6OnRoZW1lX2J3KGJhc2Vfc2l6ZT0xMikpCiAgdmVyIDwtICIyMDIwMDEwMyIKICBwcmV2aW91c19maWxlIDwtIHBhc3RlMCgiaW5kZXhfdiIsIHZlciwgIi5SbWQiKQoKICB0bXAgPC0gdHJ5KHNtKGxvYWRtZShmaWxlbmFtZT1nc3ViKHBhdHRlcm49IlxcLlJtZCIsIHJlcGxhY2U9IlxcLnJkYVxcLnh6IiwgeD1wcmV2aW91c19maWxlKSkpKQogIHJtZF9maWxlIDwtIHBhc3RlMCgiMDFfc2FtcGxlX2VzdGltYXRpb25fdiIsIHZlciwgIi5SbWQiKQogIHNhdmVmaWxlIDwtIGdzdWIocGF0dGVybj0iXFwuUm1kIiwgcmVwbGFjZT0iXFwucmRhXFwueHoiLCB4PXJtZF9maWxlKQp9CmBgYAoKIyBBbm5vdGF0aW9uIHZlcnNpb246IGByIHZlcmAKCiMjIEdlbm9tZSBhbm5vdGF0aW9uIHdpdGggT3JnRGIvVHhEYi9PcmdhbmlzbURiaQoKVGhlIHRyaXRyeXBkYiBqdXN0IHJlbGVhc2VkIGEgbmV3IHZlcnNpb24uICBMZXQgdXMgbWFrZSBuZXcgYW5ub3RhdGlvbiBkYXRhIGZyb20gaXQuCgpgYGB7ciBjcmVhdGVfb3JnYW5pc21zfQojIyBUaGVzZSBmdW5jdGlvbnMgdGFrZSBfZm9yZXZlcl8gdGhlIGZpcnN0IHRpbWUgYXJvdW5kLgpkZXZ0b29sczo6bG9hZF9hbGwoIn4vc2NyYXRjaC9naXQvRXVQYXRoREIiKQoKcGFuX2VudHJ5IDwtIGdldF9ldXBhdGhfZW50cnkoInBhbmFtZW5zaXMiLCB3ZWJzZXJ2aWNlPSJ0cml0cnlwZGIiKQoKaW5zdGFsbGVkcCA8LSBnZXRfZXVwYXRoX3BrZ25hbWVzKHBhbl9lbnRyeSkkb3JnZGJfaW5zdGFsbGVkCmlmICghaXNUUlVFKGluc3RhbGxlZHApKSB7CiAgcGFuX2Fubm90IDwtIEV1UGF0aERCOjptYWtlX2V1cGF0aF9vcmdkYihwYW5fZW50cnksIHJlaW5zdGFsbD1UUlVFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcndyaXRlPVRSVUUpCn0KcGFuX25hbWVzIDwtIGdldF9ldXBhdGhfcGtnbmFtZXMocGFuX2VudHJ5KQpsaWJyYXJ5KHBhbl9uYW1lcyRvcmdkYiwgY2hhcmFjdGVyPVRSVUUpCnBhbl9kYiA8LSBnZXQwKHBhbl9uYW1lcyRvcmdkYikKcGFuX2RiCmBgYAoKRm9yIHRob3NlIHBhY2thZ2VzIEkgaGF2ZSBnZW5lcmF0ZWQvaW5zdGFsbGVkLCB1c2UgdGhpcyB0byBnZW5lcmF0ZSBhbgphbm5vdGF0aW9uIHRhYmxlLiBPaCwgYnV0IEkgcHJlZml4ZWQgdGhlIGNvbHVtbiBuYW1lcyB3aXRoICdhbm5vdF8nIGluIG9yZGVyIHRvCm1ha2Ugc3VyZSB0aGF0IG5vdGhpbmcgaXMgZHVwbGljYXRlZCB3aXRoIHRoZSBHTyB0YWJsZXMsIG9ydGhvbG9nIHRhYmxlcywgZXRjLgoKQnV0IGZpcnN0LCBsZXRzIHNlZSB3aGF0IGNvbHVtbnMgYXJlIGF2YWlsYWJsZSBpbiB0aGUgYW5ub3RhdGlvbiBwYWNrYWdlcy4KCmBgYHtyIGF2YWlsX2NvbHVtbnN9CmFsbF9maWVsZHMgPC0gY29sdW1ucyhwYW5fZGIpCmhlYWQoYWxsX2ZpZWxkcykKCmFsbF9scF9hbm5vdCA8LSBsb2FkX29yZ2RiX2Fubm90YXRpb25zKAogIHBhbl9kYiwKICBrZXl0eXBlPSJnaWQiLAogIGZpZWxkcz0iYWxsIikkZ2VuZXMKCmhzX2Fubm90IDwtIGxvYWRfYmlvbWFydF9hbm5vdGF0aW9ucygpCmhzX2Fubm90IDwtIGhzX2Fubm90W1siYW5ub3RhdGlvbiJdXQpoc19hbm5vdFtbInRyYW5zY3JpcHQiXV0gPC0gcGFzdGUwKHJvd25hbWVzKGhzX2Fubm90KSwgIi4iLCBoc19hbm5vdFtbInZlcnNpb24iXV0pCnJvd25hbWVzKGhzX2Fubm90KSA8LSBtYWtlLm5hbWVzKGhzX2Fubm90W1siZW5zZW1ibF9nZW5lX2lkIl1dLCB1bmlxdWU9VFJVRSkKdHhfZ2VuZV9tYXAgPC0gaHNfYW5ub3RbLCBjKCJ0cmFuc2NyaXB0IiwgImVuc2VtYmxfZ2VuZV9pZCIpXQpgYGAKCmBgYHtyIG9ydGhvc30Kb3J0aG9zIDwtIEV1UGF0aERCOjpleHRyYWN0X2V1cGF0aF9vcnRob2xvZ3MoZGI9cGFuX2RiKQpkaW0ob3J0aG9zKQpgYGAKCiMgU2FtcGxlIEVzdGltYXRpb24KCiMjIEdlbmVyYXRlIGV4cHJlc3Npb25zZXRzCgpgYGB7ciBhbGxfbmV3X2hpc2F0Mn0KdG1yYzNfaHNfZXhwdCA8LSBjcmVhdGVfZXhwdCgic2FtcGxlX3NoZWV0cy90bXJjM19zYW1wbGVzXzIwMjAwMTAyLnhsc3giLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVfY29sdW1uPSJoZzM4OTFoaXNhdGZpbGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVfaW5mbz1oc19hbm5vdCkKCmxpYnNpemVzIDwtIHBsb3RfbGlic2l6ZSh0bXJjM19oc19leHB0KQpsaWJzaXplcyRwbG90CiMjIEkgdGhpbmsgc2FtcGxlcyA3LDEwIHNob3VsZCBiZSByZW1vdmVkIGF0IG1pbmltdW0sIHByb2JhYmx5IGFsc28gOSwxMQpub256ZXJvIDwtIHBsb3Rfbm9uemVybyh0bXJjM19oc19leHB0KQpub256ZXJvJHBsb3QKYm94IDwtIHBsb3RfYm94cGxvdCh0bXJjM19oc19leHB0KQpib3gKCnJvd25hbWVzKGFsbF9scF9hbm5vdCkgPC0gcGFzdGUwKCJleG9uXyIsIHJvd25hbWVzKGFsbF9scF9hbm5vdCksICIuRTEiKQoKdG1yYzNfbHBfZXhwdCA8LSBjcmVhdGVfZXhwdCgic2FtcGxlX3NoZWV0cy90bXJjM19zYW1wbGVzXzIwMjAwMTAyLnhsc3giLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVfY29sdW1uPSJscGFuYW1lbnNpc3YzNmhpc2F0ZmlsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZV9pbmZvPWFsbF9scF9hbm5vdCkKYGBgCgpgYGB7ciBoaXNhdDJfd3JpdGUsIGZpZy5zaG93PSJoaWRlIn0KaHNfdmFsaWQgPC0gc3Vic2V0X2V4cHQodG1yYzNfaHNfZXhwdCwgY292ZXJhZ2U9MzAwMDAwMCkKcGxvdF9saWJzaXplKGhzX3ZhbGlkKSRwbG90CgpscF90bXJjM192YWxpZCA8LSBzdWJzZXRfZXhwdCh0bXJjM19scF9leHB0LCBjb3ZlcmFnZT0xMDAwMCkKCnZhbGlkX3dyaXRlIDwtIHdyaXRlX2V4cHQoaHNfdmFsaWQsIGV4Y2VsPWdsdWUoImV4Y2VsL2hzX3ZhbGlkLXZ7dmVyfS54bHN4IikpCmBgYAoKCmBgYHtyIGZ1bn0KYWxsX25vcm0gPC0gbm9ybWFsaXplX2V4cHQoaHNfdmFsaWQsIG5vcm09InF1YW50IiwgdHJhbnNmb3JtPSJsb2cyIiwgY29udmVydD0iY3BtIiwgYmF0Y2g9RkFMU0UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcj1UUlVFKQphbGxfcGNhIDwtIHBsb3RfcGNhKGFsbF9ub3JtKQphbGxfcGNhJHBsb3QKa25pdHI6OmthYmxlKGFsbF9wY2EkdGFibGUpCndyaXRlLmNzdihhbGxfcGNhJHRhYmxlLCBmaWxlPSJoc19kb25vcl9wY2FfY29vcmRzLmNzdiIpCnBsb3RfY29yaGVhdChhbGxfbm9ybSkkcGxvdApwbG90X3RvcG4oaHNfdmFsaWQpJHBsb3QKYGBgCgojIFF1ZXN0aW9ucyBmcm9tIE5hamliCgpJIHdhbmRlcmVkIGludG8gTmFqaWIncyBvZmZpY2UgYW5kIGhlIGFza2VkIGEgZmV3IGludGVyZXN0aW5nIGFuZCBwb2ludGVkCnF1ZXN0aW9ucy4gIEkgYW0gbm90IHN1cmUgeWV0IGlmIEkgY2FuIHByb3Blcmx5IGFkZHJlc3MgdGhlbSB3aXRoIHRoZSBzYW1wbGVzIGF0CmhhbmQsIGxldCB1cyBsb29rLgoKIyMgSW5kaXZpZHVhbCBjZWxsIHR5cGVzCgpEbyB3ZSBoYXZlIHNhbXBsZXMgc3VmZmljaWVudCB0byBhc2sgYWJvdXQgaW5kaXZpZHVhbCBjZWxsIHR5cGVzIGZyb20gdmlzaXQgMSB0bwp2aXNpdCAyPwoKYGBge3IgdjF2Mn0KaHNfcXVlcnkgPC0gaHNfdmFsaWQKcERhdGEoaHNfcXVlcnlbWyJleHByZXNzaW9uc2V0Il1dKVtbImNlbGxfdGltZSJdXSA8LSBwYXN0ZTAocERhdGEoaHNfcXVlcnkpW1sidHlwZW9mY2VsbHMiXV0sICJfIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcERhdGEoaHNfcXVlcnkpW1sidmlzaXRudW1iZXIiXV0pCmhzX3F1ZXJ5IDwtIHNldF9leHB0X2NvbmRpdGlvbnMoaHNfcXVlcnksIGZhY3Q9ImNlbGxfdGltZSIpCnRhYmxlKHBEYXRhKGhzX3F1ZXJ5KVtbImNvbmRpdGlvbiJdXSkKaHNfcXVlcnkgPC0gc2V0X2V4cHRfYmF0Y2hlcyhoc19xdWVyeSwgZmFjdD0ic2VsZWN0aW9ubWV0aG9kIikKCmJpb3BzeSA8LSBzdWJzZXRfZXhwdChoc19xdWVyeSwgc3Vic2V0PSJ0eXBlb2ZjZWxscz09J0Jpb3BzeSciKQpiaW9wc3lfbm9ybSA8LSBub3JtYWxpemVfZXhwdChiaW9wc3ksIG5vcm09InF1YW50IiwgY29udmVydD0iY3BtIiwgZmlsdGVyPVRSVUUsIHRyYW5zZm9ybT0ibG9nMiIpCnBsb3RfcGNhKGJpb3BzeV9ub3JtKSRwbG90CgplbyA8LSBzdWJzZXRfZXhwdChoc19xdWVyeSwgc3Vic2V0PSJ0eXBlb2ZjZWxscz09J0Vvc2lub3BoaWxzJyIpCmVvX25vcm0gPC0gbm9ybWFsaXplX2V4cHQoZW8sIG5vcm09InF1YW50IiwgY29udmVydD0iY3BtIiwgZmlsdGVyPVRSVUUsIHRyYW5zZm9ybT0ibG9nMiIpCnBsb3RfcGNhKGVvX25vcm0pJHBsb3QKCgoKbmV1dCA8LSBzdWJzZXRfZXhwdChoc19xdWVyeSwgc3Vic2V0PSJ0eXBlb2ZjZWxscz09J05ldXRyb3BoaWxzJyIpCm5ldXRfbm9ybSA8LSBub3JtYWxpemVfZXhwdChuZXV0LCBub3JtPSJxdWFudCIsIGNvbnZlcnQ9ImNwbSIsIGZpbHRlcj1UUlVFLCB0cmFuc2Zvcm09ImxvZzIiKQpwbG90X3BjYShuZXV0X25vcm0pJHBsb3QKCm1vbm8gPC0gc3Vic2V0X2V4cHQoaHNfcXVlcnksIHN1YnNldD0idHlwZW9mY2VsbHM9PSdNb25vY3l0ZXMnIikKbW9ub19ub3JtIDwtIG5vcm1hbGl6ZV9leHB0KG1vbm8sIG5vcm09InF1YW50IiwgY29udmVydD0iY3BtIiwgZmlsdGVyPVRSVUUsIHRyYW5zZm9ybT0ibG9nMiIpCnBsb3RfcGNhKG1vbm9fbm9ybSkkcGxvdApgYGAKCiMjIENhbiB3ZSBnZXQgY2VsbCBzaWduYXR1cmVzPwoKYGBge3Igc2lnbmF0dXJlc30KaHNfc2lnIDwtIHNpbXBsZV94Y2VsbChoc192YWxpZCwgY29sdW1uPSJjZHNfbGVuZ3RoIikKCmpldF9jb2xvcnMgPC0gZ3JEZXZpY2VzOjpjb2xvclJhbXBQYWxldHRlKGMoIiMwMDAwN0YiLCAiYmx1ZSIsICIjMDA3RkZGIiwgImN5YW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIjN0ZGRjdGIiwgInllbGxvdyIsICIjRkY3RjAwIiwgInJlZCIsICIjN0YwMDAwIikpCnR0IDwtIGhzX3NpZyR4Y2VsbF9yZXN1bHQKaGVhdG1hcC4zKHR0LCB0cmFjZT0ibm9uZSIsIGNvbD1qZXRfY29sb3JzLCBjZXhSb3c9MC41KQpgYGAKCgpgYGB7ciBzYXZlbWV9CmlmICghaXNUUlVFKGdldDAoInNraXBfbG9hZCIpKSkgewogIHBhbmRlcjo6cGFuZGVyKHNlc3Npb25JbmZvKCkpCiAgbWVzc2FnZShwYXN0ZTAoIlRoaXMgaXMgaHBnbHRvb2xzIGNvbW1pdDogIiwgZ2V0X2dpdF9jb21taXQoKSkpCiAgbWVzc2FnZShwYXN0ZTAoIlNhdmluZyB0byAiLCBzYXZlZmlsZSkpCiAgdG1wIDwtIHNtKHNhdmVtZShmaWxlbmFtZT1zYXZlZmlsZSkpCn0KYGBgCgpgYGB7ciBsb2FkbWVfYWZ0ZXIsIGV2YWw9RkFMU0V9CnRtcCA8LSBsb2FkbWUoZmlsZW5hbWU9c2F2ZWZpbGUpCmBgYAo=