biopipen 0.17.6__tar.gz → 0.18.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of biopipen might be problematic. Click here for more details.
- {biopipen-0.17.6 → biopipen-0.18.0}/PKG-INFO +8 -8
- biopipen-0.18.0/biopipen/__init__.py +1 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/core/filters.py +36 -23
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/delim.py +1 -1
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/scrna.py +132 -49
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/tcr.py +62 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/scrna/MarkersFinder.svelte +30 -8
- biopipen-0.18.0/biopipen/reports/scrna/SeuratClusterStats.svelte +82 -0
- biopipen-0.18.0/biopipen/reports/tcr/TESSA.svelte +43 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/delim/SampleInfo.R +18 -15
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/MarkersFinder.R +58 -2
- biopipen-0.18.0/biopipen/scripts/scrna/SeuratClusterStats-dimplots.R +40 -0
- biopipen-0.18.0/biopipen/scripts/scrna/SeuratClusterStats-features.R +236 -0
- biopipen-0.18.0/biopipen/scripts/scrna/SeuratClusterStats-stats.R +105 -0
- biopipen-0.18.0/biopipen/scripts/scrna/SeuratClusterStats.R +21 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/SeuratClustering.R +20 -1
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/ImmunarchLoading.R +1 -1
- biopipen-0.18.0/biopipen/scripts/tcr/TESSA.R +198 -0
- biopipen-0.18.0/biopipen/scripts/tcr/TESSA_source/Atchley_factors.csv +21 -0
- biopipen-0.18.0/biopipen/scripts/tcr/TESSA_source/BriseisEncoder.py +168 -0
- biopipen-0.18.0/biopipen/scripts/tcr/TESSA_source/MCMC_control.R +71 -0
- biopipen-0.18.0/biopipen/scripts/tcr/TESSA_source/TrainedEncoder.h5 +0 -0
- biopipen-0.18.0/biopipen/scripts/tcr/TESSA_source/fixed_b.csv +31 -0
- biopipen-0.18.0/biopipen/scripts/tcr/TESSA_source/initialization.R +120 -0
- biopipen-0.18.0/biopipen/scripts/tcr/TESSA_source/post_analysis.R +124 -0
- biopipen-0.18.0/biopipen/scripts/tcr/TESSA_source/real_data.R +67 -0
- biopipen-0.18.0/biopipen/scripts/tcr/TESSA_source/update.R +195 -0
- biopipen-0.18.0/biopipen/scripts/tcr/TESSA_source/utility.R +18 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/pyproject.toml +9 -9
- {biopipen-0.17.6 → biopipen-0.18.0}/setup.py +9 -8
- biopipen-0.17.6/biopipen/__init__.py +0 -1
- biopipen-0.17.6/biopipen/reports/scrna/SeuratClusterStats.svelte +0 -127
- biopipen-0.17.6/biopipen/scripts/scrna/SeuratClusterStats.R +0 -535
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/core/__init__.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/core/config.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/core/config.toml +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/core/defaults.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/core/proc.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/core/testing.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/__init__.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/bam.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/bcftools.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/bed.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/cnv.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/cnvkit.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/cnvkit_pipeline.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/gene.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/gsea.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/misc.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/plot.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/rnaseq.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/scrna_basic.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/scrna_metabolic_landscape.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/tcgamaf.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/vcf.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/ns/web.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/bam/CNAClinic.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/bam/CNVpytor.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/bam/ControlFREEC.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/cnv/AneuploidyScore.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/cnv/AneuploidyScoreSummary.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/cnv/TMADScoreSummary.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/cnvkit/CNVkitDiagram.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/cnvkit/CNVkitHeatmap.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/cnvkit/CNVkitScatter.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/delim/SampleInfo.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/gsea/FGSEA.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/gsea/GSEA.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/scrna/CellsDistribution.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/scrna/DimPlots.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/scrna/GeneExpressionInvistigation.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/scrna/MetaMarkers.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/scrna/RadarPlots.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/scrna/ScFGSEA.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/scrna/SeuratMap2Ref.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/scrna/SeuratPreparing.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/scrna/TopExpressingGenes.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/scrna_metabolic_landscape/MetabolicFeatures.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/scrna_metabolic_landscape/MetabolicFeaturesIntraSubset.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/scrna_metabolic_landscape/MetabolicPathwayActivity.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/scrna_metabolic_landscape/MetabolicPathwayHeterogeneity.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/tcr/CDR3AAPhyschem.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/tcr/CloneResidency.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/tcr/Immunarch.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/tcr/SampleDiversity.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/tcr/TCRClusteringStats.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/tcr/VJUsage.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/utils/gsea.liq +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/utils/misc.liq +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/vcf/TruvariBenchSummary.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/reports/vcf/TruvariConsistency.svelte +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/bam/BamMerge.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/bam/BamSplitChroms.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/bam/CNAClinic.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/bam/CNVpytor.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/bam/ControlFREEC.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/bcftools/BcftoolsAnnotate.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/bcftools/BcftoolsFilter.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/bcftools/BcftoolsSort.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/bed/Bed2Vcf.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/bed/BedConsensus.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/bed/BedLiftOver.sh +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/bed/BedtoolsMerge.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnv/AneuploidyScore.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnv/AneuploidyScoreSummary.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnv/TMADScore.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnv/TMADScoreSummary.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnvkit/CNVkitAccess.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnvkit/CNVkitAutobin.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnvkit/CNVkitBatch.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnvkit/CNVkitCall.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnvkit/CNVkitCoverage.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnvkit/CNVkitDiagram.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnvkit/CNVkitFix.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnvkit/CNVkitGuessBaits.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnvkit/CNVkitHeatmap.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnvkit/CNVkitReference.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnvkit/CNVkitScatter.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnvkit/CNVkitSegment.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/cnvkit/guess_baits.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/delim/RowsBinder.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/gene/GeneNameConversion.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/gsea/Enrichr.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/gsea/FGSEA.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/gsea/GSEA.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/gsea/PreRank.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/misc/Config2File.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/misc/Str2File.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/plot/Heatmap.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/plot/VennDiagram.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/rnaseq/UnitConversion.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/CellTypeAnnotation-direct.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/CellTypeAnnotation-hitype.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/CellTypeAnnotation-sccatch.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/CellTypeAnnotation-sctype.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/CellTypeAnnotation.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/CellsDistribution.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/DimPlots.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/ExprImpution-alra.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/ExprImpution-rmagic.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/ExprImpution-scimpute.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/ExprImpution.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/GeneExpressionInvistigation.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/MetaMarkers.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/ModuleScoreCalculator.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/RadarPlots.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/SCImpute.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/ScFGSEA.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/SeuratFilter.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/SeuratLoading.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/SeuratMap2Ref.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/SeuratMetadataMutater.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/SeuratPreparing.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/SeuratSplit.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/SeuratSubset.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/Subset10X.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/TopExpressingGenes.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/Write10X.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna/sctype.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna_metabolic_landscape/MetabolicFeatures.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna_metabolic_landscape/MetabolicFeaturesIntraSubset.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna_metabolic_landscape/MetabolicPathwayActivity.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/scrna_metabolic_landscape/MetabolicPathwayHeterogeneity.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcgamaf/Maf2Vcf.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcgamaf/MafAddChr.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcgamaf/maf2vcf.pl +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/Attach2Seurat.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/CDR3AAPhyschem.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/CloneResidency.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/CloneSizeQQPlot.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/GIANA/GIANA.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/GIANA/GIANA4.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/GIANA/Imgt_Human_TRBV.fasta +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/GIANA/query.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/Immunarch-basic.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/Immunarch-clonality.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/Immunarch-diversity.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/Immunarch-geneusage.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/Immunarch-kmer.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/Immunarch-overlap.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/Immunarch-spectratyping.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/Immunarch-tracking.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/Immunarch.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/Immunarch2VDJtools.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/ImmunarchFilter.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/ImmunarchSplitIdents.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/SampleDiversity.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/TCRClustering.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/TCRClusteringStats.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/VJUsage.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/tcr/vdjtools-patch.sh +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/vcf/TruvariBench.sh +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/vcf/TruvariBenchSummary.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/vcf/TruvariConsistency.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/vcf/Vcf2Bed.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/vcf/VcfAnno.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/vcf/VcfDownSample.sh +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/vcf/VcfFilter.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/vcf/VcfFix.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/vcf/VcfFix_utils.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/vcf/VcfIndex.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/vcf/VcfIntersect.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/vcf/VcfLiftOver.sh +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/vcf/VcfSplitSamples.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/web/Download.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/scripts/web/DownloadList.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/utils/__init__.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/utils/gene.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/utils/gene.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/utils/gsea.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/utils/io.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/utils/misc.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/utils/misc.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/utils/mutate_helpers.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/utils/plot.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/utils/reference.py +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/utils/rnaseq.R +0 -0
- {biopipen-0.17.6 → biopipen-0.18.0}/biopipen/utils/vcf.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: biopipen
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.18.0
|
|
4
4
|
Summary: Bioinformatics processes/pipelines that can be run from `pipen run`
|
|
5
5
|
License: MIT
|
|
6
6
|
Author: pwwang
|
|
@@ -13,10 +13,10 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.10
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.11
|
|
15
15
|
Provides-Extra: runinfo
|
|
16
|
-
Requires-Dist: datar[pandas] (>=0.
|
|
17
|
-
Requires-Dist: pipen (>=0.
|
|
18
|
-
Requires-Dist: pipen-board[report] (>=0.
|
|
19
|
-
Requires-Dist: pipen-cli-run (>=0.
|
|
20
|
-
Requires-Dist: pipen-filters (>=0.
|
|
21
|
-
Requires-Dist: pipen-runinfo (>=0.
|
|
22
|
-
Requires-Dist: pipen-verbose (>=0.
|
|
16
|
+
Requires-Dist: datar[pandas] (>=0.15.2,<0.16.0)
|
|
17
|
+
Requires-Dist: pipen (>=0.11,<0.12)
|
|
18
|
+
Requires-Dist: pipen-board[report] (>=0.12,<0.13)
|
|
19
|
+
Requires-Dist: pipen-cli-run (>=0.10,<0.11)
|
|
20
|
+
Requires-Dist: pipen-filters (>=0.9,<0.10)
|
|
21
|
+
Requires-Dist: pipen-runinfo (>=0.3,<0.4) ; extra == "runinfo"
|
|
22
|
+
Requires-Dist: pipen-verbose (>=0.8,<0.9)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.18.0"
|
|
@@ -107,6 +107,8 @@ def r(
|
|
|
107
107
|
ignoreintkey: bool = True,
|
|
108
108
|
todot: str = None,
|
|
109
109
|
sortkeys: bool = False,
|
|
110
|
+
skip: int = 0,
|
|
111
|
+
_i: int = 0,
|
|
110
112
|
) -> str:
|
|
111
113
|
"""Convert a python object into R repr
|
|
112
114
|
|
|
@@ -117,6 +119,7 @@ def r(
|
|
|
117
119
|
>>> {"a": 1, "b": 2} -> list(a = 1, b = 2)
|
|
118
120
|
|
|
119
121
|
Args:
|
|
122
|
+
obj: The object to convert
|
|
120
123
|
ignoreintkey: When keys of a dict are integers, whether we should
|
|
121
124
|
ignore them. For example, when `True`, `{1: 1, 2: 2}` will be
|
|
122
125
|
translated into `"list(1, 2)"`, but `"list(`1` = 1, `2` = 2)"`
|
|
@@ -130,6 +133,10 @@ def r(
|
|
|
130
133
|
But sometimes, you want to keep orginal order, for example,
|
|
131
134
|
arguments passed the `dplyr::mutate` function. Because the later
|
|
132
135
|
arguments can refer to the earlier ones.
|
|
136
|
+
skip: Levels to skip for `todot`. For example, `skip=1` will skip
|
|
137
|
+
the first level of the keys. When `todot` is `"-"`, `skip=1` will
|
|
138
|
+
convert `{"a-b": {"c-d": 1}}` to ``list(`a-b` = list(`c.d` = 1))``
|
|
139
|
+
_i: Current level of the keys. Used internally
|
|
133
140
|
|
|
134
141
|
Returns:
|
|
135
142
|
Then converted string representation of the object
|
|
@@ -165,31 +172,37 @@ def r(
|
|
|
165
172
|
wrapper = "c"
|
|
166
173
|
return "{}({})".format(
|
|
167
174
|
wrapper,
|
|
168
|
-
",".join(
|
|
175
|
+
", ".join(
|
|
176
|
+
[r(i, ignoreintkey, todot, sortkeys, skip, _i + 1) for i in obj]
|
|
177
|
+
),
|
|
169
178
|
)
|
|
170
179
|
if isinstance(obj, dict):
|
|
171
180
|
# list allow repeated names
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
181
|
+
items = []
|
|
182
|
+
keys = obj.keys()
|
|
183
|
+
if sortkeys:
|
|
184
|
+
keys = sorted(keys)
|
|
185
|
+
for k in keys:
|
|
186
|
+
v = obj[k]
|
|
187
|
+
if isinstance(k, int) and not ignoreintkey:
|
|
188
|
+
item = (
|
|
189
|
+
f"`{k}`={r(v, ignoreintkey, todot, sortkeys, skip, _i + 1)}"
|
|
190
|
+
)
|
|
191
|
+
elif isinstance(k, int) and ignoreintkey:
|
|
192
|
+
item = r(v, ignoreintkey, todot, sortkeys, skip, _i + 1)
|
|
193
|
+
else:
|
|
194
|
+
key = str(k)
|
|
195
|
+
if todot and _i >= skip:
|
|
196
|
+
key = key.replace(todot, ".")
|
|
197
|
+
item = (
|
|
198
|
+
f"`{key}`="
|
|
199
|
+
f"{r(v, ignoreintkey, todot, sortkeys, skip, _i + 1)}"
|
|
200
|
+
)
|
|
201
|
+
items.append(item)
|
|
202
|
+
|
|
203
|
+
return f"list({', '.join(items)})"
|
|
204
|
+
|
|
193
205
|
if isinstance(obj, Namespace):
|
|
194
|
-
return r(vars(obj), ignoreintkey, todot, sortkeys)
|
|
206
|
+
return r(vars(obj), ignoreintkey, todot, sortkeys, skip, _i)
|
|
207
|
+
|
|
195
208
|
return repr(obj)
|
|
@@ -82,7 +82,7 @@ class SampleInfo(Proc):
|
|
|
82
82
|
- on: The column name in the data for the stats.
|
|
83
83
|
Default is `Sample`.
|
|
84
84
|
If there are duplicated values in `on`, and you want to do stats
|
|
85
|
-
on the unique values, you can use `distinct:` prefix.
|
|
85
|
+
on the unique values, you can use `distinct:`/`unique:` prefix.
|
|
86
86
|
For example, `distinct:Patient` will keep only the first
|
|
87
87
|
duplicated value in `Patient` and do stats on the unique values.
|
|
88
88
|
- group: The column name in the data for the group ids.
|
|
@@ -253,50 +253,88 @@ class SeuratClusterStats(Proc):
|
|
|
253
253
|
outdir: The output directory
|
|
254
254
|
|
|
255
255
|
Envs:
|
|
256
|
+
stats_defaults (ns): The default parameters for `stats`.
|
|
257
|
+
The parameters from the cases can overwrite the default parameters.
|
|
258
|
+
- frac (flag): Whether to output the fraction of cells instead of number.
|
|
259
|
+
- pie (flag): Also output a pie chart?
|
|
260
|
+
- table (flag): Whether to output a table (in tab-delimited format) and in the report.
|
|
261
|
+
- ident: The column name in metadata to use as the identity.
|
|
262
|
+
- group-by: The column name in metadata to group the cells.
|
|
263
|
+
Does NOT support for pie charts.
|
|
264
|
+
- split-by: The column name in metadata to split the cells into
|
|
265
|
+
different plots.
|
|
266
|
+
- subset: An expression to subset the cells, will be passed to
|
|
267
|
+
`dplyr::filter()` on metadata.
|
|
268
|
+
- devpars (ns): The device parameters for the plots.
|
|
269
|
+
- res (type=int): The resolution of the plots.
|
|
270
|
+
- height (type=int): The height of the plots.
|
|
271
|
+
- width (type=int): The width of the plots.
|
|
256
272
|
stats (type=json): The number/fraction of cells to plot.
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
`
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
273
|
+
Keys are the names of the plots and values are the dicts inherited from `env.stats_defaults`.
|
|
274
|
+
Here are some examples -
|
|
275
|
+
>>> {
|
|
276
|
+
>>> "nCells_All": {},
|
|
277
|
+
>>> "nCells_Sample": {"kind": "num", "group-by": "Sample"},
|
|
278
|
+
>>> "fracCells_Sample": {"kind": "frac", "group-by": "Sample"},
|
|
279
|
+
>>> }
|
|
280
|
+
features_defaults (ns): The default parameters for `features`.
|
|
281
|
+
- features: The features to plot.
|
|
282
|
+
It can be either a string with comma separated features, a list of features, a file path with `file://` prefix with features
|
|
283
|
+
(one per line), or an integer to use the top N features from `VariantFeatures(srtobj)`.
|
|
284
|
+
- ident: The column name in metadata to use as the identity.
|
|
285
|
+
- subset: An expression to subset the cells, will be passed to `tidyrseurat::filter()`.
|
|
286
|
+
- devpars (ns): The device parameters for the plots. Does not work for `table`.
|
|
287
|
+
- res (type=int): The resolution of the plots.
|
|
288
|
+
- height (type=int): The height of the plots.
|
|
289
|
+
- width (type=int): The width of the plots.
|
|
290
|
+
- plus: The extra elements to add to the `ggplot` object. Does not work for `table`.
|
|
291
|
+
- group-by: Group cells in different ways (for example, orig.ident). Works for `ridge`, `vln`, and `dot`.
|
|
292
|
+
It also works for `feature` as `shape.by` being passed to [`Seurat::FeaturePlot`](https://satijalab.org/seurat/reference/featureplot).
|
|
293
|
+
- split-by: The column name in metadata to split the cells into different plots.
|
|
294
|
+
It works for `vln`, `feature`, and `dot`.
|
|
295
|
+
- assay: The assay to use.
|
|
296
|
+
- slot: The slot to use.
|
|
297
|
+
- section: The section to put the plot in the report.
|
|
298
|
+
If not specified, the case title will be used.
|
|
299
|
+
- ncol: The number of columns for the plots.
|
|
300
|
+
- kind (choice): The kind of the plot or table.
|
|
301
|
+
- ridge: Use `Seurat::RidgePlot`.
|
|
302
|
+
- ridgeplot: Same as `ridge`.
|
|
303
|
+
- vln: Use `Seurat::VlnPlot`.
|
|
304
|
+
- vlnplot: Same as `vln`.
|
|
305
|
+
- violin: Same as `vln`.
|
|
306
|
+
- violinplot: Same as `vln`.
|
|
307
|
+
- feature: Use `Seurat::FeaturePlot`.
|
|
308
|
+
- featureplot: Same as `feature`.
|
|
309
|
+
- dot: Use `Seurat::DotPlot`.
|
|
310
|
+
- dotplot: Same as `dot`.
|
|
311
|
+
- heatmap: Use `Seurat::DoHeatmap`.
|
|
312
|
+
You can specify `average=True` to plot on the average of the expressions.
|
|
313
|
+
- table: The table for the features, only gene expressions are supported.
|
|
314
|
+
(supported keys: ident, subset, and features).
|
|
315
|
+
features (type=json): The plots for features, include gene expressions, and columns from metadata.
|
|
316
|
+
Keys are the titles of the cases and values are the dicts inherited from `env.features_defaults`. It can also have other parameters from
|
|
317
|
+
each Seurat function used by `kind`. Note that for argument name with `.`, you should use `-` instead.
|
|
318
|
+
dimplots_defaults (ns): The default parameters for `dimplots`.
|
|
319
|
+
- ident: The column name in metadata to use as the identity.
|
|
320
|
+
- group-by: Same as `ident`. How the points are colored.
|
|
321
|
+
- split-by: The column name in metadata to split the cells into different plots.
|
|
322
|
+
- shape-by: The column name in metadata to use as the shape.
|
|
323
|
+
- devpars (ns): The device parameters for the plots.
|
|
324
|
+
- res (type=int): The resolution of the plots.
|
|
325
|
+
- height (type=int): The height of the plots.
|
|
326
|
+
- width (type=int): The width of the plots.
|
|
327
|
+
- reduction (choice): Which dimensionality reduction to use.
|
|
328
|
+
- dim: Use `Seurat::DimPlot`.
|
|
329
|
+
First searches for `umap`, then `tsne`, then `pca`.
|
|
330
|
+
- auto: Same as `dim`
|
|
331
|
+
- umap: Use `Seurat::UMAPPlot`.
|
|
332
|
+
- tsne: Use `Seurat::TSNEPlot`.
|
|
333
|
+
- pca: Use `Seurat::PCAPlot`.
|
|
334
|
+
- <more>: See <https://satijalab.org/seurat/reference/dimplot>
|
|
293
335
|
dimplots (type=json): The dimensional reduction plots.
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
for the plots. `devpars` is a dictionary with keys `res`,
|
|
297
|
-
`height` and `width` to specify the resolution, height and
|
|
298
|
-
width of the plot. The hyphen (`-`) in the keys will be replaced
|
|
299
|
-
by `.`.
|
|
336
|
+
Keys are the titles of the plots and values are the dicts inherited from `env.dimplots_defaults`. It can also have other parameters from
|
|
337
|
+
[`Seurat::DimPlot`](https://satijalab.org/seurat/reference/dimplot).
|
|
300
338
|
|
|
301
339
|
Requires:
|
|
302
340
|
r-seurat:
|
|
@@ -306,17 +344,55 @@ class SeuratClusterStats(Proc):
|
|
|
306
344
|
output = "outdir:dir:{{in.srtobj | stem}}.cluster_stats"
|
|
307
345
|
lang = config.lang.rscript
|
|
308
346
|
envs = {
|
|
347
|
+
"stats_defaults": {
|
|
348
|
+
"frac": False,
|
|
349
|
+
"pie": False,
|
|
350
|
+
"table": False,
|
|
351
|
+
"ident": "seurat_clusters",
|
|
352
|
+
"group-by": None,
|
|
353
|
+
"split-by": None,
|
|
354
|
+
"subset": None,
|
|
355
|
+
"devpars": {"res": 100, "height": 800, "width": 1000},
|
|
356
|
+
},
|
|
309
357
|
"stats": {
|
|
310
|
-
"
|
|
311
|
-
|
|
312
|
-
|
|
358
|
+
"Number of cells in each cluster": {
|
|
359
|
+
"pie": True,
|
|
360
|
+
},
|
|
361
|
+
"Number of cells in each cluster by Sample": {
|
|
362
|
+
"group-by": "Sample",
|
|
363
|
+
"table": True,
|
|
364
|
+
"frac": True,
|
|
365
|
+
},
|
|
366
|
+
},
|
|
367
|
+
"features_defaults": {
|
|
368
|
+
"features": None,
|
|
369
|
+
"ident": "seurat_clusters",
|
|
370
|
+
"subset": None,
|
|
371
|
+
"devpars": {"res": 100},
|
|
372
|
+
"plus": None,
|
|
373
|
+
"group-by": None,
|
|
374
|
+
"split-by": None,
|
|
375
|
+
"assay": None,
|
|
376
|
+
"section": None,
|
|
377
|
+
"slot": None,
|
|
378
|
+
"kind": None,
|
|
379
|
+
"ncol": 2,
|
|
313
380
|
},
|
|
314
381
|
"features": {},
|
|
382
|
+
"dimplots_defaults": {
|
|
383
|
+
"ident": "seurat_clusters",
|
|
384
|
+
"group-by": None,
|
|
385
|
+
"split-by": None,
|
|
386
|
+
"shape-by": None,
|
|
387
|
+
"reduction": "dim",
|
|
388
|
+
"devpars": {"res": 100, "height": 800, "width": 1000},
|
|
389
|
+
},
|
|
315
390
|
"dimplots": {
|
|
316
|
-
"
|
|
317
|
-
"
|
|
318
|
-
"
|
|
319
|
-
|
|
391
|
+
"Dimensional reduction plot": {
|
|
392
|
+
"label": True,
|
|
393
|
+
"label-box": True,
|
|
394
|
+
"repel": True,
|
|
395
|
+
},
|
|
320
396
|
},
|
|
321
397
|
}
|
|
322
398
|
script = "file://../scripts/scrna/SeuratClusterStats.R"
|
|
@@ -691,6 +767,12 @@ class MarkersFinder(Proc):
|
|
|
691
767
|
`p_val_adj`. For example, `"p_val_adj < 0.05 & abs(avg_log2FC) > 1"`
|
|
692
768
|
to select markers with adjusted p-value < 0.05 and absolute log2
|
|
693
769
|
fold change > 1.
|
|
770
|
+
volcano_genes (type=auto): The genes to label in the volcano plot if they are
|
|
771
|
+
significant markers.
|
|
772
|
+
If `True`, all significant markers will be labeled. If `False`, no
|
|
773
|
+
genes will be labeled. Otherwise, specify the genes to label.
|
|
774
|
+
It could be either a string with comma separated genes, or a list
|
|
775
|
+
of genes.
|
|
694
776
|
section: The section name for the report.
|
|
695
777
|
Worked only when `each` is not specified and `ident-2` is specified.
|
|
696
778
|
Otherwise, the section name will be constructed from `each` and
|
|
@@ -728,6 +810,7 @@ class MarkersFinder(Proc):
|
|
|
728
810
|
"KEGG_2021_Human",
|
|
729
811
|
],
|
|
730
812
|
"sigmarkers": "p_val_adj < 0.05",
|
|
813
|
+
"volcano_genes": True,
|
|
731
814
|
"cases": {},
|
|
732
815
|
}
|
|
733
816
|
order = 5
|
|
@@ -1091,3 +1091,65 @@ class CDR3AAPhyschem(Proc):
|
|
|
1091
1091
|
}
|
|
1092
1092
|
script = "file://../scripts/tcr/CDR3AAPhyschem.R"
|
|
1093
1093
|
plugin_opts = {"report": "file://../reports/tcr/CDR3AAPhyschem.svelte"}
|
|
1094
|
+
|
|
1095
|
+
|
|
1096
|
+
class TESSA(Proc):
|
|
1097
|
+
"""Tessa is a Bayesian model to integrate T cell receptor (TCR) sequence
|
|
1098
|
+
profiling with transcriptomes of T cells.
|
|
1099
|
+
|
|
1100
|
+
See <https://github.com/jcao89757/TESSA>
|
|
1101
|
+
|
|
1102
|
+
Reference:
|
|
1103
|
+
- 'Mapping the Functional Landscape of TCR Repertoire.',
|
|
1104
|
+
Zhang, Z., Xiong, D., Wang, X. et al. 2021.
|
|
1105
|
+
- 'Deep learning-based prediction of the T cell receptor-antigen
|
|
1106
|
+
binding specificity.', Lu, T., Zhang, Z., Zhu, J. et al. 2021.
|
|
1107
|
+
|
|
1108
|
+
Input:
|
|
1109
|
+
immdata: The data loaded by `immunarch::repLoad()`, saved in RDS format
|
|
1110
|
+
srtobj: The `Seurat` object, saved in RDS format, with dimension
|
|
1111
|
+
reduction performed if you want to use them to represent the
|
|
1112
|
+
transcriptome of T cells.
|
|
1113
|
+
This could also be a tab delimited file (can be gzipped) with
|
|
1114
|
+
expression matrix or dimension reduction results.
|
|
1115
|
+
|
|
1116
|
+
Output:
|
|
1117
|
+
outfile: The tab-delimited file with three columns
|
|
1118
|
+
(`barcode`, `TESSA_Cluster` and `TESSA_Cluster_Size`) or
|
|
1119
|
+
an RDS file if `in.srtobj` is an RDS file of a Seurat object, with
|
|
1120
|
+
`TESSA_Cluster` and `TESSA_Cluster_Size` added to the `meta.data`
|
|
1121
|
+
|
|
1122
|
+
Envs:
|
|
1123
|
+
python: The path of python with `TESSA`'s dependencies installed
|
|
1124
|
+
prefix: The prefix to the barcodes of TCR data. You can use placeholder
|
|
1125
|
+
like `{Sample}_` to use the meta data from the immunarch object.
|
|
1126
|
+
within_sample (flag): Whether the TCR networks are constructed only
|
|
1127
|
+
within TCRs from the same sample/patient (True) or with all the
|
|
1128
|
+
TCRs in the meta data matrix (False).
|
|
1129
|
+
assay: Which assay to use to extract the expression matrix.
|
|
1130
|
+
Only works if `in.srtobj` is an RDS file of a Seurat object and
|
|
1131
|
+
`envs.reduction` is not provided.
|
|
1132
|
+
predefined_b (flag): Whether use the predefined `b` or not.
|
|
1133
|
+
Please check the paper of tessa for more details about the b vector.
|
|
1134
|
+
If True, the tessa will not update b in the MCMC iterations.
|
|
1135
|
+
max_iter (type=int): The maximum number of iterations for MCMC.
|
|
1136
|
+
"""
|
|
1137
|
+
input = "immdata:file,srtobj:file"
|
|
1138
|
+
output = """outfile:file:
|
|
1139
|
+
{%- if in.srtobj.lower().endswith(".rds") -%}
|
|
1140
|
+
{{in.srtobj | stem}}.tessa.RDS
|
|
1141
|
+
{%- else -%}
|
|
1142
|
+
{{in.immdata | stem}}.tessa.txt
|
|
1143
|
+
{%- endif -%}
|
|
1144
|
+
"""
|
|
1145
|
+
lang = config.lang.rscript
|
|
1146
|
+
envs = {
|
|
1147
|
+
"python": config.lang.python,
|
|
1148
|
+
"prefix": "{Sample}_",
|
|
1149
|
+
"assay": "RNA",
|
|
1150
|
+
"within_sample": False,
|
|
1151
|
+
"predefined_b": False,
|
|
1152
|
+
"max_iter": 1000,
|
|
1153
|
+
}
|
|
1154
|
+
script = "file://../scripts/tcr/TESSA.R"
|
|
1155
|
+
plugin_opts = {"report": "file://../reports/tcr/TESSA.svelte"}
|
|
@@ -25,10 +25,21 @@
|
|
|
25
25
|
/>
|
|
26
26
|
{%- else -%}
|
|
27
27
|
<h{{h+1}}>Markers</h{{h+1}}>
|
|
28
|
-
<
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
<Tabs>
|
|
29
|
+
<Tab label="Markers" />
|
|
30
|
+
<Tab label="Volcano Plot" />
|
|
31
|
+
<svelte:fragment slot="content">
|
|
32
|
+
<TabContent>
|
|
33
|
+
<DataTable
|
|
34
|
+
src={{ casedir | joinpaths: "markers.txt" | quote }}
|
|
35
|
+
data={ {{ casedir | joinpaths: "markers.txt" | datatable: sep="\t", nrows=100 }} }
|
|
36
|
+
/>
|
|
37
|
+
</TabContent>
|
|
38
|
+
<TabContent>
|
|
39
|
+
<Image src={{ casedir | joinpaths: "volcano.png" | quote }} />
|
|
40
|
+
</TabContent>
|
|
41
|
+
</svelte:fragment>
|
|
42
|
+
</Tabs>
|
|
32
43
|
|
|
33
44
|
<h{{h+1}}>Enrichment analysis</h{{h+1}}>
|
|
34
45
|
{{ enrichr_report(casedir) }}
|
|
@@ -49,10 +60,21 @@
|
|
|
49
60
|
/>
|
|
50
61
|
{%- else -%}
|
|
51
62
|
<h{{h+2}}>Markers</h{{h+2}}>
|
|
52
|
-
<
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
63
|
+
<Tabs>
|
|
64
|
+
<Tab label="Markers" />
|
|
65
|
+
<Tab label="Volcano Plot" />
|
|
66
|
+
<svelte:fragment slot="content">
|
|
67
|
+
<TabContent>
|
|
68
|
+
<DataTable
|
|
69
|
+
src={{ casedir | joinpaths: "markers.txt" | quote }}
|
|
70
|
+
data={ {{ casedir | joinpaths: "markers.txt" | datatable: sep="\t", nrows=100 }} }
|
|
71
|
+
/>
|
|
72
|
+
</TabContent>
|
|
73
|
+
<TabContent>
|
|
74
|
+
<Image src={{ casedir | joinpaths: "volcano.png" | quote }} />
|
|
75
|
+
</TabContent>
|
|
76
|
+
</svelte:fragment>
|
|
77
|
+
</Tabs>
|
|
56
78
|
|
|
57
79
|
<h{{h+2}}>Enrichment analysis</h{{h+2}}>
|
|
58
80
|
{{ enrichr_report(casedir) }}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{% from "utils/misc.liq" import report_jobs, table_of_images -%}
|
|
2
|
+
{% from_ os import path %}
|
|
3
|
+
<script>
|
|
4
|
+
import { DataTable, Image } from "$libs";
|
|
5
|
+
import { Tabs, Tab, TabContent } from "$ccs";
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
{%- macro report_job(job, h=1) -%}
|
|
9
|
+
{%- set stats_reports_file = job.out.outdir | joinpaths: "stats", "report_toc.json" -%}
|
|
10
|
+
{%- set features_reports_file = job.out.outdir | joinpaths: "features", "report_toc.json" -%}
|
|
11
|
+
{%- set dimplots_reports_file = job.out.outdir | joinpaths: "dimplots", "report_toc.json" -%}
|
|
12
|
+
|
|
13
|
+
{%- if stats_reports_file | exists -%}
|
|
14
|
+
{%- set stats = stats_reports_file | config: "json" -%}
|
|
15
|
+
{% for key, value in stats.items() -%}
|
|
16
|
+
<h{{h}}>{{key | escape}}</h{{h}}>
|
|
17
|
+
<Tabs>
|
|
18
|
+
{% if 'bar' in value -%}
|
|
19
|
+
<Tab label="Bar plot" />
|
|
20
|
+
{% endif -%}
|
|
21
|
+
{% if 'pie' in value -%}
|
|
22
|
+
<Tab label="Pie chart" />
|
|
23
|
+
{% endif -%}
|
|
24
|
+
{% if 'table' in value -%}
|
|
25
|
+
<Tab label="Table" />
|
|
26
|
+
{% endif -%}
|
|
27
|
+
<svelte:fragment slot="content">
|
|
28
|
+
{% if 'bar' in value -%}
|
|
29
|
+
<TabContent>
|
|
30
|
+
<Image src="{{job.out.outdir}}/stats/{{value.bar}}" />
|
|
31
|
+
</TabContent>
|
|
32
|
+
{% endif -%}
|
|
33
|
+
{% if 'pie' in value -%}
|
|
34
|
+
<TabContent>
|
|
35
|
+
<Image src="{{job.out.outdir}}/stats/{{value.pie}}" />
|
|
36
|
+
</TabContent>
|
|
37
|
+
{% endif -%}
|
|
38
|
+
{% if 'table' in value -%}
|
|
39
|
+
<TabContent>
|
|
40
|
+
<DataTable src="{{job.out.outdir}}/stats/{{value.table}}"
|
|
41
|
+
data={ {{job.out.outdir | joinpaths: "stats", value.table | datatable: sep="\t", nrows=100 }} }
|
|
42
|
+
/>
|
|
43
|
+
</TabContent>
|
|
44
|
+
{% endif -%}
|
|
45
|
+
</svelte:fragment>
|
|
46
|
+
</Tabs>
|
|
47
|
+
{%- endfor -%}
|
|
48
|
+
{%- endif -%}
|
|
49
|
+
|
|
50
|
+
{%- if features_reports_file | exists -%}
|
|
51
|
+
{%- set features = features_reports_file | config: "json" %}
|
|
52
|
+
{% for key, value in features.items() -%}
|
|
53
|
+
<h{{h}}>{{key | escape}}</h{{h}}>
|
|
54
|
+
{% for val in value -%}
|
|
55
|
+
{% if "name" in val -%}
|
|
56
|
+
<h{{h+1}}>{{val.name | escape}}</h{{h+1}}>
|
|
57
|
+
{%- endif -%}
|
|
58
|
+
{% if val.kind == "table" -%}
|
|
59
|
+
<DataTable src="{{job.out.outdir}}/features/{{val.file}}"
|
|
60
|
+
data={ {{job.out.outdir | joinpaths: "features", val.file | datatable: sep="\t", nrows=100 }} }
|
|
61
|
+
/>
|
|
62
|
+
{% else -%}
|
|
63
|
+
<Image src="{{job.out.outdir}}/features/{{val.file}}" />
|
|
64
|
+
{% endif -%}
|
|
65
|
+
{%- endfor -%}
|
|
66
|
+
{%- endfor -%}
|
|
67
|
+
{%- endif -%}
|
|
68
|
+
|
|
69
|
+
{%- if dimplots_reports_file | exists -%}
|
|
70
|
+
{%- set dimplots = dimplots_reports_file | config: "json" %}
|
|
71
|
+
{% for key, value in dimplots.items() -%}
|
|
72
|
+
<h{{h}}>{{key | escape}}</h{{h}}>
|
|
73
|
+
<Image src="{{job.out.outdir}}/dimplots/{{value}}" />
|
|
74
|
+
{%- endfor -%}
|
|
75
|
+
{%- endif -%}
|
|
76
|
+
{%- endmacro -%}
|
|
77
|
+
|
|
78
|
+
{%- macro head_job(job) -%}
|
|
79
|
+
<h1>{{job.in.srtobj | stem}}</h1>
|
|
80
|
+
{%- endmacro -%}
|
|
81
|
+
|
|
82
|
+
{{ report_jobs(jobs, head_job, report_job) }}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{% from "utils/misc.liq" import report_jobs, table_of_images -%}
|
|
2
|
+
<script>
|
|
3
|
+
import { Image, DataTable } from "$libs";
|
|
4
|
+
import { Tile } from "$ccs";
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<Tile>
|
|
8
|
+
<p><a href="https://github.com/jcao89757/TESSA" target="_blank">Tessa</a> is a Bayesian model to integrate T cell receptor (TCR) sequence profiling with transcriptomes of T cells. Enabled by the recently developed single cell sequencing techniques, which provide both TCR sequences and RNA sequences of each T cell concurrently, Tessa maps the functional landscape of the TCR repertoire, and generates insights into understanding human immune response to diseases. As the first part of tessa, BriseisEncoder is employed prior to the Bayesian algorithm to capture the TCR sequence features and create numerical embeddings. We showed that the reconstructed Atchley Factor matrices and CDR3 sequences, generated through the numerical embeddings, are highly similar to their original counterparts. The CDR3 peptide sequences are constructed via a RandomForest model applied on the reconstructed Atchley Factor matrices.</p>
|
|
9
|
+
|
|
10
|
+
<p>For more information, please refer to the following papers:</p>
|
|
11
|
+
<ul>
|
|
12
|
+
<li>- <a href="https://www.nature.com/articles/s41592-020-01020-3" target="_blank">Mapping the Functional Landscape of TCR Repertoire</a>, Zhang, Z., Xiong, D., Wang, X. et al. 2021.</li>
|
|
13
|
+
<li>- <a href="https://www.nature.com/articles/s42256-021-00383-2" target="_blank">Deep learning-based prediction of the T cell receptor–antigen binding specificity</a>, Lu, T., Zhang, Z., Zhu, J. et al. 2021.</li>
|
|
14
|
+
</ul>
|
|
15
|
+
</Tile>
|
|
16
|
+
<p> </p>
|
|
17
|
+
|
|
18
|
+
{%- macro report_job(job, h=1) -%}
|
|
19
|
+
{{ table_of_images(
|
|
20
|
+
[
|
|
21
|
+
joinpaths(job.outdir, "result", "Cluster_size_dist.png"),
|
|
22
|
+
joinpaths(job.outdir, "result", "clone_size.png"),
|
|
23
|
+
joinpaths(job.outdir, "result", "exp_TCR_pair_plot.png"),
|
|
24
|
+
joinpaths(job.outdir, "result", "TCR_dist_density.png"),
|
|
25
|
+
joinpaths(job.outdir, "result", "TCR_explore.png"),
|
|
26
|
+
joinpaths(job.outdir, "result", "TCR_explore_clusters.png"),
|
|
27
|
+
],
|
|
28
|
+
[
|
|
29
|
+
"TESSA cluster size distribution",
|
|
30
|
+
"Cluster center size vs. non-center cluster size",
|
|
31
|
+
"Expression-TCR distance plot",
|
|
32
|
+
"Density of TCR distances",
|
|
33
|
+
"Exploratory plot at the TCR level",
|
|
34
|
+
"TESSA clusters",
|
|
35
|
+
],
|
|
36
|
+
) }}
|
|
37
|
+
{%- endmacro -%}
|
|
38
|
+
|
|
39
|
+
{%- macro head_job(job) -%}
|
|
40
|
+
<h1>{{job.in.immdata | stem | escape}}</h1>
|
|
41
|
+
{%- endmacro -%}
|
|
42
|
+
|
|
43
|
+
{{ report_jobs(jobs, head_job, report_job) }}
|