1 Sample Estimation

Let us see what we can learn about our mystery samples!

1.1 Generate expressionsets

In my previous iteration, I neglected to include the nonesmeraldo, unassigned, and combined haplotype data. Let us fix that here. As an aside, in a separate previous iteration, I combined some of the older (tophat2-based from 2015) data with this data to see how these newer samples cluster with the previous samples. I want to do that again, but this time keep it separate.

1.1.1 The set of all haplotypes

Caveat: This is using hisat2 quantifications.

all_new_hisat <- create_expt("sample_sheets/all_samples.xlsx", file_column="allhisatfile",
                             gene_info=hisat_clbr_annot)
## Reading the sample metadata.
## The sample definitions comprises: 13 rows(samples) and 10 columns(metadata fields).
## Reading count tables.
## Reading count tables with read.table().
## /cbcbsub/cbcb/nelsayed-scratch/atb/rnaseq/tcruzi_2019/preprocessing/hpgl1168/outputs/hisat2_tcruzi_all/forward.count.xz contains 25114 rows.
## /cbcbsub/cbcb/nelsayed-scratch/atb/rnaseq/tcruzi_2019/preprocessing/hpgl1169/outputs/hisat2_tcruzi_all/forward.count.xz contains 25114 rows and merges to 25114 rows.
## /cbcbsub/cbcb/nelsayed-scratch/atb/rnaseq/tcruzi_2019/preprocessing/hpgl1170/outputs/hisat2_tcruzi_all/forward.count.xz contains 25114 rows and merges to 25114 rows.
## /cbcbsub/cbcb/nelsayed-scratch/atb/rnaseq/tcruzi_2019/preprocessing/hpgl1171/outputs/hisat2_tcruzi_all/forward.count.xz contains 25114 rows and merges to 25114 rows.
## /cbcbsub/cbcb/nelsayed-scratch/atb/rnaseq/tcruzi_2019/preprocessing/hpgl1172/outputs/hisat2_tcruzi_all/forward.count.xz contains 25114 rows and merges to 25114 rows.
## /cbcbsub/cbcb/nelsayed-scratch/atb/rnaseq/tcruzi_2019/preprocessing/hpgl1173/outputs/hisat2_tcruzi_all/forward.count.xz contains 25114 rows and merges to 25114 rows.
## /cbcbsub/cbcb/nelsayed-scratch/atb/rnaseq/tcruzi_2019/preprocessing/hpgl1174/outputs/hisat2_tcruzi_all/forward.count.xz contains 25114 rows and merges to 25114 rows.
## Finished reading count tables.
## Matched 25099 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 25109 rows and 7 columns.
all_new_written <- sm(write_expt(
  all_new_hisat,
  excel=paste0("excel/all_new_hisat_written-v", ver, ".xlsx")))

1.1.2 All haplotypes, salmon

all_new_salmon <- create_expt("sample_sheets/all_samples.xlsx", file_column="allsalmonfile",
                              gene_info=clbr_annot)
## Reading the sample metadata.
## The sample definitions comprises: 13 rows(samples) and 10 columns(metadata fields).
## Reading count tables.
## Reading salmon data with tximport.
## Finished reading count tables.
## Matched 23304 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 23305 rows and 7 columns.
all_salmon_written <- sm(write_expt(
  all_new_salmon,
  excel=paste0("excel/all_new_salmon_written-v", ver, ".xlsx")))

1.1.3 Esmeraldo

Caveat: This is using salmon quantifications.

esmer_new <- create_expt("sample_sheets/all_samples.xlsx", file_column="esmerfile",
                       gene_info=salmon_clbr_annot)
## Reading the sample metadata.
## The sample definitions comprises: 13 rows(samples) and 10 columns(metadata fields).
## Reading count tables.
## Reading salmon data with tximport.
## Finished reading count tables.
## Matched 8994 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 10473 rows and 7 columns.
esmer_new_written <- sm(write_expt(
  esmer_new,
  excel=paste0("excel/esmer_new_salmon_written-v", ver, ".xlsx")))

1.1.4 Non-Esmeraldo

Caveat: This is using salmon quantifications.

nonesmer_new <- create_expt("sample_sheets/all_samples.xlsx", file_column="nonesmerfile",
                       gene_info=salmon_clbr_annot)
## Reading the sample metadata.
## The sample definitions comprises: 13 rows(samples) and 10 columns(metadata fields).
## Reading count tables.
## Reading salmon data with tximport.
## Finished reading count tables.
## Matched 9327 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 10958 rows and 7 columns.
nonesmer_new_written <- sm(write_expt(
  nonesmer_new,
  excel=paste0("excel/nonesmer_new_salmon_written-v", ver, ".xlsx")))

1.1.5 Unassigned

Caveat: This is using salmon quantifications.

unassigned_new <- create_expt("sample_sheets/all_samples.xlsx", file_column="unassignedfile",
                              gene_info=salmon_clbr_annot)
## Reading the sample metadata.
## The sample definitions comprises: 13 rows(samples) and 10 columns(metadata fields).
## Reading count tables.
## Reading salmon data with tximport.
## Finished reading count tables.
## Matched 1184 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 2507 rows and 7 columns.
unas_new_written <- sm(write_expt(
  unassigned_new,
  excel=paste0("excel/unassigned_new_salmon_written-v", ver, ".xlsx")))
## Error in density.default(x, adjust = adj) : 'x' contains missing values
## Error in density.default(x, adjust = adj) : 'x' contains missing values

1.1.6 Combine new and previous data

The previous data was via tophat, so it should only be combined with the hisat data.

all_previous <- create_expt("sample_sheets/all_samples.xlsx", file_column="alltophatfile",
                            gene_info=clbr_annot)
## Reading the sample metadata.
## The sample definitions comprises: 13 rows(samples) and 10 columns(metadata fields).
## Reading count tables.
## Reading count tables with read.table().
## /cbcbsub/cbcb/nelsayed-scratch/atb/rnaseq/tcruzi_2019/preprocessing/previous/hpgl0483/accepted_hits.count.xz contains 25105 rows.
## /cbcbsub/cbcb/nelsayed-scratch/atb/rnaseq/tcruzi_2019/preprocessing/previous/hpgl0486/accepted_hits.count.xz contains 25105 rows and merges to 25105 rows.
## /cbcbsub/cbcb/nelsayed-scratch/atb/rnaseq/tcruzi_2019/preprocessing/previous/hpgl0487/accepted_hits.count.xz contains 25105 rows and merges to 25105 rows.
## /cbcbsub/cbcb/nelsayed-scratch/atb/rnaseq/tcruzi_2019/preprocessing/previous/hpgl0488/accepted_hits.count.xz contains 25105 rows and merges to 25105 rows.
## /cbcbsub/cbcb/nelsayed-scratch/atb/rnaseq/tcruzi_2019/preprocessing/previous/hpgl0490/accepted_hits.count.xz contains 25105 rows and merges to 25105 rows.
## /cbcbsub/cbcb/nelsayed-scratch/atb/rnaseq/tcruzi_2019/preprocessing/previous/hpgl0481/accepted_hits.count.xz contains 25105 rows and merges to 25105 rows.
## Finished reading count tables.
## Matched 25099 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 25100 rows and 6 columns.
current_names <- gsub(x=rownames(exprs(all_new_hisat)), pattern="^exon_", replacement="")
current_names <- make.names(gsub(x=current_names, pattern="\\.\\d+$", replacement=""), unique=TRUE)
## Copy the new data to a fresh file in case of error.
all_current <- set_expt_genenames(all_new_hisat, ids=current_names)

all_both <- combine_expts(all_previous, all_current)
## Warning in alleq(levels(x[[nm]]), levels(y[[nm]])): 2 string mismatches
## Warning: data frame column 'condition' levels not all.equal
## Warning in alleq(levels(x[[nm]]), levels(y[[nm]])): 1 string mismatch
## Warning: data frame column 'batch' levels not all.equal
dim(exprs(all_both))
## [1] 25109    13
summary(exprs(all_both))
##     hpgl0483         hpgl0486         hpgl0487         hpgl0488     
##  Min.   :     0   Min.   :     0   Min.   :     0   Min.   :     0  
##  1st Qu.:    90   1st Qu.:   123   1st Qu.:   105   1st Qu.:   259  
##  Median :   383   Median :   536   Median :   450   Median :   662  
##  Mean   :   781   Mean   :  1123   Mean   :   925   Mean   :  1267  
##  3rd Qu.:   850   3rd Qu.:  1212   3rd Qu.:  1004   3rd Qu.:  1341  
##  Max.   :147296   Max.   :199098   Max.   :165468   Max.   :187351  
##     hpgl0490         hpgl0481         hpgl1168       hpgl1169   
##  Min.   :     0   Min.   :     0   Min.   :   0   Min.   :   0  
##  1st Qu.:   178   1st Qu.:   236   1st Qu.:   2   1st Qu.:   3  
##  Median :   552   Median :   637   Median :  26   Median :  29  
##  Mean   :  1086   Mean   :  1216   Mean   :  69   Mean   :  76  
##  3rd Qu.:  1208   3rd Qu.:  1284   3rd Qu.:  76   3rd Qu.:  84  
##  Max.   :151001   Max.   :163528   Max.   :5060   Max.   :5281  
##     hpgl1170       hpgl1171       hpgl1172       hpgl1173   
##  Min.   :   0   Min.   :   0   Min.   :   0   Min.   :   0  
##  1st Qu.:   3   1st Qu.:   2   1st Qu.:   3   1st Qu.:   3  
##  Median :  27   Median :  28   Median :  34   Median :  36  
##  Mean   :  70   Mean   :  70   Mean   :  83   Mean   :  87  
##  3rd Qu.:  78   3rd Qu.:  78   3rd Qu.:  94   3rd Qu.: 100  
##  Max.   :4837   Max.   :6463   Max.   :6116   Max.   :7064  
##     hpgl1174   
##  Min.   :   0  
##  1st Qu.:   3  
##  Median :  30  
##  Mean   :  73  
##  3rd Qu.:  84  
##  Max.   :6722

1.2 Coverage of new vs. previous

all_libsize <- plot_libsize(all_both)
## The scale difference between the smallest and largest
## libraries is > 10. Assuming a log10 scale is better, set scale=FALSE if not.
all_libsize$plot

2 Look at data distributions

Normalize and plot a couple plots for these and see how they look.

all_hisat_norm <- sm(normalize_expt(all_new_hisat, norm="quant", convert="cpm",
                                    transform="log2"))
plot_pca(all_hisat_norm)$plot

plot_corheat(all_hisat_norm)$plot

all_salmon_norm <- sm(normalize_expt(all_new_salmon, norm="quant", convert="cpm",
                                    transform="log2"))
plot_pca(all_salmon_norm)$plot

plot_corheat(all_salmon_norm)$plot

esmer_new_norm <- sm(normalize_expt(esmer_new, norm="quant", convert="cpm",
                                    transform="log2"))
plot_pca(esmer_new_norm)$plot

plot_corheat(esmer_new_norm)$plot

nonesmer_new_norm <- sm(normalize_expt(nonesmer_new, norm="quant", convert="cpm",
                                       transform="log2"))
plot_pca(nonesmer_new_norm)$plot

plot_corheat(nonesmer_new_norm)$plot

unas_new_norm <- sm(normalize_expt(unassigned_new, norm="quant", convert="cpm",
                                   transform="log2"))
plot_pca(unas_new_norm)$plot

plot_corheat(unas_new_norm)$plot

2.1 Compare old/new data

The big caveat here is of course the coverage. That reminds me, I have been meaning to make the size of the glyphs correspond to the samples’ relative coverage. This is a great dataset to illustrate that idea.

all_both_norm <- sm(normalize_expt(all_both, norm="quant", convert="cpm",
                                   transform="log2"))
plot_pca(all_both_norm)$plot

all_both_norm_sva <- normalize_expt(all_both, norm="quant", convert="cpm",
                                    transform="log2", batch="svaseq")
## This function will replace the expt$expressionset slot with:
## log2(svaseq(cpm(quant(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!)
## Warning in normalize_expt(all_both, norm = "quant", convert = "cpm",
## transform = "log2", : Quantile normalization and sva do not always play
## well together.
## Step 1: not doing count filtering.
## Step 2: normalizing the data with quant.
## Using normalize.quantiles.robust due to a thread error in preprocessCore.
## Step 3: converting the data with cpm.
## Step 4: transforming the data with log2.
## transform_counts: Found 4293 values equal to 0, adding 1 to the matrix.
## Step 5: doing batch correction with svaseq.
## Note to self:  If you get an error like 'x contains missing values' The data has too many 0's and needs a stronger low-count filter applied.
## Passing off to all_adjusters.
## batch_counts: Before batch/surrogate estimation, 282257 entries are x>1: 86.5%.
## batch_counts: Before batch/surrogate estimation, 4293 entries are x==0: 1.32%.
## batch_counts: Before batch/surrogate estimation, 39867 entries are 0<x<1: 12.2%.
## The be method chose 6 surrogate variable(s).
## Attempting svaseq estimation with 6 surrogates.
## There are 2727 (0.835%) elements which are < 0 after batch correction.
plot_pca(all_both_norm_sva)$plot

2.2 Get DE Tables

For each data set, perform the wt vs. not DE analysis. Print some plots of the results later. My all_pairwise() function is very chatty. I will let it talk for the first run, but then stop it for the later.

2.2.1 All haplotypes

keepers <- list(
  "ko_vs_wt" = c("unknown", "wt"))

all_hisat_de <- all_pairwise(all_new_hisat, model_batch=FALSE, do_ebseq=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 5600 low-count genes (19509 remaining).
## Step 2: normalizing the data with quant.
## Using normalize.quantiles.robust due to a thread error in preprocessCore.
## Step 3: converting the data with cpm.
## Step 4: transforming the data with log2.
## transform_counts: Found 1163 values equal to 0, adding 1 to the matrix.
## Step 5: not doing batch correction.
## Plotting a PCA before surrogates/batch inclusion.
## Assuming no batch in model for testing pca.
## Finished running DE analyses, collecting outputs.
## Comparing analyses.
all_hisat_tables <- combine_de_tables(
  all_hisat_de,
  keepers=keepers,
  excel=paste0("excel/all_hisat_tables-v", ver, ".xlsx"))
## Deleting the file excel/all_hisat_tables-v20190513.xlsx before writing the tables.
## Writing a legend of columns.
## Printing a pca plot before/after surrogates/batch estimation.
## Working on 1/1: ko_vs_wt which is: unknown/wt.
## Found inverse table with wt_vs_unknown
## 20181210 a pthread error in normalize.quantiles leads me to robust.
## Used Bon Ferroni corrected t test(s) between columns.
## Used Bon Ferroni corrected t test(s) between columns.
## Used Bon Ferroni corrected t test(s) between columns.
## Adding venn plots for ko_vs_wt.
## Limma expression coefficients for ko_vs_wt; R^2: 0.98; equation: y = 0.99x + 0.0353
## Edger expression coefficients for ko_vs_wt; R^2: 0.982; equation: y = 0.987x + 0.0757
## DESeq2 expression coefficients for ko_vs_wt; R^2: 0.963; equation: y = 0.966x + 0.199
## Writing summary information.
## Attempting to add the comparison plot to pairwise_summary at row: 23 and column: 1
## Performing save of excel/all_hisat_tables-v20190513.xlsx.
## It is so weird that limma/deseq/edger do not agree for this data,
## this should be looked into further. Ahh, looking at the all_new_tables.xlsx file,
## I think I see the answer.  The pairwise_summary worksheet shows that the logFC values
## are very similar, but the plots of p-values to the right of the table show
## significantly different thresholds of 'significant.'

## extract_significant_genes() talks too much, I am silencing it in all invocations.
all_hisat_sig <- sm(extract_significant_genes(
  all_hisat_tables,
  excel=paste0("excel/all_hisat_significant-v", ver, ".xlsx")))

all_salmon_de <- sm(all_pairwise(all_new_salmon, model_batch=FALSE, do_ebseq=TRUE))

all_salmon_tables <- sm(combine_de_tables(
  all_salmon_de,
  keepers=keepers,
  excel=paste0("excel/all_salmon_tables-v", ver, ".xlsx")))
all_salmon_sig <- sm(extract_significant_genes(
  all_salmon_tables,
  excel=paste0("excel/all_salmon_significant-v", ver, ".xlsx")))

salmon_table <- all_salmon_tables[["data"]][[1]]
hisat_table <- all_hisat_tables[["data"]][[1]]
rownames(hisat_table) <- gsub(pattern="^exon_", replacement="", x=rownames(hisat_table))
rownames(hisat_table) <- gsub(pattern="\\.1$", replacement="", x=rownames(hisat_table))
merged_table <- merge(salmon_table, hisat_table, by="row.names")
cor.test(merged_table[["limma_logfc.x"]], merged_table[["limma_logfc.y"]], method="spearman")
## Warning in cor.test.default(merged_table[["limma_logfc.x"]],
## merged_table[["limma_logfc.y"]], : Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  merged_table[["limma_logfc.x"]] and merged_table[["limma_logfc.y"]]
## S = 5.2e+11, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.7523
cor.test(merged_table[["deseq_logfc.x"]], merged_table[["deseq_logfc.y"]], method="spearman")
## Warning in cor.test.default(merged_table[["deseq_logfc.x"]],
## merged_table[["deseq_logfc.y"]], : Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  merged_table[["deseq_logfc.x"]] and merged_table[["deseq_logfc.y"]]
## S = 5.4e+11, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.7433
cor.test(merged_table[["edger_logfc.x"]], merged_table[["edger_logfc.y"]], method="spearman")
## Warning in cor.test.default(merged_table[["edger_logfc.x"]],
## merged_table[["edger_logfc.y"]], : Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  merged_table[["edger_logfc.x"]] and merged_table[["edger_logfc.y"]]
## S = 5.4e+11, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.7421
## holy crap I utterly expected these to be much higher, in other data sets they were >= 0.98.
test <- plot_linear_scatter(merged_table[, c("deseq_logfc.x", "deseq_logfc.y")])
## Used Bon Ferroni corrected t test(s) between columns.
test[["scatter"]]

2.2.2 Esmeraldo

esmer_new_de <- sm(all_pairwise(esmer_new, model_batch=FALSE, do_ebseq=TRUE))
esmer_new_tables <- sm(combine_de_tables(
  esmer_new_de,
  keepers=keepers,
  excel=paste0("excel/esmer_new_tables-v", ver, ".xlsx")))
esmer_new_sig <- sm(extract_significant_genes(
  esmer_new_tables,
  excel=paste0("excel/esmer_new_significant-v", ver, ".xlsx")))

2.2.3 Non-Esmeraldo

nonesmer_new_de <- sm(all_pairwise(nonesmer_new, model_batch=FALSE, do_ebseq=TRUE))
nonesmer_new_tables <- sm(combine_de_tables(
  nonesmer_new_de,
  keepers=keepers,
  excel=paste0("excel/nonesmer_new_tables-v", ver, ".xlsx")))
nonesmer_new_sig <- sm(extract_significant_genes(
  nonesmer_new_tables,
  excel=paste0("excel/nonesmer_new_significant-v", ver, ".xlsx")))

2.3 Compare Esmeraldo and Non-Esmeraldo

library(EuPathDB)
## Loading required package: GenomicRanges
## Loading required package: stats4
## Loading required package: S4Vectors
## 
## Attaching package: 'S4Vectors'
## The following object is masked from 'package:base':
## 
##     expand.grid
## Loading required package: IRanges
## Loading required package: GenomeInfoDb
## Loading required package: GenomeInfoDbData
## Loading required package: AnnotationHub
## Loading required package: BiocFileCache
## Loading required package: dbplyr
## 
## Attaching package: 'AnnotationHub'
## The following object is masked from 'package:hpgltools':
## 
##     cache
## The following object is masked from 'package:Biobase':
## 
##     cache
## 
## This is EuPathDB version 1.5.0
##  Read 'EuPathDB()' to get started.
## 
## Attaching package: 'EuPathDB'
## The following objects are masked from 'package:hpgltools':
## 
##     get_kegg_orgn, load_kegg_annotations, load_orgdb_annotations,
##     load_orgdb_go, orgdb_from_ah
library(esmer_names$orgdb, character=TRUE)
## Loading required package: AnnotationDbi
## 
library(nonesmer_names$orgdb, character=TRUE)
## 
library(unas_names$orgdb, character=TRUE)
## 
esmer_db <- get0(esmer_names$orgdb)
nonesmer_db <- get0(nonesmer_names$orgdb)

esmer_orthos <- load_orgdb_go(
  esmer_db,
  columns=c("orthologs_gene_id", "orthologs_gid", "orthologs_organism", "orthologs_product"))
## This is an orgdb, good.
## 'select()' returned 1:many mapping between keys and columns
nonesmer_idx <- grepl(x=esmer_orthos[["ORTHOLOGS_ORGANISM"]], pattern="Non")
nonesmer_table <- esmer_orthos[nonesmer_idx, ]

3 Variant positions

snp_cond_expt <- count_expt_snps(all_new_hisat, type="percent")
## Making a matrix of percentages.
## Parsed with column specification:
## cols(
##   `# chr_pos_ref_alt` = col_character(),
##   diff_count = col_double(),
##   all_count = col_double(),
##   pct = col_double()
## )
## Parsed with column specification:
## cols(
##   `# chr_pos_ref_alt` = col_character(),
##   diff_count = col_double(),
##   all_count = col_double(),
##   pct = col_double()
## )
## Parsed with column specification:
## cols(
##   `# chr_pos_ref_alt` = col_character(),
##   diff_count = col_double(),
##   all_count = col_double(),
##   pct = col_double()
## )
## Parsed with column specification:
## cols(
##   `# chr_pos_ref_alt` = col_character(),
##   diff_count = col_double(),
##   all_count = col_double(),
##   pct = col_double()
## )
## Parsed with column specification:
## cols(
##   `# chr_pos_ref_alt` = col_character(),
##   diff_count = col_double(),
##   all_count = col_double(),
##   pct = col_double()
## )
## Parsed with column specification:
## cols(
##   `# chr_pos_ref_alt` = col_character(),
##   diff_count = col_double(),
##   all_count = col_double(),
##   pct = col_double()
## )
## Parsed with column specification:
## cols(
##   `# chr_pos_ref_alt` = col_character(),
##   diff_count = col_double(),
##   all_count = col_double(),
##   pct = col_double()
## )
snp_numbers <- plot_libsize(snp_cond_expt)
snp_numbers$plot

snp_cond_sets <- get_snp_sets(snp_cond_expt, factor="condition")
## The factor wt has 3 rows.
## The factor unknown has 4 rows.
snp_cond_summary <- snps_vs_genes(all_new_hisat, snp_cond_sets)
## Warning in .Seqinfo.mergexy(x, y): Each of the 2 combined objects has sequence levels not in the other:
##   - in 'x': Tcruzi_10142, Tcruzi_1024, Tcruzi_1043, Tcruzi_1061, Tcruzi_10659, Tcruzi_10699, Tcruzi_10888, Tcruzi_11148, Tcruzi_11256, Tcruzi_11260, Tcruzi_11316, Tcruzi_11512, Tcruzi_11664, Tcruzi_11809, Tcruzi_11828, Tcruzi_11864, Tcruzi_11994, Tcruzi_12097, Tcruzi_12098, Tcruzi_12161, Tcruzi_1217, Tcruzi_12178, Tcruzi_12292, Tcruzi_12515, Tcruzi_12519, Tcruzi_12626, Tcruzi_12727, Tcruzi_12964, Tcruzi_13041, Tcruzi_13052, Tcruzi_13134, Tcruzi_13226, Tcruzi_13277, Tcruzi_13309, Tcruzi_13381, Tcruzi_134, Tcruzi_13502, Tcruzi_13537, Tcruzi_13555, Tcruzi_13604, Tcruzi_13609, Tcruzi_13788, Tcruzi_13827, Tcruzi_13965, Tcruzi_13993, Tcruzi_14180, Tcruzi_14413, Tcruzi_14581, Tcruzi_14624, Tcruzi_14652, Tcruzi_14667, Tcruzi_14725, Tcruzi_14746, Tcruzi_14871, Tcruzi_14905, Tcruzi_14934, Tcruzi_14940, Tcruzi_15133, Tcruzi_15331, Tcruzi_15352, Tcruzi_15418, Tcruzi_15478, Tcruzi_15516, Tcruzi_15530, Tcruzi_15648, Tcruzi_15786, Tcruzi_15826, Tcruzi_15844, Tcruzi_15882, Tcruzi_16007, Tcruzi_16223, Tcruzi_16277, Tcruzi_16337, Tcruzi_16425, Tcruzi_16458, Tcruzi_16473, Tcruzi_16698, Tcruzi_16730, Tcruzi_16804, Tcruzi_16822, Tcruzi_16903, Tcruzi_16916, Tcruzi_16958, Tcruzi_17030, Tcruzi_1707, Tcruzi_17101, Tcruzi_17327, Tcruzi_17524, Tcruzi_17575, Tcruzi_17711, Tcruzi_1802, Tcruzi_18174, Tcruzi_18279, Tcruzi_18304, Tcruzi_18645, Tcruzi_1910, Tcruzi_19158, Tcruzi_19253, Tcruzi_19299, Tcruzi_19312, Tcruzi_1944, Tcruzi_19532, Tcruzi_19635, Tcruzi_19638, Tcruzi_1967, Tcruzi_19749, Tcruzi_19773, Tcruzi_19776, Tcruzi_20136, Tcruzi_20222, Tcruzi_20390, Tcruzi_20478, Tcruzi_20654, Tcruzi_20690, Tcruzi_2073, Tcruzi_20778, Tcruzi_20808, Tcruzi_20878, Tcruzi_20907, Tcruzi_20996, Tcruzi_21034, Tcruzi_21091, Tcruzi_21298, Tcruzi_21319, Tcruzi_21518, Tcruzi_21871, Tcruzi_21955, Tcruzi_21978, Tcruzi_22268, Tcruzi_22401, Tcruzi_22687, Tcruzi_22770, Tcruzi_22816, Tcruzi_22993, Tcruzi_23021, Tcruzi_23224, Tcruzi_23336, Tcruzi_23396, Tcruzi_23491, Tcruzi_23871, Tcruzi_23901, Tcruzi_23970, Tcruzi_24008, Tcruzi_24108, Tcruzi_24225, Tcruzi_24524, Tcruzi_24686, Tcruzi_24721, Tcruzi_24722, Tcruzi_24887, Tcruzi_24909, Tcruzi_25049, Tcruzi_25087, Tcruzi_25179, Tcruzi_25185, Tcruzi_25206, Tcruzi_25250, Tcruzi_25273, Tcruzi_25408, Tcruzi_25424, Tcruzi_25458, Tcruzi_2548, Tcruzi_25576, Tcruzi_25713, Tcruzi_25982, Tcruzi_26318, Tcruzi_27154, Tcruzi_27286, Tcruzi_2732, Tcruzi_27732, Tcruzi_27907, Tcruzi_27909, Tcruzi_27955, Tcruzi_28032, Tcruzi_28052, Tcruzi_28059, Tcruzi_2842, Tcruzi_28454, Tcruzi_28602, Tcruzi_2868, Tcruzi_29037, Tcruzi_29089, Tcruzi_29090, Tcruzi_29208, Tcruzi_29232, Tcruzi_2930, Tcruzi_29329, Tcruzi_29371, Tcruzi_29639, Tcruzi_30347, Tcruzi_30405, Tcruzi_30838, Tcruzi_3086, Tcruzi_30976, Tcruzi_31047, Tcruzi_31125, Tcruzi_31363, Tcruzi_31765, Tcruzi_3210, Tcruzi_32224, Tcruzi_32364, Tcruzi_32487, Tcruzi_32551, Tcruzi_32658, Tcruzi_3291, Tcruzi_32953, Tcruzi_3421, Tcruzi_3501, Tcruzi_3587, Tcruzi_3924, Tcruzi_4211, Tcruzi_5188, Tcruzi_524, Tcruzi_6456, Tcruzi_6480, Tcruzi_6531, Tcruzi_6636, Tcruzi_6652, Tcruzi_6753, Tcruzi_6791, Tcruzi_681, Tcruzi_7322, Tcruzi_8977, Tcruzi_9080, Tcruzi_9095, Tcruzi_9277, Tcruzi_9299, Tcruzi_9362, Tcruzi_9372, Tcruzi_9395, Tcruzi_9447, Tcruzi_9545, Tcruzi_9682, Tcruzi_9730, Tcruzi_981, Tcruzi_9856, Tcruzi_9971, Tcruzi_9991
##   - in 'y': TcChr1-P, TcChr1-S, TcChr15-P, TcChr3-P, Tcruzi_10059, Tcruzi_10145, Tcruzi_1016, Tcruzi_10656, Tcruzi_1095, Tcruzi_1102, Tcruzi_11180, Tcruzi_11431, Tcruzi_11586, Tcruzi_11767, Tcruzi_11788, Tcruzi_1189, Tcruzi_12118, Tcruzi_12248, Tcruzi_12275, Tcruzi_12697, Tcruzi_12995, Tcruzi_13037, Tcruzi_13347, Tcruzi_1349, Tcruzi_1372, Tcruzi_13834, Tcruzi_1409, Tcruzi_14105, Tcruzi_14178, Tcruzi_14377, Tcruzi_149, Tcruzi_14980, Tcruzi_15295, Tcruzi_1534, Tcruzi_1550, Tcruzi_1648, Tcruzi_1676, Tcruzi_1681, Tcruzi_1699, Tcruzi_17087, Tcruzi_17328, Tcruzi_1806, Tcruzi_18207, Tcruzi_18236, Tcruzi_18273, Tcruzi_1878, Tcruzi_19089, Tcruzi_19748, Tcruzi_1976, Tcruzi_19997, Tcruzi_20168, Tcruzi_2022, Tcruzi_2025, Tcruzi_2057, Tcruzi_2065, Tcruzi_21421, Tcruzi_2150, Tcruzi_22113, Tcruzi_2240, Tcruzi_2307, Tcruzi_23428, Tcruzi_23437, Tcruzi_23566, Tcruzi_238, Tcruzi_2416, Tcruzi_24365, Tcruzi_24516, Tcruzi_25155, Tcruzi_2522, Tcruzi_25287, Tcruzi_25302, Tcruzi_25378, Tcruzi_25507, Tcruzi_25599, Tcruzi_25905, Tcruzi_26149, Tcruzi_2621, Tcruzi_2651, Tcruzi_26525, Tcruzi_26549, Tcruzi_26567, Tcruzi_2692, Tcruzi_27517, Tcruzi_27577, Tcruzi_2767, Tcruzi_29049, Tcruzi_29321, Tcruzi_29363, Tcruzi_2942, Tcruzi_2943, Tcruzi_29909, Tcruzi_3020, Tcruzi_3032, Tcruzi_3062, Tcruzi_3108, Tcruzi_315, Tcruzi_3182, Tcruzi_31930, Tcruzi_3257, Tcruzi_3295, Tcruzi_330, Tcruzi_3323, Tcruzi_3380, Tcruzi_3425, Tcruzi_3522, Tcruzi_3614, Tcruzi_3656, Tcruzi_368, Tcruzi_3689, Tcruzi_3700, Tcruzi_372, Tcruzi_3778, Tcruzi_3862, Tcruzi_3977, Tcruzi_4047, Tcruzi_4073, Tcruzi_4127, Tcruzi_4130, Tcruzi_4148, Tcruzi_4181, Tcruzi_4213, Tcruzi_4226, Tcruzi_4269, Tcruzi_4289, Tcruzi_4305, Tcruzi_4325, Tcruzi_4453, Tcruzi_448, Tcruzi_4492, Tcruzi_4560, Tcruzi_4572, Tcruzi_4573, Tcruzi_4593, Tcruzi_4596, Tcruzi_4606, Tcruzi_4612, Tcruzi_4625, Tcruzi_4635, Tcruzi_4651, Tcruzi_4652, Tcruzi_4663, Tcruzi_4675, Tcruzi_4689, Tcruzi_4695, Tcruzi_4706, Tcruzi_4708, Tcruzi_4709, Tcruzi_4711, Tcruzi_4712, Tcruzi_4728, Tcruzi_4729, Tcruzi_4767, Tcruzi_4772, Tcruzi_4794, Tcruzi_481, Tcruzi_4862, Tcruzi_4874, Tcruzi_4889, Tcruzi_4891, Tcruzi_4931, Tcruzi_4952, Tcruzi_4956, Tcruzi_4959, Tcruzi_4977, Tcruzi_5023, Tcruzi_5066, Tcruzi_5105, Tcruzi_5156, Tcruzi_5185, Tcruzi_5194, Tcruzi_5318, Tcruzi_5327, Tcruzi_5333, Tcruzi_5350, Tcruzi_5355, Tcruzi_5356, Tcruzi_5362, Tcruzi_5373, Tcruzi_5385, Tcruzi_5397, Tcruzi_5398, Tcruzi_5406, Tcruzi_5407, Tcruzi_5411, Tcruzi_5416, Tcruzi_5436, Tcruzi_5437, Tcruzi_5441, Tcruzi_5448, Tcruzi_5449, Tcruzi_5450, Tcruzi_5458, Tcruzi_5479, Tcruzi_5480, Tcruzi_5487, Tcruzi_5488, Tcruzi_5493, Tcruzi_5494, Tcruzi_5501, Tcruzi_5503, Tcruzi_5504, Tcruzi_5508, Tcruzi_551, Tcruzi_5511, Tcruzi_5517, Tcruzi_5531, Tcruzi_5532, Tcruzi_5533, Tcruzi_5538, Tcruzi_5570, Tcruzi_5592, Tcruzi_5597, Tcruzi_5599, Tcruzi_56, Tcruzi_5612, Tcruzi_565, Tcruzi_5673, Tcruzi_5680, Tcruzi_5682, Tcruzi_5697, Tcruzi_5702, Tcruzi_5704, Tcruzi_5711, Tcruzi_5721, Tcruzi_5722, Tcruzi_5723, Tcruzi_5724, Tcruzi_5732, Tcruzi_5733, Tcruzi_5783, Tcruzi_5793, Tcruzi_5813, Tcruzi_5814, Tcruzi_5837, Tcruzi_5838, Tcruzi_5841, Tcruzi_5842, Tcruzi_5843, Tcruzi_5846, Tcruzi_5871, Tcruzi_5926, Tcruzi_5927, Tcruzi_5928, Tcruzi_5931, Tcruzi_5939, Tcruzi_5940, Tcruzi_5988, Tcruzi_5992, Tcruzi_5993, Tcruzi_6002, Tcruzi_6004, Tcruzi_6008, Tcruzi_6012, Tcruzi_6016, Tcruzi_6030, Tcruzi_6038, Tcruzi_6041, Tcruzi_6043, Tcruzi_6044, Tcruzi_6045, Tcruzi_6047, Tcruzi_6050, Tcruzi_6059, Tcruzi_6100, Tcruzi_6105, Tcruzi_6106, Tcruzi_6121, Tcruzi_6199, Tcruzi_621, Tcruzi_6243, Tcruzi_6244, Tcruzi_6254, Tcruzi_6262, Tcruzi_6263, Tcruzi_6267, Tcruzi_6273, Tcruzi_6276, Tcruzi_6281, Tcruzi_6282, Tcruzi_6294, Tcruzi_6296, Tcruzi_6306, Tcruzi_6310, Tcruzi_6312, Tcruzi_6314, Tcruzi_6334, Tcruzi_6336, Tcruzi_6338, Tcruzi_6341, Tcruzi_6348, Tcruzi_6357, Tcruzi_6358, Tcruzi_6374, Tcruzi_6377, Tcruzi_6378, Tcruzi_6385, Tcruzi_6392, Tcruzi_6393, Tcruzi_6396, Tcruzi_6399, Tcruzi_6402, Tcruzi_6408, Tcruzi_6423, Tcruzi_6431, Tcruzi_6434, Tcruzi_6441, Tcruzi_6460, Tcruzi_6462, Tcruzi_6463, Tcruzi_6474, Tcruzi_6478, Tcruzi_6483, Tcruzi_6486, Tcruzi_6487, Tcruzi_6490, Tcruzi_6494, Tcruzi_6497, Tcruzi_6498, Tcruzi_6503, Tcruzi_6509, Tcruzi_6511, Tcruzi_6525, Tcruzi_6548, Tcruzi_655, Tcruzi_6575, Tcruzi_6579, Tcruzi_6588, Tcruzi_6602, Tcruzi_6616, Tcruzi_6617, Tcruzi_6633, Tcruzi_6640, Tcruzi_6643, Tcruzi_6646, Tcruzi_6647, Tcruzi_6657, Tcruzi_6658, Tcruzi_6661, Tcruzi_6669, Tcruzi_6672, Tcruzi_6683, Tcruzi_6695, Tcruzi_6697, Tcruzi_6698, Tcruzi_6702, Tcruzi_6712, Tcruzi_6723, Tcruzi_6735, Tcruzi_6736, Tcruzi_6738, Tcruzi_6743, Tcruzi_6747, Tcruzi_6749, Tcruzi_6750, Tcruzi_6751, Tcruzi_6752, Tcruzi_6754, Tcruzi_6758, Tcruzi_6760, Tcruzi_6767, Tcruzi_6768, Tcruzi_6772, Tcruzi_6773, Tcruzi_6776, Tcruzi_6779, Tcruzi_6780, Tcruzi_6784, Tcruzi_6785, Tcruzi_

## Warning in .Seqinfo.mergexy(x, y): Each of the 2 combined objects has sequence levels not in the other:
##   - in 'x': Tcruzi_10142, Tcruzi_1024, Tcruzi_1043, Tcruzi_1061, Tcruzi_10659, Tcruzi_10699, Tcruzi_10888, Tcruzi_11148, Tcruzi_11256, Tcruzi_11260, Tcruzi_11316, Tcruzi_11512, Tcruzi_11664, Tcruzi_11809, Tcruzi_11828, Tcruzi_11864, Tcruzi_11994, Tcruzi_12097, Tcruzi_12098, Tcruzi_12161, Tcruzi_1217, Tcruzi_12178, Tcruzi_12292, Tcruzi_12515, Tcruzi_12519, Tcruzi_12626, Tcruzi_12727, Tcruzi_12964, Tcruzi_13041, Tcruzi_13052, Tcruzi_13134, Tcruzi_13226, Tcruzi_13277, Tcruzi_13309, Tcruzi_13381, Tcruzi_134, Tcruzi_13502, Tcruzi_13537, Tcruzi_13555, Tcruzi_13604, Tcruzi_13609, Tcruzi_13788, Tcruzi_13827, Tcruzi_13965, Tcruzi_13993, Tcruzi_14180, Tcruzi_14413, Tcruzi_14581, Tcruzi_14624, Tcruzi_14652, Tcruzi_14667, Tcruzi_14725, Tcruzi_14746, Tcruzi_14871, Tcruzi_14905, Tcruzi_14934, Tcruzi_14940, Tcruzi_15133, Tcruzi_15331, Tcruzi_15352, Tcruzi_15418, Tcruzi_15478, Tcruzi_15516, Tcruzi_15530, Tcruzi_15648, Tcruzi_15786, Tcruzi_15826, Tcruzi_15844, Tcruzi_15882, Tcruzi_16007, Tcruzi_16223, Tcruzi_16277, Tcruzi_16337, Tcruzi_16425, Tcruzi_16458, Tcruzi_16473, Tcruzi_16698, Tcruzi_16730, Tcruzi_16804, Tcruzi_16822, Tcruzi_16903, Tcruzi_16916, Tcruzi_16958, Tcruzi_17030, Tcruzi_1707, Tcruzi_17101, Tcruzi_17327, Tcruzi_17524, Tcruzi_17575, Tcruzi_17711, Tcruzi_1802, Tcruzi_18174, Tcruzi_18279, Tcruzi_18304, Tcruzi_18645, Tcruzi_1910, Tcruzi_19158, Tcruzi_19253, Tcruzi_19299, Tcruzi_19312, Tcruzi_1944, Tcruzi_19532, Tcruzi_19635, Tcruzi_19638, Tcruzi_1967, Tcruzi_19749, Tcruzi_19773, Tcruzi_19776, Tcruzi_20136, Tcruzi_20222, Tcruzi_20390, Tcruzi_20478, Tcruzi_20654, Tcruzi_20690, Tcruzi_2073, Tcruzi_20778, Tcruzi_20808, Tcruzi_20878, Tcruzi_20907, Tcruzi_20996, Tcruzi_21034, Tcruzi_21091, Tcruzi_21298, Tcruzi_21319, Tcruzi_21518, Tcruzi_21871, Tcruzi_21955, Tcruzi_21978, Tcruzi_22268, Tcruzi_22401, Tcruzi_22687, Tcruzi_22770, Tcruzi_22816, Tcruzi_22993, Tcruzi_23021, Tcruzi_23224, Tcruzi_23336, Tcruzi_23396, Tcruzi_23491, Tcruzi_23871, Tcruzi_23901, Tcruzi_23970, Tcruzi_24008, Tcruzi_24108, Tcruzi_24225, Tcruzi_24524, Tcruzi_24686, Tcruzi_24721, Tcruzi_24722, Tcruzi_24887, Tcruzi_24909, Tcruzi_25049, Tcruzi_25087, Tcruzi_25179, Tcruzi_25185, Tcruzi_25206, Tcruzi_25250, Tcruzi_25273, Tcruzi_25408, Tcruzi_25424, Tcruzi_25458, Tcruzi_2548, Tcruzi_25576, Tcruzi_25713, Tcruzi_25982, Tcruzi_26318, Tcruzi_27154, Tcruzi_27286, Tcruzi_2732, Tcruzi_27732, Tcruzi_27907, Tcruzi_27909, Tcruzi_27955, Tcruzi_28032, Tcruzi_28052, Tcruzi_28059, Tcruzi_2842, Tcruzi_28454, Tcruzi_28602, Tcruzi_2868, Tcruzi_29037, Tcruzi_29089, Tcruzi_29090, Tcruzi_29208, Tcruzi_29232, Tcruzi_2930, Tcruzi_29329, Tcruzi_29371, Tcruzi_29639, Tcruzi_30347, Tcruzi_30405, Tcruzi_30838, Tcruzi_3086, Tcruzi_30976, Tcruzi_31047, Tcruzi_31125, Tcruzi_31363, Tcruzi_31765, Tcruzi_3210, Tcruzi_32224, Tcruzi_32364, Tcruzi_32487, Tcruzi_32551, Tcruzi_32658, Tcruzi_3291, Tcruzi_32953, Tcruzi_3421, Tcruzi_3501, Tcruzi_3587, Tcruzi_3924, Tcruzi_4211, Tcruzi_5188, Tcruzi_524, Tcruzi_6456, Tcruzi_6480, Tcruzi_6531, Tcruzi_6636, Tcruzi_6652, Tcruzi_6753, Tcruzi_6791, Tcruzi_681, Tcruzi_7322, Tcruzi_8977, Tcruzi_9080, Tcruzi_9095, Tcruzi_9277, Tcruzi_9299, Tcruzi_9362, Tcruzi_9372, Tcruzi_9395, Tcruzi_9447, Tcruzi_9545, Tcruzi_9682, Tcruzi_9730, Tcruzi_981, Tcruzi_9856, Tcruzi_9971, Tcruzi_9991
##   - in 'y': TcChr1-P, TcChr1-S, TcChr15-P, TcChr3-P, Tcruzi_10059, Tcruzi_10145, Tcruzi_1016, Tcruzi_10656, Tcruzi_1095, Tcruzi_1102, Tcruzi_11180, Tcruzi_11431, Tcruzi_11586, Tcruzi_11767, Tcruzi_11788, Tcruzi_1189, Tcruzi_12118, Tcruzi_12248, Tcruzi_12275, Tcruzi_12697, Tcruzi_12995, Tcruzi_13037, Tcruzi_13347, Tcruzi_1349, Tcruzi_1372, Tcruzi_13834, Tcruzi_1409, Tcruzi_14105, Tcruzi_14178, Tcruzi_14377, Tcruzi_149, Tcruzi_14980, Tcruzi_15295, Tcruzi_1534, Tcruzi_1550, Tcruzi_1648, Tcruzi_1676, Tcruzi_1681, Tcruzi_1699, Tcruzi_17087, Tcruzi_17328, Tcruzi_1806, Tcruzi_18207, Tcruzi_18236, Tcruzi_18273, Tcruzi_1878, Tcruzi_19089, Tcruzi_19748, Tcruzi_1976, Tcruzi_19997, Tcruzi_20168, Tcruzi_2022, Tcruzi_2025, Tcruzi_2057, Tcruzi_2065, Tcruzi_21421, Tcruzi_2150, Tcruzi_22113, Tcruzi_2240, Tcruzi_2307, Tcruzi_23428, Tcruzi_23437, Tcruzi_23566, Tcruzi_238, Tcruzi_2416, Tcruzi_24365, Tcruzi_24516, Tcruzi_25155, Tcruzi_2522, Tcruzi_25287, Tcruzi_25302, Tcruzi_25378, Tcruzi_25507, Tcruzi_25599, Tcruzi_25905, Tcruzi_26149, Tcruzi_2621, Tcruzi_2651, Tcruzi_26525, Tcruzi_26549, Tcruzi_26567, Tcruzi_2692, Tcruzi_27517, Tcruzi_27577, Tcruzi_2767, Tcruzi_29049, Tcruzi_29321, Tcruzi_29363, Tcruzi_2942, Tcruzi_2943, Tcruzi_29909, Tcruzi_3020, Tcruzi_3032, Tcruzi_3062, Tcruzi_3108, Tcruzi_315, Tcruzi_3182, Tcruzi_31930, Tcruzi_3257, Tcruzi_3295, Tcruzi_330, Tcruzi_3323, Tcruzi_3380, Tcruzi_3425, Tcruzi_3522, Tcruzi_3614, Tcruzi_3656, Tcruzi_368, Tcruzi_3689, Tcruzi_3700, Tcruzi_372, Tcruzi_3778, Tcruzi_3862, Tcruzi_3977, Tcruzi_4047, Tcruzi_4073, Tcruzi_4127, Tcruzi_4130, Tcruzi_4148, Tcruzi_4181, Tcruzi_4213, Tcruzi_4226, Tcruzi_4269, Tcruzi_4289, Tcruzi_4305, Tcruzi_4325, Tcruzi_4453, Tcruzi_448, Tcruzi_4492, Tcruzi_4560, Tcruzi_4572, Tcruzi_4573, Tcruzi_4593, Tcruzi_4596, Tcruzi_4606, Tcruzi_4612, Tcruzi_4625, Tcruzi_4635, Tcruzi_4651, Tcruzi_4652, Tcruzi_4663, Tcruzi_4675, Tcruzi_4689, Tcruzi_4695, Tcruzi_4706, Tcruzi_4708, Tcruzi_4709, Tcruzi_4711, Tcruzi_4712, Tcruzi_4728, Tcruzi_4729, Tcruzi_4767, Tcruzi_4772, Tcruzi_4794, Tcruzi_481, Tcruzi_4862, Tcruzi_4874, Tcruzi_4889, Tcruzi_4891, Tcruzi_4931, Tcruzi_4952, Tcruzi_4956, Tcruzi_4959, Tcruzi_4977, Tcruzi_5023, Tcruzi_5066, Tcruzi_5105, Tcruzi_5156, Tcruzi_5185, Tcruzi_5194, Tcruzi_5318, Tcruzi_5327, Tcruzi_5333, Tcruzi_5350, Tcruzi_5355, Tcruzi_5356, Tcruzi_5362, Tcruzi_5373, Tcruzi_5385, Tcruzi_5397, Tcruzi_5398, Tcruzi_5406, Tcruzi_5407, Tcruzi_5411, Tcruzi_5416, Tcruzi_5436, Tcruzi_5437, Tcruzi_5441, Tcruzi_5448, Tcruzi_5449, Tcruzi_5450, Tcruzi_5458, Tcruzi_5479, Tcruzi_5480, Tcruzi_5487, Tcruzi_5488, Tcruzi_5493, Tcruzi_5494, Tcruzi_5501, Tcruzi_5503, Tcruzi_5504, Tcruzi_5508, Tcruzi_551, Tcruzi_5511, Tcruzi_5517, Tcruzi_5531, Tcruzi_5532, Tcruzi_5533, Tcruzi_5538, Tcruzi_5570, Tcruzi_5592, Tcruzi_5597, Tcruzi_5599, Tcruzi_56, Tcruzi_5612, Tcruzi_565, Tcruzi_5673, Tcruzi_5680, Tcruzi_5682, Tcruzi_5697, Tcruzi_5702, Tcruzi_5704, Tcruzi_5711, Tcruzi_5721, Tcruzi_5722, Tcruzi_5723, Tcruzi_5724, Tcruzi_5732, Tcruzi_5733, Tcruzi_5783, Tcruzi_5793, Tcruzi_5813, Tcruzi_5814, Tcruzi_5837, Tcruzi_5838, Tcruzi_5841, Tcruzi_5842, Tcruzi_5843, Tcruzi_5846, Tcruzi_5871, Tcruzi_5926, Tcruzi_5927, Tcruzi_5928, Tcruzi_5931, Tcruzi_5939, Tcruzi_5940, Tcruzi_5988, Tcruzi_5992, Tcruzi_5993, Tcruzi_6002, Tcruzi_6004, Tcruzi_6008, Tcruzi_6012, Tcruzi_6016, Tcruzi_6030, Tcruzi_6038, Tcruzi_6041, Tcruzi_6043, Tcruzi_6044, Tcruzi_6045, Tcruzi_6047, Tcruzi_6050, Tcruzi_6059, Tcruzi_6100, Tcruzi_6105, Tcruzi_6106, Tcruzi_6121, Tcruzi_6199, Tcruzi_621, Tcruzi_6243, Tcruzi_6244, Tcruzi_6254, Tcruzi_6262, Tcruzi_6263, Tcruzi_6267, Tcruzi_6273, Tcruzi_6276, Tcruzi_6281, Tcruzi_6282, Tcruzi_6294, Tcruzi_6296, Tcruzi_6306, Tcruzi_6310, Tcruzi_6312, Tcruzi_6314, Tcruzi_6334, Tcruzi_6336, Tcruzi_6338, Tcruzi_6341, Tcruzi_6348, Tcruzi_6357, Tcruzi_6358, Tcruzi_6374, Tcruzi_6377, Tcruzi_6378, Tcruzi_6385, Tcruzi_6392, Tcruzi_6393, Tcruzi_6396, Tcruzi_6399, Tcruzi_6402, Tcruzi_6408, Tcruzi_6423, Tcruzi_6431, Tcruzi_6434, Tcruzi_6441, Tcruzi_6460, Tcruzi_6462, Tcruzi_6463, Tcruzi_6474, Tcruzi_6478, Tcruzi_6483, Tcruzi_6486, Tcruzi_6487, Tcruzi_6490, Tcruzi_6494, Tcruzi_6497, Tcruzi_6498, Tcruzi_6503, Tcruzi_6509, Tcruzi_6511, Tcruzi_6525, Tcruzi_6548, Tcruzi_655, Tcruzi_6575, Tcruzi_6579, Tcruzi_6588, Tcruzi_6602, Tcruzi_6616, Tcruzi_6617, Tcruzi_6633, Tcruzi_6640, Tcruzi_6643, Tcruzi_6646, Tcruzi_6647, Tcruzi_6657, Tcruzi_6658, Tcruzi_6661, Tcruzi_6669, Tcruzi_6672, Tcruzi_6683, Tcruzi_6695, Tcruzi_6697, Tcruzi_6698, Tcruzi_6702, Tcruzi_6712, Tcruzi_6723, Tcruzi_6735, Tcruzi_6736, Tcruzi_6738, Tcruzi_6743, Tcruzi_6747, Tcruzi_6749, Tcruzi_6750, Tcruzi_6751, Tcruzi_6752, Tcruzi_6754, Tcruzi_6758, Tcruzi_6760, Tcruzi_6767, Tcruzi_6768, Tcruzi_6772, Tcruzi_6773, Tcruzi_6776, Tcruzi_6779, Tcruzi_6780, Tcruzi_6784, Tcruzi_6785, Tcruzi_
## Warning in .Seqinfo.mergexy(x, y): Each of the 2 combined objects has sequence levels not in the other:
##   - in 'x': TcChr1-P, TcChr1-S, TcChr15-P, TcChr3-P, Tcruzi_10059, Tcruzi_10145, Tcruzi_1016, Tcruzi_10656, Tcruzi_1095, Tcruzi_1102, Tcruzi_11180, Tcruzi_11431, Tcruzi_11586, Tcruzi_11767, Tcruzi_11788, Tcruzi_1189, Tcruzi_12118, Tcruzi_12248, Tcruzi_12275, Tcruzi_12697, Tcruzi_12995, Tcruzi_13037, Tcruzi_13347, Tcruzi_1349, Tcruzi_1372, Tcruzi_13834, Tcruzi_1409, Tcruzi_14105, Tcruzi_14178, Tcruzi_14377, Tcruzi_149, Tcruzi_14980, Tcruzi_15295, Tcruzi_1534, Tcruzi_1550, Tcruzi_1648, Tcruzi_1676, Tcruzi_1681, Tcruzi_1699, Tcruzi_17087, Tcruzi_17328, Tcruzi_1806, Tcruzi_18207, Tcruzi_18236, Tcruzi_18273, Tcruzi_1878, Tcruzi_19089, Tcruzi_19748, Tcruzi_1976, Tcruzi_19997, Tcruzi_20168, Tcruzi_2022, Tcruzi_2025, Tcruzi_2057, Tcruzi_2065, Tcruzi_21421, Tcruzi_2150, Tcruzi_22113, Tcruzi_2240, Tcruzi_2307, Tcruzi_23428, Tcruzi_23437, Tcruzi_23566, Tcruzi_238, Tcruzi_2416, Tcruzi_24365, Tcruzi_24516, Tcruzi_25155, Tcruzi_2522, Tcruzi_25287, Tcruzi_25302, Tcruzi_25378, Tcruzi_25507, Tcruzi_25599, Tcruzi_25905, Tcruzi_26149, Tcruzi_2621, Tcruzi_2651, Tcruzi_26525, Tcruzi_26549, Tcruzi_26567, Tcruzi_2692, Tcruzi_27517, Tcruzi_27577, Tcruzi_2767, Tcruzi_29049, Tcruzi_29321, Tcruzi_29363, Tcruzi_2942, Tcruzi_2943, Tcruzi_29909, Tcruzi_3020, Tcruzi_3032, Tcruzi_3062, Tcruzi_3108, Tcruzi_315, Tcruzi_3182, Tcruzi_31930, Tcruzi_3257, Tcruzi_3295, Tcruzi_330, Tcruzi_3323, Tcruzi_3380, Tcruzi_3425, Tcruzi_3522, Tcruzi_3614, Tcruzi_3656, Tcruzi_368, Tcruzi_3689, Tcruzi_3700, Tcruzi_372, Tcruzi_3778, Tcruzi_3862, Tcruzi_3977, Tcruzi_4047, Tcruzi_4073, Tcruzi_4127, Tcruzi_4130, Tcruzi_4148, Tcruzi_4181, Tcruzi_4213, Tcruzi_4226, Tcruzi_4269, Tcruzi_4289, Tcruzi_4305, Tcruzi_4325, Tcruzi_4453, Tcruzi_448, Tcruzi_4492, Tcruzi_4560, Tcruzi_4572, Tcruzi_4573, Tcruzi_4593, Tcruzi_4596, Tcruzi_4606, Tcruzi_4612, Tcruzi_4625, Tcruzi_4635, Tcruzi_4651, Tcruzi_4652, Tcruzi_4663, Tcruzi_4675, Tcruzi_4689, Tcruzi_4695, Tcruzi_4706, Tcruzi_4708, Tcruzi_4709, Tcruzi_4711, Tcruzi_4712, Tcruzi_4728, Tcruzi_4729, Tcruzi_4767, Tcruzi_4772, Tcruzi_4794, Tcruzi_481, Tcruzi_4862, Tcruzi_4874, Tcruzi_4889, Tcruzi_4891, Tcruzi_4931, Tcruzi_4952, Tcruzi_4956, Tcruzi_4959, Tcruzi_4977, Tcruzi_5023, Tcruzi_5066, Tcruzi_5105, Tcruzi_5156, Tcruzi_5185, Tcruzi_5194, Tcruzi_5318, Tcruzi_5327, Tcruzi_5333, Tcruzi_5350, Tcruzi_5355, Tcruzi_5356, Tcruzi_5362, Tcruzi_5373, Tcruzi_5385, Tcruzi_5397, Tcruzi_5398, Tcruzi_5406, Tcruzi_5407, Tcruzi_5411, Tcruzi_5416, Tcruzi_5436, Tcruzi_5437, Tcruzi_5441, Tcruzi_5448, Tcruzi_5449, Tcruzi_5450, Tcruzi_5458, Tcruzi_5479, Tcruzi_5480, Tcruzi_5487, Tcruzi_5488, Tcruzi_5493, Tcruzi_5494, Tcruzi_5501, Tcruzi_5503, Tcruzi_5504, Tcruzi_5508, Tcruzi_551, Tcruzi_5511, Tcruzi_5517, Tcruzi_5531, Tcruzi_5532, Tcruzi_5533, Tcruzi_5538, Tcruzi_5570, Tcruzi_5592, Tcruzi_5597, Tcruzi_5599, Tcruzi_56, Tcruzi_5612, Tcruzi_565, Tcruzi_5673, Tcruzi_5680, Tcruzi_5682, Tcruzi_5697, Tcruzi_5702, Tcruzi_5704, Tcruzi_5711, Tcruzi_5721, Tcruzi_5722, Tcruzi_5723, Tcruzi_5724, Tcruzi_5732, Tcruzi_5733, Tcruzi_5783, Tcruzi_5793, Tcruzi_5813, Tcruzi_5814, Tcruzi_5837, Tcruzi_5838, Tcruzi_5841, Tcruzi_5842, Tcruzi_5843, Tcruzi_5846, Tcruzi_5871, Tcruzi_5926, Tcruzi_5927, Tcruzi_5928, Tcruzi_5931, Tcruzi_5939, Tcruzi_5940, Tcruzi_5988, Tcruzi_5992, Tcruzi_5993, Tcruzi_6002, Tcruzi_6004, Tcruzi_6008, Tcruzi_6012, Tcruzi_6016, Tcruzi_6030, Tcruzi_6038, Tcruzi_6041, Tcruzi_6043, Tcruzi_6044, Tcruzi_6045, Tcruzi_6047, Tcruzi_6050, Tcruzi_6059, Tcruzi_6100, Tcruzi_6105, Tcruzi_6106, Tcruzi_6121, Tcruzi_6199, Tcruzi_621, Tcruzi_6243, Tcruzi_6244, Tcruzi_6254, Tcruzi_6262, Tcruzi_6263, Tcruzi_6267, Tcruzi_6273, Tcruzi_6276, Tcruzi_6281, Tcruzi_6282, Tcruzi_6294, Tcruzi_6296, Tcruzi_6306, Tcruzi_6310, Tcruzi_6312, Tcruzi_6314, Tcruzi_6334, Tcruzi_6336, Tcruzi_6338, Tcruzi_6341, Tcruzi_6348, Tcruzi_6357, Tcruzi_6358, Tcruzi_6374, Tcruzi_6377, Tcruzi_6378, Tcruzi_6385, Tcruzi_6392, Tcruzi_6393, Tcruzi_6396, Tcruzi_6399, Tcruzi_6402, Tcruzi_6408, Tcruzi_6423, Tcruzi_6431, Tcruzi_6434, Tcruzi_6441, Tcruzi_6460, Tcruzi_6462, Tcruzi_6463, Tcruzi_6474, Tcruzi_6478, Tcruzi_6483, Tcruzi_6486, Tcruzi_6487, Tcruzi_6490, Tcruzi_6494, Tcruzi_6497, Tcruzi_6498, Tcruzi_6503, Tcruzi_6509, Tcruzi_6511, Tcruzi_6525, Tcruzi_6548, Tcruzi_655, Tcruzi_6575, Tcruzi_6579, Tcruzi_6588, Tcruzi_6602, Tcruzi_6616, Tcruzi_6617, Tcruzi_6633, Tcruzi_6640, Tcruzi_6643, Tcruzi_6646, Tcruzi_6647, Tcruzi_6657, Tcruzi_6658, Tcruzi_6661, Tcruzi_6669, Tcruzi_6672, Tcruzi_6683, Tcruzi_6695, Tcruzi_6697, Tcruzi_6698, Tcruzi_6702, Tcruzi_6712, Tcruzi_6723, Tcruzi_6735, Tcruzi_6736, Tcruzi_6738, Tcruzi_6743, Tcruzi_6747, Tcruzi_6749, Tcruzi_6750, Tcruzi_6751, Tcruzi_6752, Tcruzi_6754, Tcruzi_6758, Tcruzi_6760, Tcruzi_6767, Tcruzi_6768, Tcruzi_6772, Tcruzi_6773, Tcruzi_6776, Tcruzi_6779, Tcruzi_6780, Tcruzi_6784, Tcruzi_6785, Tcruzi_6786, Tcruzi_6788, Tcruzi_6789, Tcruzi_6792, Tcruzi_6794, Tcruzi_6795, Tcruzi_6798, Tcruzi_6799, Tcruzi_6801, Tcruzi_6806, Tcruzi_6807, Tcruzi_6812, Tcruzi_6816, Tcruzi_6819, Tcruzi_6820, Tcruzi_6821, Tcruzi_6826, Tcruzi_6838, Tcruzi_6839, Tcruzi_6843, Tcruzi_6844, Tcruzi_6845, Tcruzi_6852, Tcruzi_6856, Tcruzi_6859, Tcruzi_6868, Tcruzi_6884, Tcruzi_6891, Tcruzi_6910, Tcruzi_6913, Tcruzi_6918, Tcruzi_6921, Tcruzi_6938, Tcruzi_6949, Tcruzi_6950, Tcruzi_6951, Tcruzi_6954, Tcruzi_6983, Tcruzi_6990, Tcruzi_6992, Tcruzi_6994, Tcruzi_6995, Tcruzi_7001, Tcruzi_7002, Tcruzi_7011, Tcruzi_7033, Tcruzi_7036, Tcruzi_7050, Tcruzi_7060, Tcruzi_7077, Tcruzi_7101, Tcruzi_7114, Tcruzi_7125, Tcruzi_7126, Tcruzi_7132, Tcruzi_7133, Tcruzi_7134, Tcruzi_7138, Tcruzi_7139, Tcruzi_7166, Tcruzi_7213, Tcruzi_7214, Tcruzi_7215, Tcruzi_7217, Tcruzi_7226, Tcruzi_7227, Tcruzi_7229, Tcruzi_7235, Tcruzi_7237, Tcruzi_7242, Tcruzi_7243, Tcruzi_7245, Tcruzi_7246, Tcruzi_7255, Tcruzi_7256, Tcruzi_7258, Tcruzi_7261, Tcruzi_7264, Tcruzi_7267, Tcruzi_7270, Tcruzi_7282, Tcruzi_7287, Tcruzi_7288, Tcruzi_7293, Tcruzi_7295, Tcruzi_7305, Tcruzi_7306, Tcruzi_7316, Tcruzi_7317, Tcruzi_7319, Tcruzi_7321, Tcruzi_7325, Tcruzi_7332, Tcruzi_7335, Tcruzi_7338, Tcruzi_7351, Tcruzi_7352, Tcruzi_7357, Tcruzi_7359, Tcruzi_7363, Tcruzi_7370, Tcruzi_7384, Tcruzi_7386, Tcruzi_7389, Tcruzi_7390, Tcruzi_7392, Tcruzi_7393, Tcruzi_7403, Tcruzi_7418, Tcruzi_7419, Tcruzi_7430, Tcruzi_7433, Tcruzi_7436, Tcruzi_7437, Tcruzi_7449, Tcruzi_7450, Tcruzi_7451, Tcruzi_7481, Tcruzi_7483, Tcruzi_7484, Tcruzi_7490, Tcruzi_7496, Tcruzi_7501, Tcruzi_7509, Tcruzi_7516, Tcruzi_7533, Tcruzi_7567, Tcruzi_7568, Tcruzi_7573, Tcruzi_7576, Tcruzi_7577, Tcruzi_7582, Tcruzi_7583, Tcruzi_7588, Tcruzi_7589, Tcruzi_763, Tcruzi_7631, Tcruzi_7632, Tcruzi_7658, Tcruzi_7659, Tcruzi_767, Tcruzi_7670, Tcruzi_7671, Tcruzi_7672, Tcruzi_7673, Tcruzi_7674, Tcruzi_7679, Tcruzi_768, Tcruzi_7680, Tcruzi_7681, Tcruzi_7682, Tcruzi_7687, Tcruzi_7688, Tcruzi_7689, Tcruzi_7690, Tcruzi_7697, Tcruzi_7734, Tcruzi_7735, Tcruzi_7736, Tcruzi_7745, Tcruzi_7746, Tcruzi_7747, Tcruzi_7748, Tcruzi_7756, Tcruzi_7757, Tcruzi_7776, Tcruzi_7780, Tcruzi_7788, Tcruzi_7790, Tcruzi_7791, Tcruzi_7792, Tcruzi_7795, Tcruzi_7796, Tcruzi_7803, Tcruzi_7806, Tcruzi_7809, Tcruzi_7817, Tcruzi_7826, Tcruzi_7834, Tcruzi_7837, Tcruzi_7855, Tcruzi_7856, Tcruzi_7857, Tcruzi_7858, Tcruzi_7859, Tcruzi_7860, Tcruzi_7861, Tcruzi_7862, Tcruzi_7872, Tcruzi_7895, Tcruzi_7896, Tcruzi_7934, Tcruzi_7935, Tcruzi_7936, Tcruzi_7987, Tcruzi_7988, Tcruzi_8027, Tcruzi_8028, Tcruzi_8057, Tcruzi_8059, Tcruzi_8068, Tcruzi_8071, Tcruzi_8074, Tcruzi_8076, Tcruzi_8077, Tcruzi_8078, Tcruzi_8079, Tcruzi_8080, Tcruzi_8081, Tcruzi_8082, Tcruzi_8093, Tcruzi_8094, Tcruzi_8098, Tcruzi_81, Tcruzi_8100, Tcruzi_8104, Tcruzi_8108, Tcruzi_8109, Tcruzi_8111, Tcruzi_8119, Tcruzi_8120, Tcruzi_8121, Tcruzi_8125, Tcruzi_8126, Tcruzi_8130, Tcruzi_8151, Tcruzi_8161, Tcruzi_8168, Tcruzi_8169, Tcruzi_8189, Tcruzi_8202, Tcruzi_8210, Tcruzi_8211, Tcruzi_8220, Tcruzi_8226, Tcruzi_8238, Tcruzi_8239, Tcruzi_8255, Tcruzi_8256, Tcruzi_828, Tcruzi_8302, Tcruzi_8308, Tcruzi_8315, Tcruzi_8316, Tcruzi_8339, Tcruzi_8377, Tcruzi_8394, Tcruzi_8395, Tcruzi_8396, Tcruzi_8397, Tcruzi_8398, Tcruzi_8399, Tcruzi_8400, Tcruzi_8401,
snp_cond_genes <- snps_vs_intersections(all_new_hisat, snp_cond_sets,
                                          chr_column="chromosome")
## Warning in .Seqinfo.mergexy(x, y): Each of the 2 combined objects has sequence levels not in the other:
##   - in 'x': Tcruzi_11260, Tcruzi_15530, Tcruzi_16730, Tcruzi_19635, Tcruzi_20222, Tcruzi_20907, Tcruzi_2548, Tcruzi_28052, Tcruzi_2930, Tcruzi_32224, Tcruzi_6456
##   - in 'y': 56, 81, 149, 238, 315, 330, 368, 372, 448, 481, 551, 565, 621, 655, 763, 767, 768, 828, 884, 889, 919, 937, 993, 1016, 1095, 1102, 1189, 1349, 1372, 1409, 1534, 1550, 1648, 1676, 1681, 1699, 1806, 1878, 1976, 2022, 2025, 2057, 2065, 2150, 2240, 2307, 2416, 2522, 2621, 2651, 2692, 2767, 2942, 2943, 3020, 3032, 3062, 3108, 3182, 3257, 3295, 3323, 3380, 3425, 3522, 3614, 3656, 3689, 3700, 3778, 3862, 3977, 4047, 4073, 4127, 4130, 4148, 4181, 4213, 4226, 4269, 4289, 4305, 4325, 4453, 4492, 4560, 4572, 4573, 4593, 4596, 4606, 4612, 4625, 4635, 4651, 4652, 4663, 4675, 4689, 4695, 4706, 4708, 4709, 4711, 4712, 4728, 4729, 4767, 4772, 4794, 4862, 4874, 4889, 4891, 4931, 4952, 4956, 4959, 4977, 5023, 5066, 5105, 5156, 5185, 5194, 5318, 5327, 5333, 5340, 5350, 5355, 5356, 5362, 5373, 5385, 5397, 5398, 5406, 5407, 5411, 5416, 5436, 5437, 5441, 5448, 5449, 5450, 5458, 5479, 5480, 5487, 5488, 5493, 5494, 5501, 5503, 5504, 5508, 5511, 5517, 5531, 5532, 5533, 5538, 5570, 5589, 5592, 5597, 5599, 5612, 5673, 5680, 5682, 5697, 5702, 5704, 5711, 5721, 5722, 5723, 5724, 5732, 5733, 5783, 5793, 5813, 5814, 5837, 5838, 5841, 5842, 5843, 5845, 5846, 5871, 5916, 5926, 5927, 5928, 5931, 5939, 5940, 5988, 5992, 5993, 6002, 6004, 6008, 6012, 6016, 6030, 6038, 6041, 6043, 6044, 6045, 6047, 6050, 6059, 6100, 6105, 6106, 6121, 6199, 6243, 6244, 6254, 6262, 6263, 6267, 6273, 6276, 6278, 6281, 6282, 6284, 6294, 6295, 6296, 6306, 6310, 6312, 6314, 6324, 6334, 6336, 6338, 6341, 6348, 6357, 6358, 6374, 6377, 6378, 6385, 6392, 6393, 6396, 6399, 6402, 6408, 6423, 6431, 6434, 6441, 6460, 6462, 6463, 6474, 6478, 6483, 6486, 6487, 6490, 6494, 6497, 6498, 6503, 6509, 6511, 6525, 6548, 6575, 6579, 6588, 6602, 6616, 6617, 6633, 6640, 6643, 6646, 6647, 6657, 6658, 6661, 6669, 6672, 6683, 6695, 6697, 6698, 6702, 6712, 6723, 6735, 6736, 6738, 6743, 6747, 6749, 6750, 6751, 6752, 6754, 6758, 6760, 6767, 6768, 6772, 6773, 6776, 6779, 6780, 6784, 6785, 6786, 6788, 6789, 6792, 6794, 6795, 6797, 6798, 6799, 6801, 6806, 6807, 6812, 6816, 6819, 6820, 6821, 6826, 6838, 6839, 6843, 6844, 6845, 6852, 6856, 6859, 6868, 6875, 6884, 6891, 6908, 6910, 6913, 6918, 6921, 6935, 6938, 6949, 6950, 6951, 6954, 6983, 6990, 6992, 6994, 6995, 7001, 7002, 7011, 7033, 7036, 7050, 7054, 7060, 7077, 7101, 7113, 7114, 7125, 7126, 7132, 7133, 7134, 7138, 7139, 7166, 7213, 7214, 7215, 7217, 7226, 7227, 7229, 7235, 7237, 7242, 7243, 7245, 7246, 7255, 7256, 7258, 7261, 7264, 7267, 7270, 7274, 7282, 7287, 7288, 7293, 7295, 7305, 7306, 7316, 7317, 7319, 7321, 7325, 7332, 7335, 7338, 7351, 7352, 7357, 7359, 7363, 7370, 7384, 7386, 7389, 7390, 7392, 7393, 7403, 7418, 7419, 7430, 7433, 7436, 7437, 7449, 7450, 7451, 7481, 7483, 7484, 7490, 7496, 7501, 7509, 7516, 7533, 7567, 7568, 7573, 7576, 7577, 7582, 7583, 7588, 7589, 7631, 7632, 7658, 7659, 7670, 7671, 7672, 7673, 7674, 7679, 7680, 7681, 7682, 7687, 7688, 7689, 7690, 7697, 7734, 7735, 7736, 7742, 7745, 7746, 7747, 7748, 7756, 7757, 7776, 7780, 7788, 7790, 7791, 7792, 7795, 7796, 7803, 7806, 7809, 7817, 7826, 7834, 7837, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7872, 7895, 7896, 7934, 7935, 7936, 7987, 7988, 8027, 8028, 8057, 8059, 8068, 8071, 8074, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8093, 8094, 8098, 8100, 8104, 8108, 8109, 8111, 8119, 8120, 8121, 8125, 8126, 8130, 8151, 8161, 8168, 8169, 8189, 8202, 8203, 8210, 8211, 8220, 8226, 8238, 8239, 8255, 8256, 8302, 8308, 8315, 8316, 8339, 8377, 8394, 8395, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8410, 8411, 8412, 8413, 8423, 8424, 8425, 8426, 8428, 8437, 8464, 8495, 8496, 8497, 8503, 8504, 8506, 8516, 8519, 8529, 8532, 8535, 8540, 8541, 8544, 8545, 8546, 8547, 8548, 8552, 8560, 8561, 8562, 8566, 8567, 8568, 8569, 8584, 8585, 8586, 8591, 8592, 8593, 8594, 8596, 8597, 8598, 8608, 8617, 8618, 8625, 8626, 8675, 8697, 8698, 8699, 8718, 8719, 8720, 8782, 8783, 8784, 8785, 8859, 9108, 9155, 9158, 9229, 9549, 9921, 10059, 10145, 10656, 11180, 11431, 11586, 11767, 11788, 12118, 12248, 12275, 12697, 12995, 13037, 13339, 13347, 13834, 14105, 14178, 14377, 14980, 15295, 17087, 17328, 18207, 18236, 18273, 19089, 19748, 19997, 20168, 21421, 21424, 22036, 22113, 23428, 23437, 23566, 24365, 24516, 25155, 25287, 25302, 25378, 25507, 25599, 25905, 26149, 26525, 26549, 26567, 27517, 27577, 29049, 29321, 29363, 29909, 31930, TcChr1-P, TcChr1-S, TcChr11-P, TcChr11-S, TcChr12-P, TcChr12-S, TcChr13-P, TcChr13-S, TcChr15-P, TcChr15-S, TcChr16-S, TcChr17-P, TcChr17-S, TcChr18-P, TcChr18-S, TcChr19-P, TcChr19-S, TcChr2-P, TcChr21-P, TcChr21-S, TcChr22-S, TcChr23-P, TcChr23-S, TcChr24-P, TcChr25-S, TcChr27-P, TcChr28-P, TcChr28-S, TcChr29-P, TcChr29-S, TcChr3-P, TcChr30-P, TcChr31-P, TcChr32-P, TcChr33-P, TcChr33-S, TcChr35-P, TcChr35-S, TcChr38-P, TcChr38-S, TcChr39-P, TcChr4-P, TcChr40-S, TcChr41-P, TcChr5-S, TcChr6-P, TcChr6-S, TcChr7-P, TcChr7-S, TcChr8-P, TcChr8-S
##   Make sure to always combine/compare objects based on the same reference
##   genome (use suppressWarnings() to suppress this warning).
## Warning in .Seqinfo.mergexy(x, y): Each of the 2 combined objects has sequence levels not in the other:
##   - in 'x': 56, 81, 149, 238, 315, 330, 368, 372, 448, 481, 551, 565, 621, 655, 763, 767, 768, 828, 884, 889, 919, 937, 993, 1016, 1095, 1102, 1189, 1349, 1372, 1409, 1534, 1550, 1648, 1676, 1681, 1699, 1806, 1878, 1976, 2022, 2025, 2057, 2065, 2150, 2240, 2307, 2416, 2522, 2621, 2651, 2692, 2767, 2942, 2943, 3020, 3032, 3062, 3108, 3182, 3257, 3295, 3323, 3380, 3425, 3522, 3614, 3656, 3689, 3700, 3778, 3862, 3977, 4047, 4073, 4127, 4130, 4148, 4181, 4213, 4226, 4269, 4289, 4305, 4325, 4453, 4492, 4560, 4572, 4573, 4593, 4596, 4606, 4612, 4625, 4635, 4651, 4652, 4663, 4675, 4689, 4695, 4706, 4708, 4709, 4711, 4712, 4728, 4729, 4767, 4772, 4794, 4862, 4874, 4889, 4891, 4931, 4952, 4956, 4959, 4977, 5023, 5066, 5105, 5156, 5185, 5194, 5318, 5327, 5333, 5340, 5350, 5355, 5356, 5362, 5373, 5385, 5397, 5398, 5406, 5407, 5411, 5416, 5436, 5437, 5441, 5448, 5449, 5450, 5458, 5479, 5480, 5487, 5488, 5493, 5494, 5501, 5503, 5504, 5508, 5511, 5517, 5531, 5532, 5533, 5538, 5570, 5589, 5592, 5597, 5599, 5612, 5673, 5680, 5682, 5697, 5702, 5704, 5711, 5721, 5722, 5723, 5724, 5732, 5733, 5783, 5793, 5813, 5814, 5837, 5838, 5841, 5842, 5843, 5845, 5846, 5871, 5916, 5926, 5927, 5928, 5931, 5939, 5940, 5988, 5992, 5993, 6002, 6004, 6008, 6012, 6016, 6030, 6038, 6041, 6043, 6044, 6045, 6047, 6050, 6059, 6100, 6105, 6106, 6121, 6199, 6243, 6244, 6254, 6262, 6263, 6267, 6273, 6276, 6278, 6281, 6282, 6284, 6294, 6295, 6296, 6306, 6310, 6312, 6314, 6324, 6334, 6336, 6338, 6341, 6348, 6357, 6358, 6374, 6377, 6378, 6385, 6392, 6393, 6396, 6399, 6402, 6408, 6423, 6431, 6434, 6441, 6460, 6462, 6463, 6474, 6478, 6483, 6486, 6487, 6490, 6494, 6497, 6498, 6503, 6509, 6511, 6525, 6548, 6575, 6579, 6588, 6602, 6616, 6617, 6633, 6640, 6643, 6646, 6647, 6657, 6658, 6661, 6669, 6672, 6683, 6695, 6697, 6698, 6702, 6712, 6723, 6735, 6736, 6738, 6743, 6747, 6749, 6750, 6751, 6752, 6754, 6758, 6760, 6767, 6768, 6772, 6773, 6776, 6779, 6780, 6784, 6785, 6786, 6788, 6789, 6792, 6794, 6795, 6797, 6798, 6799, 6801, 6806, 6807, 6812, 6816, 6819, 6820, 6821, 6826, 6838, 6839, 6843, 6844, 6845, 6852, 6856, 6859, 6868, 6875, 6884, 6891, 6908, 6910, 6913, 6918, 6921, 6935, 6938, 6949, 6950, 6951, 6954, 6983, 6990, 6992, 6994, 6995, 7001, 7002, 7011, 7033, 7036, 7050, 7054, 7060, 7077, 7101, 7113, 7114, 7125, 7126, 7132, 7133, 7134, 7138, 7139, 7166, 7213, 7214, 7215, 7217, 7226, 7227, 7229, 7235, 7237, 7242, 7243, 7245, 7246, 7255, 7256, 7258, 7261, 7264, 7267, 7270, 7274, 7282, 7287, 7288, 7293, 7295, 7305, 7306, 7316, 7317, 7319, 7321, 7325, 7332, 7335, 7338, 7351, 7352, 7357, 7359, 7363, 7370, 7384, 7386, 7389, 7390, 7392, 7393, 7403, 7418, 7419, 7430, 7433, 7436, 7437, 7449, 7450, 7451, 7481, 7483, 7484, 7490, 7496, 7501, 7509, 7516, 7533, 7567, 7568, 7573, 7576, 7577, 7582, 7583, 7588, 7589, 7631, 7632, 7658, 7659, 7670, 7671, 7672, 7673, 7674, 7679, 7680, 7681, 7682, 7687, 7688, 7689, 7690, 7697, 7734, 7735, 7736, 7742, 7745, 7746, 7747, 7748, 7756, 7757, 7776, 7780, 7788, 7790, 7791, 7792, 7795, 7796, 7803, 7806, 7809, 7817, 7826, 7834, 7837, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7872, 7895, 7896, 7934, 7935, 7936, 7987, 7988, 8027, 8028, 8057, 8059, 8068, 8071, 8074, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8093, 8094, 8098, 8100, 8104, 8108, 8109, 8111, 8119, 8120, 8121, 8125, 8126, 8130, 8151, 8161, 8168, 8169, 8189, 8202, 8203, 8210, 8211, 8220, 8226, 8238, 8239, 8255, 8256, 8302, 8308, 8315, 8316, 8339, 8377, 8394, 8395, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8410, 8411, 8412, 8413, 8423, 8424, 8425, 8426, 8428, 8437, 8464, 8495, 8496, 8497, 8503, 8504, 8506, 8516, 8519, 8529, 8532, 8535, 8540, 8541, 8544, 8545, 8546, 8547, 8548, 8552, 8560, 8561, 8562, 8566, 8567, 8568, 8569, 8584, 8585, 8586, 8591, 8592, 8593, 8594, 8596, 8597, 8598, 8608, 8617, 8618, 8625, 8626, 8675, 8697, 8698, 8699, 8718, 8719, 8720, 8782, 8783, 8784, 8785, 8859, 9108, 9155, 9158, 9229, 9549, 9921, 10059, 10145, 10656, 11180, 11431, 11586, 11767, 11788, 12118, 12248, 12275, 12697, 12995, 13037, 13339, 13347, 13834, 14105, 14178, 14377, 14980, 15295, 17087, 17328, 18207, 18236, 18273, 19089, 19748, 19997, 20168, 21421, 21424, 22036, 22113, 23428, 23437, 23566, 24365, 24516, 25155, 25287, 25302, 25378, 25507, 25599, 25905, 26149, 26525, 26549, 26567, 27517, 27577, 29049, 29321, 29363, 29909, 31930, TcChr1-P, TcChr1-S, TcChr11-P, TcChr11-S, TcChr12-P, TcChr12-S, TcChr13-P, TcChr13-S, TcChr15-P, TcChr15-S, TcChr16-S, TcChr17-P, TcChr17-S, TcChr18-P, TcChr18-S, TcChr19-P, TcChr19-S, TcChr2-P, TcChr21-P, TcChr21-S, TcChr22-S, TcChr23-P, TcChr23-S, TcChr24-P, TcChr25-S, TcChr27-P, TcChr28-P, TcChr28-S, TcChr29-P, TcChr29-S, TcChr3-P, TcChr30-P, TcChr31-P, TcChr32-P, TcChr33-P, TcChr33-S, TcChr35-P, TcChr35-S, TcChr38-P, TcChr38-S, TcChr39-P, TcChr4-P, TcChr40-S, TcChr41-P, TcChr5-S, TcChr6-P, TcChr6-S, TcChr7-P, TcChr7-S, TcChr8-P, TcChr8-S
##   - in 'y': Tcruzi_11260, Tcruzi_15530, Tcruzi_16730, Tcruzi_19635, Tcruzi_20222, Tcruzi_20907, Tcruzi_2548, Tcruzi_28052, Tcruzi_2930, Tcruzi_32224, Tcruzi_6456
##   Make sure to always combine/compare objects based on the same reference
##   genome (use suppressWarnings() to suppress this warning).
## Warning in .Seqinfo.mergexy(x, y): Each of the 2 combined objects has sequence levels not in the other:
##   - in 'x': Tcruzi_11316, Tcruzi_12626, Tcruzi_13502, Tcruzi_14624, Tcruzi_15133, Tcruzi_15418, Tcruzi_15516, Tcruzi_15648, Tcruzi_16223, Tcruzi_16277, Tcruzi_16916, Tcruzi_18304, Tcruzi_20654, Tcruzi_20878, Tcruzi_21319, Tcruzi_21518, Tcruzi_23021, Tcruzi_23396, Tcruzi_23970, Tcruzi_24524, Tcruzi_24686, Tcruzi_25087, Tcruzi_25408, Tcruzi_26318, Tcruzi_29371, Tcruzi_30347, Tcruzi_3086, Tcruzi_31765, Tcruzi_32487, Tcruzi_3291, Tcruzi_6480, Tcruzi_6908, Tcruzi_7113, Tcruzi_8516, Tcruzi_9856
##   - in 'y': 56, 81, 149, 238, 315, 330, 368, 372, 448, 481, 551, 565, 621, 655, 763, 767, 768, 828, 884, 889, 919, 937, 993, 1016, 1095, 1102, 1189, 1349, 1372, 1409, 1534, 1550, 1648, 1676, 1681, 1699, 1806, 1878, 1976, 2022, 2025, 2057, 2065, 2150, 2240, 2307, 2416, 2522, 2621, 2651, 2692, 2767, 2942, 2943, 3020, 3032, 3062, 3108, 3182, 3257, 3295, 3323, 3380, 3425, 3522, 3614, 3656, 3689, 3700, 3778, 3862, 3977, 4047, 4073, 4127, 4130, 4148, 4181, 4213, 4226, 4269, 4289, 4305, 4325, 4453, 4492, 4560, 4572, 4573, 4593, 4596, 4606, 4612, 4625, 4635, 4651, 4652, 4663, 4675, 4689, 4695, 4706, 4708, 4709, 4711, 4712, 4728, 4729, 4767, 4772, 4794, 4862, 4874, 4889, 4891, 4931, 4952, 4956, 4959, 4977, 5023, 5066, 5105, 5156, 5185, 5194, 5318, 5327, 5333, 5340, 5350, 5355, 5356, 5362, 5373, 5385, 5397, 5398, 5406, 5407, 5411, 5416, 5436, 5437, 5441, 5448, 5449, 5450, 5458, 5479, 5480, 5487, 5488, 5493, 5494, 5501, 5503, 5504, 5508, 5511, 5517, 5531, 5532, 5533, 5538, 5570, 5589, 5592, 5597, 5599, 5612, 5673, 5680, 5682, 5697, 5702, 5704, 5711, 5721, 5722, 5723, 5724, 5732, 5733, 5783, 5793, 5813, 5814, 5837, 5838, 5841, 5842, 5843, 5845, 5846, 5871, 5916, 5926, 5927, 5928, 5931, 5939, 5940, 5988, 5992, 5993, 6002, 6004, 6008, 6012, 6016, 6030, 6038, 6041, 6043, 6044, 6045, 6047, 6050, 6059, 6100, 6105, 6106, 6121, 6199, 6243, 6244, 6254, 6262, 6263, 6267, 6273, 6276, 6278, 6281, 6282, 6284, 6294, 6295, 6296, 6306, 6310, 6312, 6314, 6324, 6334, 6336, 6338, 6341, 6348, 6357, 6358, 6374, 6377, 6378, 6385, 6392, 6393, 6396, 6399, 6402, 6408, 6423, 6431, 6434, 6441, 6460, 6462, 6463, 6474, 6478, 6483, 6486, 6487, 6490, 6494, 6497, 6498, 6503, 6509, 6511, 6525, 6548, 6575, 6579, 6588, 6602, 6616, 6617, 6633, 6640, 6643, 6646, 6647, 6657, 6658, 6661, 6669, 6672, 6683, 6695, 6697, 6698, 6702, 6712, 6723, 6735, 6736, 6738, 6743, 6747, 6749, 6750, 6751, 6752, 6754, 6758, 6760, 6767, 6768, 6772, 6773, 6776, 6779, 6780, 6784, 6785, 6786, 6788, 6789, 6792, 6794, 6795, 6797, 6798, 6799, 6801, 6806, 6807, 6812, 6816, 6819, 6820, 6821, 6826, 6838, 6839, 6843, 6844, 6845, 6852, 6856, 6859, 6868, 6875, 6884, 6891, 6908, 6910, 6913, 6918, 6921, 6935, 6938, 6949, 6950, 6951, 6954, 6983, 6990, 6992, 6994, 6995, 7001, 7002, 7011, 7033, 7036, 7050, 7054, 7060, 7077, 7101, 7113, 7114, 7125, 7126, 7132, 7133, 7134, 7138, 7139, 7166, 7213, 7214, 7215, 7217, 7226, 7227, 7229, 7235, 7237, 7242, 7243, 7245, 7246, 7255, 7256, 7258, 7261, 7264, 7267, 7270, 7274, 7282, 7287, 7288, 7293, 7295, 7305, 7306, 7316, 7317, 7319, 7321, 7325, 7332, 7335, 7338, 7351, 7352, 7357, 7359, 7363, 7370, 7384, 7386, 7389, 7390, 7392, 7393, 7403, 7418, 7419, 7430, 7433, 7436, 7437, 7449, 7450, 7451, 7481, 7483, 7484, 7490, 7496, 7501, 7509, 7516, 7533, 7567, 7568, 7573, 7576, 7577, 7582, 7583, 7588, 7589, 7631, 7632, 7658, 7659, 7670, 7671, 7672, 7673, 7674, 7679, 7680, 7681, 7682, 7687, 7688, 7689, 7690, 7697, 7734, 7735, 7736, 7742, 7745, 7746, 7747, 7748, 7756, 7757, 7776, 7780, 7788, 7790, 7791, 7792, 7795, 7796, 7803, 7806, 7809, 7817, 7826, 7834, 7837, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7872, 7895, 7896, 7934, 7935, 7936, 7987, 7988, 8027, 8028, 8057, 8059, 8068, 8071, 8074, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8093, 8094, 8098, 8100, 8104, 8108, 8109, 8111, 8119, 8120, 8121, 8125, 8126, 8130, 8151, 8161, 8168, 8169, 8189, 8202, 8203, 8210, 8211, 8220, 8226, 8238, 8239, 8255, 8256, 8302, 8308, 8315, 8316, 8339, 8377, 8394, 8395, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8410, 8411, 8412, 8413, 8423, 8424, 8425, 8426, 8428, 8437, 8464, 8495, 8496, 8497, 8503, 8504, 8506, 8516, 8519, 8529, 8532, 8535, 8540, 8541, 8544, 8545, 8546, 8547, 8548, 8552, 8560, 8561, 8562, 8566, 8567, 8568, 8569, 8584, 8585, 8586, 8591, 8592, 8593, 8594, 8596, 8597, 8598, 8608, 8617, 8618, 8625, 8626, 8675, 8697, 8698, 8699, 8718, 8719, 8720, 8782, 8783, 8784, 8785, 8859, 9108, 9155, 9158, 9229, 9549, 9921, 10059, 10145, 10656, 11180, 11431, 11586, 11767, 11788, 12118, 12248, 12275, 12697, 12995, 13037, 13339, 13347, 13834, 14105, 14178, 14377, 14980, 15295, 17087, 17328, 18207, 18236, 18273, 19089, 19748, 19997, 20168, 21421, 21424, 22036, 22113, 23428, 23437, 23566, 24365, 24516, 25155, 25287, 25302, 25378, 25507, 25599, 25905, 26149, 26525, 26549, 26567, 27517, 27577, 29049, 29321, 29363, 29909, 31930, TcChr1-P, TcChr1-S, TcChr11-P, TcChr11-S, TcChr12-P, TcChr13-S, TcChr15-P, TcChr15-S, TcChr16-P, TcChr17-P, TcChr18-P, TcChr18-S, TcChr19-S, TcChr21-P, TcChr21-S, TcChr23-P, TcChr23-S, TcChr24-P, TcChr25-S, TcChr27-S, TcChr28-P, TcChr28-S, TcChr3-P, TcChr3-S, TcChr31-P, TcChr38-P, TcChr4-P, TcChr4-S, TcChr41-P, TcChr5-S, TcChr6-P, TcChr7-P, TcChr8-P, TcChr8-S
##   Make sure to always combine/compare objects based on the same reference
##   genome (use suppressWarnings() to suppress this warning).
## Warning in .Seqinfo.mergexy(x, y): Each of the 2 combined objects has sequence levels not in the other:
##   - in 'x': 56, 81, 149, 238, 315, 330, 368, 372, 448, 481, 551, 565, 621, 655, 763, 767, 768, 828, 884, 889, 919, 937, 993, 1016, 1095, 1102, 1189, 1349, 1372, 1409, 1534, 1550, 1648, 1676, 1681, 1699, 1806, 1878, 1976, 2022, 2025, 2057, 2065, 2150, 2240, 2307, 2416, 2522, 2621, 2651, 2692, 2767, 2942, 2943, 3020, 3032, 3062, 3108, 3182, 3257, 3295, 3323, 3380, 3425, 3522, 3614, 3656, 3689, 3700, 3778, 3862, 3977, 4047, 4073, 4127, 4130, 4148, 4181, 4213, 4226, 4269, 4289, 4305, 4325, 4453, 4492, 4560, 4572, 4573, 4593, 4596, 4606, 4612, 4625, 4635, 4651, 4652, 4663, 4675, 4689, 4695, 4706, 4708, 4709, 4711, 4712, 4728, 4729, 4767, 4772, 4794, 4862, 4874, 4889, 4891, 4931, 4952, 4956, 4959, 4977, 5023, 5066, 5105, 5156, 5185, 5194, 5318, 5327, 5333, 5340, 5350, 5355, 5356, 5362, 5373, 5385, 5397, 5398, 5406, 5407, 5411, 5416, 5436, 5437, 5441, 5448, 5449, 5450, 5458, 5479, 5480, 5487, 5488, 5493, 5494, 5501, 5503, 5504, 5508, 5511, 5517, 5531, 5532, 5533, 5538, 5570, 5589, 5592, 5597, 5599, 5612, 5673, 5680, 5682, 5697, 5702, 5704, 5711, 5721, 5722, 5723, 5724, 5732, 5733, 5783, 5793, 5813, 5814, 5837, 5838, 5841, 5842, 5843, 5845, 5846, 5871, 5916, 5926, 5927, 5928, 5931, 5939, 5940, 5988, 5992, 5993, 6002, 6004, 6008, 6012, 6016, 6030, 6038, 6041, 6043, 6044, 6045, 6047, 6050, 6059, 6100, 6105, 6106, 6121, 6199, 6243, 6244, 6254, 6262, 6263, 6267, 6273, 6276, 6278, 6281, 6282, 6284, 6294, 6295, 6296, 6306, 6310, 6312, 6314, 6324, 6334, 6336, 6338, 6341, 6348, 6357, 6358, 6374, 6377, 6378, 6385, 6392, 6393, 6396, 6399, 6402, 6408, 6423, 6431, 6434, 6441, 6460, 6462, 6463, 6474, 6478, 6483, 6486, 6487, 6490, 6494, 6497, 6498, 6503, 6509, 6511, 6525, 6548, 6575, 6579, 6588, 6602, 6616, 6617, 6633, 6640, 6643, 6646, 6647, 6657, 6658, 6661, 6669, 6672, 6683, 6695, 6697, 6698, 6702, 6712, 6723, 6735, 6736, 6738, 6743, 6747, 6749, 6750, 6751, 6752, 6754, 6758, 6760, 6767, 6768, 6772, 6773, 6776, 6779, 6780, 6784, 6785, 6786, 6788, 6789, 6792, 6794, 6795, 6797, 6798, 6799, 6801, 6806, 6807, 6812, 6816, 6819, 6820, 6821, 6826, 6838, 6839, 6843, 6844, 6845, 6852, 6856, 6859, 6868, 6875, 6884, 6891, 6908, 6910, 6913, 6918, 6921, 6935, 6938, 6949, 6950, 6951, 6954, 6983, 6990, 6992, 6994, 6995, 7001, 7002, 7011, 7033, 7036, 7050, 7054, 7060, 7077, 7101, 7113, 7114, 7125, 7126, 7132, 7133, 7134, 7138, 7139, 7166, 7213, 7214, 7215, 7217, 7226, 7227, 7229, 7235, 7237, 7242, 7243, 7245, 7246, 7255, 7256, 7258, 7261, 7264, 7267, 7270, 7274, 7282, 7287, 7288, 7293, 7295, 7305, 7306, 7316, 7317, 7319, 7321, 7325, 7332, 7335, 7338, 7351, 7352, 7357, 7359, 7363, 7370, 7384, 7386, 7389, 7390, 7392, 7393, 7403, 7418, 7419, 7430, 7433, 7436, 7437, 7449, 7450, 7451, 7481, 7483, 7484, 7490, 7496, 7501, 7509, 7516, 7533, 7567, 7568, 7573, 7576, 7577, 7582, 7583, 7588, 7589, 7631, 7632, 7658, 7659, 7670, 7671, 7672, 7673, 7674, 7679, 7680, 7681, 7682, 7687, 7688, 7689, 7690, 7697, 7734, 7735, 7736, 7742, 7745, 7746, 7747, 7748, 7756, 7757, 7776, 7780, 7788, 7790, 7791, 7792, 7795, 7796, 7803, 7806, 7809, 7817, 7826, 7834, 7837, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7872, 7895, 7896, 7934, 7935, 7936, 7987, 7988, 8027, 8028, 8057, 8059, 8068, 8071, 8074, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8093, 8094, 8098, 8100, 8104, 8108, 8109, 8111, 8119, 8120, 8121, 8125, 8126, 8130, 8151, 8161, 8168, 8169, 8189, 8202, 8203, 8210, 8211, 8220, 8226, 8238, 8239, 8255, 8256, 8302, 8308, 8315, 8316, 8339, 8377, 8394, 8395, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8410, 8411, 8412, 8413, 8423, 8424, 8425, 8426, 8428, 8437, 8464, 8495, 8496, 8497, 8503, 8504, 8506, 8516, 8519, 8529, 8532, 8535, 8540, 8541, 8544, 8545, 8546, 8547, 8548, 8552, 8560, 8561, 8562, 8566, 8567, 8568, 8569, 8584, 8585, 8586, 8591, 8592, 8593, 8594, 8596, 8597, 8598, 8608, 8617, 8618, 8625, 8626, 8675, 8697, 8698, 8699, 8718, 8719, 8720, 8782, 8783, 8784, 8785, 8859, 9108, 9155, 9158, 9229, 9549, 9921, 10059, 10145, 10656, 11180, 11431, 11586, 11767, 11788, 12118, 12248, 12275, 12697, 12995, 13037, 13339, 13347, 13834, 14105, 14178, 14377, 14980, 15295, 17087, 17328, 18207, 18236, 18273, 19089, 19748, 19997, 20168, 21421, 21424, 22036, 22113, 23428, 23437, 23566, 24365, 24516, 25155, 25287, 25302, 25378, 25507, 25599, 25905, 26149, 26525, 26549, 26567, 27517, 27577, 29049, 29321, 29363, 29909, 31930, TcChr1-P, TcChr1-S, TcChr11-P, TcChr11-S, TcChr12-P, TcChr13-S, TcChr15-P, TcChr15-S, TcChr16-P, TcChr17-P, TcChr18-P, TcChr18-S, TcChr19-S, TcChr21-P, TcChr21-S, TcChr23-P, TcChr23-S, TcChr24-P, TcChr25-S, TcChr27-S, TcChr28-P, TcChr28-S, TcChr3-P, TcChr3-S, TcChr31-P, TcChr38-P, TcChr4-P, TcChr4-S, TcChr41-P, TcChr5-S, TcChr6-P, TcChr7-P, TcChr8-P, TcChr8-S
##   - in 'y': Tcruzi_11316, Tcruzi_12626, Tcruzi_13502, Tcruzi_14624, Tcruzi_15133, Tcruzi_15418, Tcruzi_15516, Tcruzi_15648, Tcruzi_16223, Tcruzi_16277, Tcruzi_16916, Tcruzi_18304, Tcruzi_20654, Tcruzi_20878, Tcruzi_21319, Tcruzi_21518, Tcruzi_23021, Tcruzi_23396, Tcruzi_23970, Tcruzi_24524, Tcruzi_24686, Tcruzi_25087, Tcruzi_25408, Tcruzi_26318, Tcruzi_29371, Tcruzi_30347, Tcruzi_3086, Tcruzi_31765, Tcruzi_32487, Tcruzi_3291, Tcruzi_6480, Tcruzi_6908, Tcruzi_7113, Tcruzi_8516, Tcruzi_9856
##   Make sure to always combine/compare objects based on the same reference
##   genome (use suppressWarnings() to suppress this warning).
## Warning in .Seqinfo.mergexy(x, y): Each of the 2 combined objects has sequence levels not in the other:
##   - in 'x': Tcruzi_1061, Tcruzi_13827, Tcruzi_14624, Tcruzi_14746, Tcruzi_16698, Tcruzi_17030, Tcruzi_17524, Tcruzi_20778, Tcruzi_20878, Tcruzi_22268, Tcruzi_23491, Tcruzi_23901, Tcruzi_24008, Tcruzi_24686, Tcruzi_32658, Tcruzi_6480, Tcruzi_7274, Tcruzi_7742, Tcruzi_8516
##   - in 'y': 56, 81, 149, 238, 315, 330, 368, 372, 448, 481, 551, 565, 621, 655, 763, 767, 768, 828, 884, 889, 919, 937, 993, 1016, 1095, 1102, 1189, 1349, 1372, 1409, 1534, 1550, 1648, 1676, 1681, 1699, 1806, 1878, 1976, 2022, 2025, 2057, 2065, 2150, 2240, 2307, 2416, 2522, 2621, 2651, 2692, 2767, 2942, 2943, 3020, 3032, 3062, 3108, 3182, 3257, 3295, 3323, 3380, 3425, 3522, 3614, 3656, 3689, 3700, 3778, 3862, 3977, 4047, 4073, 4127, 4130, 4148, 4181, 4213, 4226, 4269, 4289, 4305, 4325, 4453, 4492, 4560, 4572, 4573, 4593, 4596, 4606, 4612, 4625, 4635, 4651, 4652, 4663, 4675, 4689, 4695, 4706, 4708, 4709, 4711, 4712, 4728, 4729, 4767, 4772, 4794, 4862, 4874, 4889, 4891, 4931, 4952, 4956, 4959, 4977, 5023, 5066, 5105, 5156, 5185, 5194, 5318, 5327, 5333, 5340, 5350, 5355, 5356, 5362, 5373, 5385, 5397, 5398, 5406, 5407, 5411, 5416, 5436, 5437, 5441, 5448, 5449, 5450, 5458, 5479, 5480, 5487, 5488, 5493, 5494, 5501, 5503, 5504, 5508, 5511, 5517, 5531, 5532, 5533, 5538, 5570, 5589, 5592, 5597, 5599, 5612, 5673, 5680, 5682, 5697, 5702, 5704, 5711, 5721, 5722, 5723, 5724, 5732, 5733, 5783, 5793, 5813, 5814, 5837, 5838, 5841, 5842, 5843, 5845, 5846, 5871, 5916, 5926, 5927, 5928, 5931, 5939, 5940, 5988, 5992, 5993, 6002, 6004, 6008, 6012, 6016, 6030, 6038, 6041, 6043, 6044, 6045, 6047, 6050, 6059, 6100, 6105, 6106, 6121, 6199, 6243, 6244, 6254, 6262, 6263, 6267, 6273, 6276, 6278, 6281, 6282, 6284, 6294, 6295, 6296, 6306, 6310, 6312, 6314, 6324, 6334, 6336, 6338, 6341, 6348, 6357, 6358, 6374, 6377, 6378, 6385, 6392, 6393, 6396, 6399, 6402, 6408, 6423, 6431, 6434, 6441, 6460, 6462, 6463, 6474, 6478, 6483, 6486, 6487, 6490, 6494, 6497, 6498, 6503, 6509, 6511, 6525, 6548, 6575, 6579, 6588, 6602, 6616, 6617, 6633, 6640, 6643, 6646, 6647, 6657, 6658, 6661, 6669, 6672, 6683, 6695, 6697, 6698, 6702, 6712, 6723, 6735, 6736, 6738, 6743, 6747, 6749, 6750, 6751, 6752, 6754, 6758, 6760, 6767, 6768, 6772, 6773, 6776, 6779, 6780, 6784, 6785, 6786, 6788, 6789, 6792, 6794, 6795, 6797, 6798, 6799, 6801, 6806, 6807, 6812, 6816, 6819, 6820, 6821, 6826, 6838, 6839, 6843, 6844, 6845, 6852, 6856, 6859, 6868, 6875, 6884, 6891, 6908, 6910, 6913, 6918, 6921, 6935, 6938, 6949, 6950, 6951, 6954, 6983, 6990, 6992, 6994, 6995, 7001, 7002, 7011, 7033, 7036, 7050, 7054, 7060, 7077, 7101, 7113, 7114, 7125, 7126, 7132, 7133, 7134, 7138, 7139, 7166, 7213, 7214, 7215, 7217, 7226, 7227, 7229, 7235, 7237, 7242, 7243, 7245, 7246, 7255, 7256, 7258, 7261, 7264, 7267, 7270, 7274, 7282, 7287, 7288, 7293, 7295, 7305, 7306, 7316, 7317, 7319, 7321, 7325, 7332, 7335, 7338, 7351, 7352, 7357, 7359, 7363, 7370, 7384, 7386, 7389, 7390, 7392, 7393, 7403, 7418, 7419, 7430, 7433, 7436, 7437, 7449, 7450, 7451, 7481, 7483, 7484, 7490, 7496, 7501, 7509, 7516, 7533, 7567, 7568, 7573, 7576, 7577, 7582, 7583, 7588, 7589, 7631, 7632, 7658, 7659, 7670, 7671, 7672, 7673, 7674, 7679, 7680, 7681, 7682, 7687, 7688, 7689, 7690, 7697, 7734, 7735, 7736, 7742, 7745, 7746, 7747, 7748, 7756, 7757, 7776, 7780, 7788, 7790, 7791, 7792, 7795, 7796, 7803, 7806, 7809, 7817, 7826, 7834, 7837, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7872, 7895, 7896, 7934, 7935, 7936, 7987, 7988, 8027, 8028, 8057, 8059, 8068, 8071, 8074, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8093, 8094, 8098, 8100, 8104, 8108, 8109, 8111, 8119, 8120, 8121, 8125, 8126, 8130, 8151, 8161, 8168, 8169, 8189, 8202, 8203, 8210, 8211, 8220, 8226, 8238, 8239, 8255, 8256, 8302, 8308, 8315, 8316, 8339, 8377, 8394, 8395, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8410, 8411, 8412, 8413, 8423, 8424, 8425, 8426, 8428, 8437, 8464, 8495, 8496, 8497, 8503, 8504, 8506, 8516, 8519, 8529, 8532, 8535, 8540, 8541, 8544, 8545, 8546, 8547, 8548, 8552, 8560, 8561, 8562, 8566, 8567, 8568, 8569, 8584, 8585, 8586, 8591, 8592, 8593, 8594, 8596, 8597, 8598, 8608, 8617, 8618, 8625, 8626, 8675, 8697, 8698, 8699, 8718, 8719, 8720, 8782, 8783, 8784, 8785, 8859, 9108, 9155, 9158, 9229, 9549, 9921, 10059, 10145, 10656, 11180, 11431, 11586, 11767, 11788, 12118, 12248, 12275, 12697, 12995, 13037, 13339, 13347, 13834, 14105, 14178, 14377, 14980, 15295, 17087, 17328, 18207, 18236, 18273, 19089, 19748, 19997, 20168, 21421, 21424, 22036, 22113, 23428, 23437, 23566, 24365, 24516, 25155, 25287, 25302, 25378, 25507, 25599, 25905, 26149, 26525, 26549, 26567, 27517, 27577, 29049, 29321, 29363, 29909, 31930, TcChr1-P, TcChr1-S, TcChr10-P, TcChr10-S, TcChr11-P, TcChr11-S, TcChr12-P, TcChr13-S, TcChr15-P, TcChr15-S, TcChr16-P, TcChr16-S, TcChr17-S, TcChr18-P, TcChr18-S, TcChr19-S, TcChr2-S, TcChr21-P, TcChr21-S, TcChr22-P, TcChr22-S, TcChr23-S, TcChr24-P, TcChr24-S, TcChr25-P, TcChr28-P, TcChr28-S, TcChr29-P, TcChr3-P, TcChr3-S, TcChr31-P, TcChr33-P, TcChr35-S, TcChr36-P, TcChr38-P, TcChr4-P, TcChr4-S, TcChr41-S, TcChr5-S, TcChr6-P, TcChr6-S, TcChr7-S, TcChr8-P
##   Make sure to always combine/compare objects based on the same reference
##   genome (use suppressWarnings() to suppress this warning).
## Warning in .Seqinfo.mergexy(x, y): Each of the 2 combined objects has sequence levels not in the other:
##   - in 'x': 56, 81, 149, 238, 315, 330, 368, 372, 448, 481, 551, 565, 621, 655, 763, 767, 768, 828, 884, 889, 919, 937, 993, 1016, 1095, 1102, 1189, 1349, 1372, 1409, 1534, 1550, 1648, 1676, 1681, 1699, 1806, 1878, 1976, 2022, 2025, 2057, 2065, 2150, 2240, 2307, 2416, 2522, 2621, 2651, 2692, 2767, 2942, 2943, 3020, 3032, 3062, 3108, 3182, 3257, 3295, 3323, 3380, 3425, 3522, 3614, 3656, 3689, 3700, 3778, 3862, 3977, 4047, 4073, 4127, 4130, 4148, 4181, 4213, 4226, 4269, 4289, 4305, 4325, 4453, 4492, 4560, 4572, 4573, 4593, 4596, 4606, 4612, 4625, 4635, 4651, 4652, 4663, 4675, 4689, 4695, 4706, 4708, 4709, 4711, 4712, 4728, 4729, 4767, 4772, 4794, 4862, 4874, 4889, 4891, 4931, 4952, 4956, 4959, 4977, 5023, 5066, 5105, 5156, 5185, 5194, 5318, 5327, 5333, 5340, 5350, 5355, 5356, 5362, 5373, 5385, 5397, 5398, 5406, 5407, 5411, 5416, 5436, 5437, 5441, 5448, 5449, 5450, 5458, 5479, 5480, 5487, 5488, 5493, 5494, 5501, 5503, 5504, 5508, 5511, 5517, 5531, 5532, 5533, 5538, 5570, 5589, 5592, 5597, 5599, 5612, 5673, 5680, 5682, 5697, 5702, 5704, 5711, 5721, 5722, 5723, 5724, 5732, 5733, 5783, 5793, 5813, 5814, 5837, 5838, 5841, 5842, 5843, 5845, 5846, 5871, 5916, 5926, 5927, 5928, 5931, 5939, 5940, 5988, 5992, 5993, 6002, 6004, 6008, 6012, 6016, 6030, 6038, 6041, 6043, 6044, 6045, 6047, 6050, 6059, 6100, 6105, 6106, 6121, 6199, 6243, 6244, 6254, 6262, 6263, 6267, 6273, 6276, 6278, 6281, 6282, 6284, 6294, 6295, 6296, 6306, 6310, 6312, 6314, 6324, 6334, 6336, 6338, 6341, 6348, 6357, 6358, 6374, 6377, 6378, 6385, 6392, 6393, 6396, 6399, 6402, 6408, 6423, 6431, 6434, 6441, 6460, 6462, 6463, 6474, 6478, 6483, 6486, 6487, 6490, 6494, 6497, 6498, 6503, 6509, 6511, 6525, 6548, 6575, 6579, 6588, 6602, 6616, 6617, 6633, 6640, 6643, 6646, 6647, 6657, 6658, 6661, 6669, 6672, 6683, 6695, 6697, 6698, 6702, 6712, 6723, 6735, 6736, 6738, 6743, 6747, 6749, 6750, 6751, 6752, 6754, 6758, 6760, 6767, 6768, 6772, 6773, 6776, 6779, 6780, 6784, 6785, 6786, 6788, 6789, 6792, 6794, 6795, 6797, 6798, 6799, 6801, 6806, 6807, 6812, 6816, 6819, 6820, 6821, 6826, 6838, 6839, 6843, 6844, 6845, 6852, 6856, 6859, 6868, 6875, 6884, 6891, 6908, 6910, 6913, 6918, 6921, 6935, 6938, 6949, 6950, 6951, 6954, 6983, 6990, 6992, 6994, 6995, 7001, 7002, 7011, 7033, 7036, 7050, 7054, 7060, 7077, 7101, 7113, 7114, 7125, 7126, 7132, 7133, 7134, 7138, 7139, 7166, 7213, 7214, 7215, 7217, 7226, 7227, 7229, 7235, 7237, 7242, 7243, 7245, 7246, 7255, 7256, 7258, 7261, 7264, 7267, 7270, 7274, 7282, 7287, 7288, 7293, 7295, 7305, 7306, 7316, 7317, 7319, 7321, 7325, 7332, 7335, 7338, 7351, 7352, 7357, 7359, 7363, 7370, 7384, 7386, 7389, 7390, 7392, 7393, 7403, 7418, 7419, 7430, 7433, 7436, 7437, 7449, 7450, 7451, 7481, 7483, 7484, 7490, 7496, 7501, 7509, 7516, 7533, 7567, 7568, 7573, 7576, 7577, 7582, 7583, 7588, 7589, 7631, 7632, 7658, 7659, 7670, 7671, 7672, 7673, 7674, 7679, 7680, 7681, 7682, 7687, 7688, 7689, 7690, 7697, 7734, 7735, 7736, 7742, 7745, 7746, 7747, 7748, 7756, 7757, 7776, 7780, 7788, 7790, 7791, 7792, 7795, 7796, 7803, 7806, 7809, 7817, 7826, 7834, 7837, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7872, 7895, 7896, 7934, 7935, 7936, 7987, 7988, 8027, 8028, 8057, 8059, 8068, 8071, 8074, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8093, 8094, 8098, 8100, 8104, 8108, 8109, 8111, 8119, 8120, 8121, 8125, 8126, 8130, 8151, 8161, 8168, 8169, 8189, 8202, 8203, 8210, 8211, 8220, 8226, 8238, 8239, 8255, 8256, 8302, 8308, 8315, 8316, 8339, 8377, 8394, 8395, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8410, 8411, 8412, 8413, 8423, 8424, 8425, 8426, 8428, 8437, 8464, 8495, 8496, 8497, 8503, 8504, 8506, 8516, 8519, 8529, 8532, 8535, 8540, 8541, 8544, 8545, 8546, 8547, 8548, 8552, 8560, 8561, 8562, 8566, 8567, 8568, 8569, 8584, 8585, 8586, 8591, 8592, 8593, 8594, 8596, 8597, 8598, 8608, 8617, 8618, 8625, 8626, 8675, 8697, 8698, 8699, 8718, 8719, 8720, 8782, 8783, 8784, 8785, 8859, 9108, 9155, 9158, 9229, 9549, 9921, 10059, 10145, 10656, 11180, 11431, 11586, 11767, 11788, 12118, 12248, 12275, 12697, 12995, 13037, 13339, 13347, 13834, 14105, 14178, 14377, 14980, 15295, 17087, 17328, 18207, 18236, 18273, 19089, 19748, 19997, 20168, 21421, 21424, 22036, 22113, 23428, 23437, 23566, 24365, 24516, 25155, 25287, 25302, 25378, 25507, 25599, 25905, 26149, 26525, 26549, 26567, 27517, 27577, 29049, 29321, 29363, 29909, 31930, TcChr1-P, TcChr1-S, TcChr10-P, TcChr10-S, TcChr11-P, TcChr11-S, TcChr12-P, TcChr13-S, TcChr15-P, TcChr15-S, TcChr16-P, TcChr16-S, TcChr17-S, TcChr18-P, TcChr18-S, TcChr19-S, TcChr2-S, TcChr21-P, TcChr21-S, TcChr22-P, TcChr22-S, TcChr23-S, TcChr24-P, TcChr24-S, TcChr25-P, TcChr28-P, TcChr28-S, TcChr29-P, TcChr3-P, TcChr3-S, TcChr31-P, TcChr33-P, TcChr35-S, TcChr36-P, TcChr38-P, TcChr4-P, TcChr4-S, TcChr41-S, TcChr5-S, TcChr6-P, TcChr6-S, TcChr7-S, TcChr8-P
##   - in 'y': Tcruzi_1061, Tcruzi_13827, Tcruzi_14624, Tcruzi_14746, Tcruzi_16698, Tcruzi_17030, Tcruzi_17524, Tcruzi_20778, Tcruzi_20878, Tcruzi_22268, Tcruzi_23491, Tcruzi_23901, Tcruzi_24008, Tcruzi_24686, Tcruzi_32658, Tcruzi_6480, Tcruzi_7274, Tcruzi_7742, Tcruzi_8516
##   Make sure to always combine/compare objects based on the same reference
##   genome (use suppressWarnings() to suppress this warning).
snp_norm <- normalize_expt(snp_cond_expt, filter=TRUE, transform="log2")
## This function will replace the expt$expressionset slot with:
## log2(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
## Leaving the data unconverted.  It is often advisable to cpm/rpkm
##  the data to normalize for sampling differences, keep in mind though that rpkm
##  has some annoying biases, and voom() by default does a cpm (though hpgl_voom()
##  will try to detect this).
## 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: performing count filter with option: cbcb
## Removing 0 low-count genes (4539 remaining).
## Step 2: not normalizing the data.
## Step 3: not converting the data.
## Step 4: transforming the data with log2.
## transform_counts: Found 21113 values equal to 0, adding 1 to the matrix.
## Step 5: not doing batch correction.
test <- plot_corheat(snp_norm)

test2 <- plot_sample_heatmap(snp_norm, Rowv=FALSE)

des <- snp_norm$design
library(Heatplus)
##hmcols <- colorRampPalette(c("yellow","black","darkblue"))(256)
correlations <- hpgl_dist(exprs(snp_norm))
mydendro <- list(
  "clustfun" = hclust,
  "lwd" = 2.0)
col_data <- as.data.frame(des[, c("condition")])
row_data <- as.data.frame(des[, c("sampleid")])
colnames(col_data) <- c("condition")
colnames(row_data) <- c("sampleid")
myannot <- list(
  "Col" = list("data" = col_data),
  "Row" = list("data" = row_data))
myclust <- list("cuth" = 1.0,
                "col" = BrewerClusterCol)
mylabs <- list(
  "Row" = list("nrow" = 4),
  "Col" = list("nrow" = 4))
hmcols <- colorRampPalette(c("darkblue", "beige"))(333)
map1 <- annHeatmap2(
  correlations,
  dendrogram=mydendro,
  annotation=myannot,
  cluster=myclust,
  labels=mylabs,
  col=hmcols)
## Warning in breakColors(breaks, col): more colors than classes: ignoring 55
## last colors
plot(map1)

num_clusters <- max(map1[["cluster"]][["Row"]][["grp"]])
chosen_palette <- "Dark2"
new_colors <- grDevices::colorRampPalette(
                           RColorBrewer::brewer.pal(num_clusters, chosen_palette))(num_clusters)
myclust <- list("cuth" = 1.0,
                "col" = new_colors)
map2 <- annHeatmap2(
  correlations,
  dendrogram=mydendro,
  annotation=myannot,
  cluster=myclust,
  labels=mylabs,
  scale="none",
  col=hmcols)
## Warning in breakColors(breaks, col): more colors than classes: ignoring 149
## last colors
plot(map2)

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 ebefdb9c92889564b0c204ec2591733d79f079c7
## This is hpgltools commit: Tue May 28 11:45:50 2019 -0400: ebefdb9c92889564b0c204ec2591733d79f079c7
## Saving to 01_annotation_v20190513.rda.xz
LS0tCnRpdGxlOiAiVC4gY3J1emkgMjAxOTA1MTM6IFNhbXBsZSBFc3RpbWF0aW9uIgphdXRob3I6ICJhdGIgYWJlbGV3QGdtYWlsLmNvbSIKZGF0ZTogImByIFN5cy5EYXRlKClgIgpvdXRwdXQ6CiBodG1sX2RvY3VtZW50OgogIGNvZGVfZG93bmxvYWQ6IHRydWUKICBjb2RlX2ZvbGRpbmc6IHNob3cKICBmaWdfY2FwdGlvbjogdHJ1ZQogIGZpZ19oZWlnaHQ6IDcKICBmaWdfd2lkdGg6IDcKICBoaWdobGlnaHQ6IGRlZmF1bHQKICBrZWVwX21kOiBmYWxzZQogIG1vZGU6IHNlbGZjb250YWluZWQKICBudW1iZXJfc2VjdGlvbnM6IHRydWUKICBzZWxmX2NvbnRhaW5lZDogdHJ1ZQogIHRoZW1lOiByZWFkYWJsZQogIHRvYzogdHJ1ZQogIHRvY19mbG9hdDoKICAgY29sbGFwc2VkOiBmYWxzZQogICBzbW9vdGhfc2Nyb2xsOiBmYWxzZQotLS0KCjxzdHlsZT4KICBib2R5IC5tYWluLWNvbnRhaW5lciB7CiAgICBtYXgtd2lkdGg6IDE2MDBweDsKICB9Cjwvc3R5bGU+CgpgYGB7ciBvcHRpb25zLCBpbmNsdWRlPUZBTFNFfQppZiAoIWlzVFJVRShnZXQwKCJza2lwX2xvYWQiKSkpIHsKICBsaWJyYXJ5KGhwZ2x0b29scykKICB0dCA8LSBzbShkZXZ0b29sczo6bG9hZF9hbGwoIi9kYXRhL2hwZ2x0b29scyIpKQogIGtuaXRyOjpvcHRzX2tuaXQkc2V0KHByb2dyZXNzPVRSVUUsCiAgICAgICAgICAgICAgICAgICAgICAgdmVyYm9zZT1UUlVFLAogICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPTkwLAogICAgICAgICAgICAgICAgICAgICAgIGVjaG89VFJVRSkKICBrbml0cjo6b3B0c19jaHVuayRzZXQoZXJyb3I9VFJVRSwKICAgICAgICAgICAgICAgICAgICAgICAgZmlnLndpZHRoPTgsCiAgICAgICAgICAgICAgICAgICAgICAgIGZpZy5oZWlnaHQ9OCwKICAgICAgICAgICAgICAgICAgICAgICAgZHBpPTk2KQogIG9sZF9vcHRpb25zIDwtIG9wdGlvbnMoZGlnaXRzPTQsCiAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdzQXNGYWN0b3JzPUZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgICAga25pdHIuZHVwbGljYXRlLmxhYmVsPSJhbGxvdyIpCiAgZ2dwbG90Mjo6dGhlbWVfc2V0KGdncGxvdDI6OnRoZW1lX2J3KGJhc2Vfc2l6ZT0xMikpCiAgdmVyIDwtICIyMDE5MDUxMyIKICBwcmV2aW91c19maWxlIDwtIHBhc3RlMCgiMDFfYW5ub3RhdGlvbl92IiwgdmVyLCAiLlJtZCIpCgogIHRtcCA8LSB0cnkoc20obG9hZG1lKGZpbGVuYW1lPWdzdWIocGF0dGVybj0iXFwuUm1kIiwgcmVwbGFjZT0iXFwucmRhXFwueHoiLCB4PXByZXZpb3VzX2ZpbGUpKSkpCiAgcm1kX2ZpbGUgPC0gcGFzdGUwKCIwMV9hbm5vdGF0aW9uX3YiLCB2ZXIsICIuUm1kIikKICBzYXZlZmlsZSA8LSBnc3ViKHBhdHRlcm49IlxcLlJtZCIsIHJlcGxhY2U9IlxcLnJkYVxcLnh6IiwgeD1ybWRfZmlsZSkKfQpgYGAKCiMgU2FtcGxlIEVzdGltYXRpb24KCkxldCB1cyBzZWUgd2hhdCB3ZSBjYW4gbGVhcm4gYWJvdXQgb3VyIG15c3Rlcnkgc2FtcGxlcyEKCiMjIEdlbmVyYXRlIGV4cHJlc3Npb25zZXRzCgpJbiBteSBwcmV2aW91cyBpdGVyYXRpb24sIEkgbmVnbGVjdGVkIHRvIGluY2x1ZGUgdGhlIG5vbmVzbWVyYWxkbywgdW5hc3NpZ25lZCwKYW5kIGNvbWJpbmVkIGhhcGxvdHlwZSBkYXRhLiAgTGV0IHVzIGZpeCB0aGF0IGhlcmUuICBBcyBhbiBhc2lkZSwgaW4gYSBzZXBhcmF0ZQpwcmV2aW91cyBpdGVyYXRpb24sIEkgY29tYmluZWQgc29tZSBvZiB0aGUgb2xkZXIgKHRvcGhhdDItYmFzZWQgZnJvbSAyMDE1KSBkYXRhCndpdGggdGhpcyBkYXRhIHRvIHNlZSBob3cgdGhlc2UgbmV3ZXIgc2FtcGxlcyBjbHVzdGVyIHdpdGggdGhlIHByZXZpb3VzCnNhbXBsZXMuICBJIHdhbnQgdG8gZG8gdGhhdCBhZ2FpbiwgYnV0IHRoaXMgdGltZSBrZWVwIGl0IHNlcGFyYXRlLgoKIyMjIFRoZSBzZXQgb2YgYWxsIGhhcGxvdHlwZXMKCkNhdmVhdDogVGhpcyBpcyB1c2luZyBoaXNhdDIgcXVhbnRpZmljYXRpb25zLgoKYGBge3IgYWxsX25ld19oaXNhdDIsIGZpZy5zaG93PSJoaWRlIn0KYWxsX25ld19oaXNhdCA8LSBjcmVhdGVfZXhwdCgic2FtcGxlX3NoZWV0cy9hbGxfc2FtcGxlcy54bHN4IiwgZmlsZV9jb2x1bW49ImFsbGhpc2F0ZmlsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZV9pbmZvPWhpc2F0X2NsYnJfYW5ub3QpCmFsbF9uZXdfd3JpdHRlbiA8LSBzbSh3cml0ZV9leHB0KAogIGFsbF9uZXdfaGlzYXQsCiAgZXhjZWw9cGFzdGUwKCJleGNlbC9hbGxfbmV3X2hpc2F0X3dyaXR0ZW4tdiIsIHZlciwgIi54bHN4IikpKQpgYGAKCiMjIyBBbGwgaGFwbG90eXBlcywgc2FsbW9uCgpgYGB7ciBhbGxfbmV3X3NhbG1vbiwgZmlnLnNob3c9ImhpZGUifQphbGxfbmV3X3NhbG1vbiA8LSBjcmVhdGVfZXhwdCgic2FtcGxlX3NoZWV0cy9hbGxfc2FtcGxlcy54bHN4IiwgZmlsZV9jb2x1bW49ImFsbHNhbG1vbmZpbGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lX2luZm89Y2xicl9hbm5vdCkKYWxsX3NhbG1vbl93cml0dGVuIDwtIHNtKHdyaXRlX2V4cHQoCiAgYWxsX25ld19zYWxtb24sCiAgZXhjZWw9cGFzdGUwKCJleGNlbC9hbGxfbmV3X3NhbG1vbl93cml0dGVuLXYiLCB2ZXIsICIueGxzeCIpKSkKYGBgCgojIyMgRXNtZXJhbGRvCgpDYXZlYXQ6IFRoaXMgaXMgdXNpbmcgc2FsbW9uIHF1YW50aWZpY2F0aW9ucy4KCmBgYHtyIGVzbWVyX25ld19kYXRhLCBmaWcuc2hvdz0iaGlkZSJ9CmVzbWVyX25ldyA8LSBjcmVhdGVfZXhwdCgic2FtcGxlX3NoZWV0cy9hbGxfc2FtcGxlcy54bHN4IiwgZmlsZV9jb2x1bW49ImVzbWVyZmlsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgZ2VuZV9pbmZvPXNhbG1vbl9jbGJyX2Fubm90KQplc21lcl9uZXdfd3JpdHRlbiA8LSBzbSh3cml0ZV9leHB0KAogIGVzbWVyX25ldywKICBleGNlbD1wYXN0ZTAoImV4Y2VsL2VzbWVyX25ld19zYWxtb25fd3JpdHRlbi12IiwgdmVyLCAiLnhsc3giKSkpCmBgYAoKIyMjIE5vbi1Fc21lcmFsZG8KCkNhdmVhdDogVGhpcyBpcyB1c2luZyBzYWxtb24gcXVhbnRpZmljYXRpb25zLgoKYGBge3Igbm9uZXNtZXJfbmV3X2RhdGEsIGZpZy5zaG93PSJoaWRlIn0Kbm9uZXNtZXJfbmV3IDwtIGNyZWF0ZV9leHB0KCJzYW1wbGVfc2hlZXRzL2FsbF9zYW1wbGVzLnhsc3giLCBmaWxlX2NvbHVtbj0ibm9uZXNtZXJmaWxlIiwKICAgICAgICAgICAgICAgICAgICAgICBnZW5lX2luZm89c2FsbW9uX2NsYnJfYW5ub3QpCm5vbmVzbWVyX25ld193cml0dGVuIDwtIHNtKHdyaXRlX2V4cHQoCiAgbm9uZXNtZXJfbmV3LAogIGV4Y2VsPXBhc3RlMCgiZXhjZWwvbm9uZXNtZXJfbmV3X3NhbG1vbl93cml0dGVuLXYiLCB2ZXIsICIueGxzeCIpKSkKYGBgCgojIyMgVW5hc3NpZ25lZAoKQ2F2ZWF0OiBUaGlzIGlzIHVzaW5nIHNhbG1vbiBxdWFudGlmaWNhdGlvbnMuCgpgYGB7ciB1bmFzX25ld19kYXRhLCBmaWcuc2hvdz0iaGlkZSJ9CnVuYXNzaWduZWRfbmV3IDwtIGNyZWF0ZV9leHB0KCJzYW1wbGVfc2hlZXRzL2FsbF9zYW1wbGVzLnhsc3giLCBmaWxlX2NvbHVtbj0idW5hc3NpZ25lZGZpbGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lX2luZm89c2FsbW9uX2NsYnJfYW5ub3QpCnVuYXNfbmV3X3dyaXR0ZW4gPC0gc20od3JpdGVfZXhwdCgKICB1bmFzc2lnbmVkX25ldywKICBleGNlbD1wYXN0ZTAoImV4Y2VsL3VuYXNzaWduZWRfbmV3X3NhbG1vbl93cml0dGVuLXYiLCB2ZXIsICIueGxzeCIpKSkKYGBgCgojIyMgQ29tYmluZSBuZXcgYW5kIHByZXZpb3VzIGRhdGEKClRoZSBwcmV2aW91cyBkYXRhIHdhcyB2aWEgdG9waGF0LCBzbyBpdCBzaG91bGQgb25seSBiZSBjb21iaW5lZCB3aXRoIHRoZSBoaXNhdApkYXRhLgoKYGBge3IgY29tYmluZV9leHByZXNzaW9uc2V0c30KYWxsX3ByZXZpb3VzIDwtIGNyZWF0ZV9leHB0KCJzYW1wbGVfc2hlZXRzL2FsbF9zYW1wbGVzLnhsc3giLCBmaWxlX2NvbHVtbj0iYWxsdG9waGF0ZmlsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lX2luZm89Y2xicl9hbm5vdCkKY3VycmVudF9uYW1lcyA8LSBnc3ViKHg9cm93bmFtZXMoZXhwcnMoYWxsX25ld19oaXNhdCkpLCBwYXR0ZXJuPSJeZXhvbl8iLCByZXBsYWNlbWVudD0iIikKY3VycmVudF9uYW1lcyA8LSBtYWtlLm5hbWVzKGdzdWIoeD1jdXJyZW50X25hbWVzLCBwYXR0ZXJuPSJcXC5cXGQrJCIsIHJlcGxhY2VtZW50PSIiKSwgdW5pcXVlPVRSVUUpCiMjIENvcHkgdGhlIG5ldyBkYXRhIHRvIGEgZnJlc2ggZmlsZSBpbiBjYXNlIG9mIGVycm9yLgphbGxfY3VycmVudCA8LSBzZXRfZXhwdF9nZW5lbmFtZXMoYWxsX25ld19oaXNhdCwgaWRzPWN1cnJlbnRfbmFtZXMpCgphbGxfYm90aCA8LSBjb21iaW5lX2V4cHRzKGFsbF9wcmV2aW91cywgYWxsX2N1cnJlbnQpCmRpbShleHBycyhhbGxfYm90aCkpCnN1bW1hcnkoZXhwcnMoYWxsX2JvdGgpKQpgYGAKCiMjIENvdmVyYWdlIG9mIG5ldyB2cy4gcHJldmlvdXMKCmBgYHtyIHBsb3RfbGlic2l6ZX0KYWxsX2xpYnNpemUgPC0gcGxvdF9saWJzaXplKGFsbF9ib3RoKQphbGxfbGlic2l6ZSRwbG90CmBgYAoKIyBMb29rIGF0IGRhdGEgZGlzdHJpYnV0aW9ucwoKTm9ybWFsaXplIGFuZCBwbG90IGEgY291cGxlIHBsb3RzIGZvciB0aGVzZSBhbmQgc2VlIGhvdyB0aGV5IGxvb2suCgpgYGB7ciBkaXN0cmlidXRpb25zfQphbGxfaGlzYXRfbm9ybSA8LSBzbShub3JtYWxpemVfZXhwdChhbGxfbmV3X2hpc2F0LCBub3JtPSJxdWFudCIsIGNvbnZlcnQ9ImNwbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT0ibG9nMiIpKQpwbG90X3BjYShhbGxfaGlzYXRfbm9ybSkkcGxvdApwbG90X2NvcmhlYXQoYWxsX2hpc2F0X25vcm0pJHBsb3QKCmFsbF9zYWxtb25fbm9ybSA8LSBzbShub3JtYWxpemVfZXhwdChhbGxfbmV3X3NhbG1vbiwgbm9ybT0icXVhbnQiLCBjb252ZXJ0PSJjcG0iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09ImxvZzIiKSkKcGxvdF9wY2EoYWxsX3NhbG1vbl9ub3JtKSRwbG90CnBsb3RfY29yaGVhdChhbGxfc2FsbW9uX25vcm0pJHBsb3QKCmVzbWVyX25ld19ub3JtIDwtIHNtKG5vcm1hbGl6ZV9leHB0KGVzbWVyX25ldywgbm9ybT0icXVhbnQiLCBjb252ZXJ0PSJjcG0iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09ImxvZzIiKSkKcGxvdF9wY2EoZXNtZXJfbmV3X25vcm0pJHBsb3QKcGxvdF9jb3JoZWF0KGVzbWVyX25ld19ub3JtKSRwbG90Cgpub25lc21lcl9uZXdfbm9ybSA8LSBzbShub3JtYWxpemVfZXhwdChub25lc21lcl9uZXcsIG5vcm09InF1YW50IiwgY29udmVydD0iY3BtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPSJsb2cyIikpCnBsb3RfcGNhKG5vbmVzbWVyX25ld19ub3JtKSRwbG90CnBsb3RfY29yaGVhdChub25lc21lcl9uZXdfbm9ybSkkcGxvdAoKdW5hc19uZXdfbm9ybSA8LSBzbShub3JtYWxpemVfZXhwdCh1bmFzc2lnbmVkX25ldywgbm9ybT0icXVhbnQiLCBjb252ZXJ0PSJjcG0iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT0ibG9nMiIpKQpwbG90X3BjYSh1bmFzX25ld19ub3JtKSRwbG90CnBsb3RfY29yaGVhdCh1bmFzX25ld19ub3JtKSRwbG90CmBgYAoKIyMgQ29tcGFyZSBvbGQvbmV3IGRhdGEKClRoZSBiaWcgY2F2ZWF0IGhlcmUgaXMgb2YgY291cnNlIHRoZSBjb3ZlcmFnZS4gIFRoYXQgcmVtaW5kcyBtZSwgSSBoYXZlIGJlZW4KbWVhbmluZyB0byBtYWtlIHRoZSBzaXplIG9mIHRoZSBnbHlwaHMgY29ycmVzcG9uZCB0byB0aGUgc2FtcGxlcycgcmVsYXRpdmUKY292ZXJhZ2UuICBUaGlzIGlzIGEgZ3JlYXQgZGF0YXNldCB0byBpbGx1c3RyYXRlIHRoYXQgaWRlYS4KCmBgYHtyIG9sZF9uZXdfcGNhfQphbGxfYm90aF9ub3JtIDwtIHNtKG5vcm1hbGl6ZV9leHB0KGFsbF9ib3RoLCBub3JtPSJxdWFudCIsIGNvbnZlcnQ9ImNwbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPSJsb2cyIikpCnBsb3RfcGNhKGFsbF9ib3RoX25vcm0pJHBsb3QKYWxsX2JvdGhfbm9ybV9zdmEgPC0gbm9ybWFsaXplX2V4cHQoYWxsX2JvdGgsIG5vcm09InF1YW50IiwgY29udmVydD0iY3BtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPSJsb2cyIiwgYmF0Y2g9InN2YXNlcSIpCnBsb3RfcGNhKGFsbF9ib3RoX25vcm1fc3ZhKSRwbG90CmBgYAoKIyMgR2V0IERFIFRhYmxlcwoKRm9yIGVhY2ggZGF0YSBzZXQsIHBlcmZvcm0gdGhlIHd0IHZzLiBub3QgREUgYW5hbHlzaXMuICBQcmludCBzb21lIHBsb3RzIG9mIHRoZQpyZXN1bHRzIGxhdGVyLiAgTXkgYWxsX3BhaXJ3aXNlKCkgZnVuY3Rpb24gaXMgdmVyeSBjaGF0dHkuICBJIHdpbGwgbGV0IGl0IHRhbGsKZm9yIHRoZSBmaXJzdCBydW4sIGJ1dCB0aGVuIHN0b3AgaXQgZm9yIHRoZSBsYXRlci4KCiMjIyBBbGwgaGFwbG90eXBlcwoKYGBge3IgYWxsX2RlX2FuYWx5c2VzLCBmaWcuc2hvdz0iaGlkZSJ9CmtlZXBlcnMgPC0gbGlzdCgKICAia29fdnNfd3QiID0gYygidW5rbm93biIsICJ3dCIpKQoKYWxsX2hpc2F0X2RlIDwtIGFsbF9wYWlyd2lzZShhbGxfbmV3X2hpc2F0LCBtb2RlbF9iYXRjaD1GQUxTRSwgZG9fZWJzZXE9VFJVRSkKCmFsbF9oaXNhdF90YWJsZXMgPC0gY29tYmluZV9kZV90YWJsZXMoCiAgYWxsX2hpc2F0X2RlLAogIGtlZXBlcnM9a2VlcGVycywKICBleGNlbD1wYXN0ZTAoImV4Y2VsL2FsbF9oaXNhdF90YWJsZXMtdiIsIHZlciwgIi54bHN4IikpCiMjIEl0IGlzIHNvIHdlaXJkIHRoYXQgbGltbWEvZGVzZXEvZWRnZXIgZG8gbm90IGFncmVlIGZvciB0aGlzIGRhdGEsCiMjIHRoaXMgc2hvdWxkIGJlIGxvb2tlZCBpbnRvIGZ1cnRoZXIuIEFoaCwgbG9va2luZyBhdCB0aGUgYWxsX25ld190YWJsZXMueGxzeCBmaWxlLAojIyBJIHRoaW5rIEkgc2VlIHRoZSBhbnN3ZXIuICBUaGUgcGFpcndpc2Vfc3VtbWFyeSB3b3Jrc2hlZXQgc2hvd3MgdGhhdCB0aGUgbG9nRkMgdmFsdWVzCiMjIGFyZSB2ZXJ5IHNpbWlsYXIsIGJ1dCB0aGUgcGxvdHMgb2YgcC12YWx1ZXMgdG8gdGhlIHJpZ2h0IG9mIHRoZSB0YWJsZSBzaG93CiMjIHNpZ25pZmljYW50bHkgZGlmZmVyZW50IHRocmVzaG9sZHMgb2YgJ3NpZ25pZmljYW50LicKCiMjIGV4dHJhY3Rfc2lnbmlmaWNhbnRfZ2VuZXMoKSB0YWxrcyB0b28gbXVjaCwgSSBhbSBzaWxlbmNpbmcgaXQgaW4gYWxsIGludm9jYXRpb25zLgphbGxfaGlzYXRfc2lnIDwtIHNtKGV4dHJhY3Rfc2lnbmlmaWNhbnRfZ2VuZXMoCiAgYWxsX2hpc2F0X3RhYmxlcywKICBleGNlbD1wYXN0ZTAoImV4Y2VsL2FsbF9oaXNhdF9zaWduaWZpY2FudC12IiwgdmVyLCAiLnhsc3giKSkpCgphbGxfc2FsbW9uX2RlIDwtIHNtKGFsbF9wYWlyd2lzZShhbGxfbmV3X3NhbG1vbiwgbW9kZWxfYmF0Y2g9RkFMU0UsIGRvX2Vic2VxPVRSVUUpKQoKYWxsX3NhbG1vbl90YWJsZXMgPC0gc20oY29tYmluZV9kZV90YWJsZXMoCiAgYWxsX3NhbG1vbl9kZSwKICBrZWVwZXJzPWtlZXBlcnMsCiAgZXhjZWw9cGFzdGUwKCJleGNlbC9hbGxfc2FsbW9uX3RhYmxlcy12IiwgdmVyLCAiLnhsc3giKSkpCmFsbF9zYWxtb25fc2lnIDwtIHNtKGV4dHJhY3Rfc2lnbmlmaWNhbnRfZ2VuZXMoCiAgYWxsX3NhbG1vbl90YWJsZXMsCiAgZXhjZWw9cGFzdGUwKCJleGNlbC9hbGxfc2FsbW9uX3NpZ25pZmljYW50LXYiLCB2ZXIsICIueGxzeCIpKSkKCnNhbG1vbl90YWJsZSA8LSBhbGxfc2FsbW9uX3RhYmxlc1tbImRhdGEiXV1bWzFdXQpoaXNhdF90YWJsZSA8LSBhbGxfaGlzYXRfdGFibGVzW1siZGF0YSJdXVtbMV1dCnJvd25hbWVzKGhpc2F0X3RhYmxlKSA8LSBnc3ViKHBhdHRlcm49Il5leG9uXyIsIHJlcGxhY2VtZW50PSIiLCB4PXJvd25hbWVzKGhpc2F0X3RhYmxlKSkKcm93bmFtZXMoaGlzYXRfdGFibGUpIDwtIGdzdWIocGF0dGVybj0iXFwuMSQiLCByZXBsYWNlbWVudD0iIiwgeD1yb3duYW1lcyhoaXNhdF90YWJsZSkpCm1lcmdlZF90YWJsZSA8LSBtZXJnZShzYWxtb25fdGFibGUsIGhpc2F0X3RhYmxlLCBieT0icm93Lm5hbWVzIikKY29yLnRlc3QobWVyZ2VkX3RhYmxlW1sibGltbWFfbG9nZmMueCJdXSwgbWVyZ2VkX3RhYmxlW1sibGltbWFfbG9nZmMueSJdXSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KG1lcmdlZF90YWJsZVtbImRlc2VxX2xvZ2ZjLngiXV0sIG1lcmdlZF90YWJsZVtbImRlc2VxX2xvZ2ZjLnkiXV0sIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChtZXJnZWRfdGFibGVbWyJlZGdlcl9sb2dmYy54Il1dLCBtZXJnZWRfdGFibGVbWyJlZGdlcl9sb2dmYy55Il1dLCBtZXRob2Q9InNwZWFybWFuIikKIyMgaG9seSBjcmFwIEkgdXR0ZXJseSBleHBlY3RlZCB0aGVzZSB0byBiZSBtdWNoIGhpZ2hlciwgaW4gb3RoZXIgZGF0YSBzZXRzIHRoZXkgd2VyZSA+PSAwLjk4Lgp0ZXN0IDwtIHBsb3RfbGluZWFyX3NjYXR0ZXIobWVyZ2VkX3RhYmxlWywgYygiZGVzZXFfbG9nZmMueCIsICJkZXNlcV9sb2dmYy55IildKQp0ZXN0W1sic2NhdHRlciJdXQpgYGAKCiMjIyBFc21lcmFsZG8KCmBgYHtyIGVzbWVyX2RlX2FuYWx5c2VzLCBmaWcuc2hvdz0iaGlkZSJ9CmVzbWVyX25ld19kZSA8LSBzbShhbGxfcGFpcndpc2UoZXNtZXJfbmV3LCBtb2RlbF9iYXRjaD1GQUxTRSwgZG9fZWJzZXE9VFJVRSkpCmVzbWVyX25ld190YWJsZXMgPC0gc20oY29tYmluZV9kZV90YWJsZXMoCiAgZXNtZXJfbmV3X2RlLAogIGtlZXBlcnM9a2VlcGVycywKICBleGNlbD1wYXN0ZTAoImV4Y2VsL2VzbWVyX25ld190YWJsZXMtdiIsIHZlciwgIi54bHN4IikpKQplc21lcl9uZXdfc2lnIDwtIHNtKGV4dHJhY3Rfc2lnbmlmaWNhbnRfZ2VuZXMoCiAgZXNtZXJfbmV3X3RhYmxlcywKICBleGNlbD1wYXN0ZTAoImV4Y2VsL2VzbWVyX25ld19zaWduaWZpY2FudC12IiwgdmVyLCAiLnhsc3giKSkpCmBgYAoKIyMjIE5vbi1Fc21lcmFsZG8KCmBgYHtyIG5vbmVzbWVyX2RlX2FuYWx5c2VzLCBmaWcuc2hvdz0iaGlkZSJ9Cm5vbmVzbWVyX25ld19kZSA8LSBzbShhbGxfcGFpcndpc2Uobm9uZXNtZXJfbmV3LCBtb2RlbF9iYXRjaD1GQUxTRSwgZG9fZWJzZXE9VFJVRSkpCm5vbmVzbWVyX25ld190YWJsZXMgPC0gc20oY29tYmluZV9kZV90YWJsZXMoCiAgbm9uZXNtZXJfbmV3X2RlLAogIGtlZXBlcnM9a2VlcGVycywKICBleGNlbD1wYXN0ZTAoImV4Y2VsL25vbmVzbWVyX25ld190YWJsZXMtdiIsIHZlciwgIi54bHN4IikpKQpub25lc21lcl9uZXdfc2lnIDwtIHNtKGV4dHJhY3Rfc2lnbmlmaWNhbnRfZ2VuZXMoCiAgbm9uZXNtZXJfbmV3X3RhYmxlcywKICBleGNlbD1wYXN0ZTAoImV4Y2VsL25vbmVzbWVyX25ld19zaWduaWZpY2FudC12IiwgdmVyLCAiLnhsc3giKSkpCmBgYAoKIyMgQ29tcGFyZSBFc21lcmFsZG8gYW5kIE5vbi1Fc21lcmFsZG8KCmBgYHtyIGVzbWVyX25vbl9jb21wYXJlfQpsaWJyYXJ5KEV1UGF0aERCKQpsaWJyYXJ5KGVzbWVyX25hbWVzJG9yZ2RiLCBjaGFyYWN0ZXI9VFJVRSkKbGlicmFyeShub25lc21lcl9uYW1lcyRvcmdkYiwgY2hhcmFjdGVyPVRSVUUpCmxpYnJhcnkodW5hc19uYW1lcyRvcmdkYiwgY2hhcmFjdGVyPVRSVUUpCmVzbWVyX2RiIDwtIGdldDAoZXNtZXJfbmFtZXMkb3JnZGIpCm5vbmVzbWVyX2RiIDwtIGdldDAobm9uZXNtZXJfbmFtZXMkb3JnZGIpCgplc21lcl9vcnRob3MgPC0gbG9hZF9vcmdkYl9nbygKICBlc21lcl9kYiwKICBjb2x1bW5zPWMoIm9ydGhvbG9nc19nZW5lX2lkIiwgIm9ydGhvbG9nc19naWQiLCAib3J0aG9sb2dzX29yZ2FuaXNtIiwgIm9ydGhvbG9nc19wcm9kdWN0IikpCgpub25lc21lcl9pZHggPC0gZ3JlcGwoeD1lc21lcl9vcnRob3NbWyJPUlRIT0xPR1NfT1JHQU5JU00iXV0sIHBhdHRlcm49Ik5vbiIpCm5vbmVzbWVyX3RhYmxlIDwtIGVzbWVyX29ydGhvc1tub25lc21lcl9pZHgsIF0KYGBgCgojIFZhcmlhbnQgcG9zaXRpb25zCgpgYGB7ciB2YXJpYW50c30Kc25wX2NvbmRfZXhwdCA8LSBjb3VudF9leHB0X3NucHMoYWxsX25ld19oaXNhdCwgdHlwZT0icGVyY2VudCIpCnNucF9udW1iZXJzIDwtIHBsb3RfbGlic2l6ZShzbnBfY29uZF9leHB0KQpzbnBfbnVtYmVycyRwbG90CgpzbnBfY29uZF9zZXRzIDwtIGdldF9zbnBfc2V0cyhzbnBfY29uZF9leHB0LCBmYWN0b3I9ImNvbmRpdGlvbiIpCgpzbnBfY29uZF9zdW1tYXJ5IDwtIHNucHNfdnNfZ2VuZXMoYWxsX25ld19oaXNhdCwgc25wX2NvbmRfc2V0cykKc25wX2NvbmRfZ2VuZXMgPC0gc25wc192c19pbnRlcnNlY3Rpb25zKGFsbF9uZXdfaGlzYXQsIHNucF9jb25kX3NldHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNocl9jb2x1bW49ImNocm9tb3NvbWUiKQoKc25wX25vcm0gPC0gbm9ybWFsaXplX2V4cHQoc25wX2NvbmRfZXhwdCwgZmlsdGVyPVRSVUUsIHRyYW5zZm9ybT0ibG9nMiIpCnRlc3QgPC0gcGxvdF9jb3JoZWF0KHNucF9ub3JtKQp0ZXN0MiA8LSBwbG90X3NhbXBsZV9oZWF0bWFwKHNucF9ub3JtLCBSb3d2PUZBTFNFKQoKZGVzIDwtIHNucF9ub3JtJGRlc2lnbgpsaWJyYXJ5KEhlYXRwbHVzKQojI2htY29scyA8LSBjb2xvclJhbXBQYWxldHRlKGMoInllbGxvdyIsImJsYWNrIiwiZGFya2JsdWUiKSkoMjU2KQpjb3JyZWxhdGlvbnMgPC0gaHBnbF9kaXN0KGV4cHJzKHNucF9ub3JtKSkKbXlkZW5kcm8gPC0gbGlzdCgKICAiY2x1c3RmdW4iID0gaGNsdXN0LAogICJsd2QiID0gMi4wKQpjb2xfZGF0YSA8LSBhcy5kYXRhLmZyYW1lKGRlc1ssIGMoImNvbmRpdGlvbiIpXSkKcm93X2RhdGEgPC0gYXMuZGF0YS5mcmFtZShkZXNbLCBjKCJzYW1wbGVpZCIpXSkKY29sbmFtZXMoY29sX2RhdGEpIDwtIGMoImNvbmRpdGlvbiIpCmNvbG5hbWVzKHJvd19kYXRhKSA8LSBjKCJzYW1wbGVpZCIpCm15YW5ub3QgPC0gbGlzdCgKICAiQ29sIiA9IGxpc3QoImRhdGEiID0gY29sX2RhdGEpLAogICJSb3ciID0gbGlzdCgiZGF0YSIgPSByb3dfZGF0YSkpCm15Y2x1c3QgPC0gbGlzdCgiY3V0aCIgPSAxLjAsCiAgICAgICAgICAgICAgICAiY29sIiA9IEJyZXdlckNsdXN0ZXJDb2wpCm15bGFicyA8LSBsaXN0KAogICJSb3ciID0gbGlzdCgibnJvdyIgPSA0KSwKICAiQ29sIiA9IGxpc3QoIm5yb3ciID0gNCkpCmhtY29scyA8LSBjb2xvclJhbXBQYWxldHRlKGMoImRhcmtibHVlIiwgImJlaWdlIikpKDMzMykKbWFwMSA8LSBhbm5IZWF0bWFwMigKICBjb3JyZWxhdGlvbnMsCiAgZGVuZHJvZ3JhbT1teWRlbmRybywKICBhbm5vdGF0aW9uPW15YW5ub3QsCiAgY2x1c3Rlcj1teWNsdXN0LAogIGxhYmVscz1teWxhYnMsCiAgY29sPWhtY29scykKcGxvdChtYXAxKQpudW1fY2x1c3RlcnMgPC0gbWF4KG1hcDFbWyJjbHVzdGVyIl1dW1siUm93Il1dW1siZ3JwIl1dKQpjaG9zZW5fcGFsZXR0ZSA8LSAiRGFyazIiCm5ld19jb2xvcnMgPC0gZ3JEZXZpY2VzOjpjb2xvclJhbXBQYWxldHRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICBSQ29sb3JCcmV3ZXI6OmJyZXdlci5wYWwobnVtX2NsdXN0ZXJzLCBjaG9zZW5fcGFsZXR0ZSkpKG51bV9jbHVzdGVycykKbXljbHVzdCA8LSBsaXN0KCJjdXRoIiA9IDEuMCwKICAgICAgICAgICAgICAgICJjb2wiID0gbmV3X2NvbG9ycykKbWFwMiA8LSBhbm5IZWF0bWFwMigKICBjb3JyZWxhdGlvbnMsCiAgZGVuZHJvZ3JhbT1teWRlbmRybywKICBhbm5vdGF0aW9uPW15YW5ub3QsCiAgY2x1c3Rlcj1teWNsdXN0LAogIGxhYmVscz1teWxhYnMsCiAgc2NhbGU9Im5vbmUiLAogIGNvbD1obWNvbHMpCnBsb3QobWFwMikKYGBgCgoKCmBgYHtyIHNhdmVtZX0KaWYgKCFpc1RSVUUoZ2V0MCgic2tpcF9sb2FkIikpKSB7CiAgcGFuZGVyOjpwYW5kZXIoc2Vzc2lvbkluZm8oKSkKICBtZXNzYWdlKHBhc3RlMCgiVGhpcyBpcyBocGdsdG9vbHMgY29tbWl0OiAiLCBnZXRfZ2l0X2NvbW1pdCgpKSkKICBtZXNzYWdlKHBhc3RlMCgiU2F2aW5nIHRvICIsIHNhdmVmaWxlKSkKICB0bXAgPC0gc20oc2F2ZW1lKGZpbGVuYW1lPXNhdmVmaWxlKSkKfQpgYGAK