Package: qcbc
qcbcqcbcis a python package to quality control synthetic barcode sequences for orthogonal sequencing-based assays such as:Perturb-SeqTAPSeq10x CRISPRCiteSeqClicktagMultiseq10x Feature BarcodingInstallationThe development version can be installed withpipinstallgit+https://github.com/pachterlab/qcbcUsageqcbcconsists of four subcommands:$ qcbc
usage: qcbc [-h] [--verbose] <CMD> ...

qcbc 0.0.0: Format sequence specification files

positional arguments:
  <CMD>
    volume     Compute max barcode volume
    ambiguous  Find ambiguous barcodes by ec
    pdist      Compute pairwise distance between barcodes
    content    Compute max barcode content
    homopolymer
               Compute homopolymer distributionBarcode files are expected to contain both the barcode sequence and a name associated with the barcode, separated by a tab. For example$ cat barcodes.txt
AGCAGTTACAG tag1
CTTGTACCCAG tag2

$ cat -t barcodes.txt 
CATGGAGGCG^Itag1
AGCAGTTACAG^Itag2Note thatcat -t file.txtconverts<tabs>into^Iand can be used to verify that the file is properly setup.qcbc ambiguous: find barcodes with shared subsequenceFind barcodes that share subsequences of a given length.qcbc ambiguous -l <length> <bc_file>optionally,-rccan be used to check the reverse complement of the subsequences.<length>corresponds to the subsequence length used to evaluate ambiguity between barcodes.<bc_file>corresponds to the barcode file.Examples# check ambiguous barcodes by subsequences of length 6$qcbcambiguous-l3barcodes.txt
CAGtag1,tag1,tag2
TACtag1,tag2qcbc content: compute base distributionCompute the base distribution within each barcode.qcbc content <bc_file>optionally, specify-- frequencyto return the base distribution fractionoptionally, specify--entropyto return the entropy of the base distribution fraction relative to the max entropy.<bc_file>corresponds to the barcode file.Examples$ qcbc content -e barcodes.txt
tag1	AGCAGTTACAG	0.67
tag2	CTTGTACCCAG	0.67qcbc homopolymer: compute homopolymer distributionFind the number of homopolymers of length two or greater.qcbc homopolymer <bc_file><bc_file>corresponds to the barcode file.Examples$ qcbc homopolymer barcodes.txt
tag1	AGCAGTTACAG	1,0,0,0,0,0,0,0,0,0
tag2	CTTGTACCCAG	1,1,0,0,0,0,0,0,0,0qcbc pdist: compute pairwise distanceCompute the pairwise hamming distance between barcodes.qcbc pdist <bc_file>optionally,-rccan be used to check the reverse complement of the subsequences.<bc_file>corresponds to the barcode file.Examples$ qcbc pdist barcodes.txt
AGCAGTTACAG	tag1	CTTGTACCCAG	tag2	8.0qcbc volume:  compute size of barcode spaceCompute the fraction of barcode space occupied by the given barcodes.qcbc volume <bc_file><bc_file>corresponds to the barcode file.Examples$  qcbc volume barcodes.txt
2 out of 4,194,304 possible unique barcodes representing 0.0000%ContributingThank you for wanting to improveqcbc. If you have a bug that is related toqcbcplease create an issue. The issue should containtheqcbccommand ran,the error message, andtheqcbcand python version.If you'd like to add assays sequence specifications or make modifications to theqcbctool please do the following:Fork the project.# Press "Fork" at the top right of the GitHub pageClone the fork and create a branch for your featuregitclonehttps://github.com/<USERNAME>/qcbc.gitcdqcbc
gitcheckout-bcool-new-featureMake changes, add files, and commit# make changes, add files, and commit themgitaddpath/to/file1.pypath/to/file2.py
gitcommit-m"I made these changes"Push changes to GitHubgitpushorigincool-new-featureSubmit a pull requestIf you are unfamilar with pull requests, you find more information on theGitHub help page.