Package: jcvi
JCVI utility librariesCollection of Python libraries to parse bioinformatics files, or perform
computation related to assembly, annotation, and comparative genomics.AuthorsHaibao Tang (tanghaibao)Vivek Krishnakumar (vivekkrish)Jingping Li (Jingping)Xingtan Zhang (tangerzhang)Emailtanghaibao@gmail.comLicenseBSDCitationsIf you use the MCscan pipeline for synteny inference, please cite:Tang et al. (2008) Synteny and Collinearity in Plant Genomes.ScienceIf you use the ALLMAPS pipeline for genome scaffolding, please cite:Tang et al. (2015) ALLMAPS: robust scaffold ordering based on multiple maps.Genome BiologyFor other uses, please cite the package directly:Tang et al. (2015). jcvi: JCVI utility libraries. Zenodo.10.5281/zenodo.31631ContentsFollowing modules are available as generic Bioinformatics handling
methods.algorithmsLinear programming solver with SCIP and GLPK.Supermap: find set of non-overlapping anchors in BLAST or NUCMER output.Longest or heaviest increasing subsequence.Matrix operations.appsGenBank entrez accession, Phytozome, Ensembl and SRA downloader.Calculate (non)synonymous substitution rate between gene pairs.Basic phylogenetic tree construction using PHYLIP, PhyML, or RAxML, and viualization.Wrapper for BLAST+, LASTZ, LAST, BWA, BOWTIE2, CLC, CDHIT, CAP3, etc.formatsCurrently supports.aceformat (phrap, cap3, etc.),.agp(goldenpath),.bedformat,.blastoutput,.btabformat,.coordsformat (nucmeroutput),.fastaformat,.fastqformat,.fpcformat,.gffformat,oboformat (ontology),.pslformat (UCSC blat, GMAP, etc.),.posmapformat (Celera
assembler output),.samformat (read mapping),.contigformat (TIGR assembly format), etc.graphicsBLAST or synteny dot plot.Histogram using R and ASCII art.Paint regions on set of chromosomes.Macro-synteny and micro-synteny plots.utilsGrouper can be used as disjoint set data structure.range contains common range operations, like overlap
and chaining.Miscellaneous cookbook recipes, iterators decorators,
table utilities.Then there are modules that contain domain-specific methods.assemblyK-mer histogram analysis.Preparation and validation of tiling path for clone-based assemblies.Scaffolding through ALLMAPS, optical map and genetic map.Pre-assembly and post-assembly QC procedures.annotationTraining ofab initiogene predictors.Calculate gene, exon and intron statistics.Wrapper for PASA and EVM.Launch multiple MAKER processes.comparaC-score based BLAST filter.Synteny scan (de-novo) and lift over (find nearby anchors).Ancestral genome reconstruction using Sankoff's and PAR method.Ortholog and tandem gene duplicates finder.ApplicationsPlease visitwikifor
full-fledged applications.DependenciesFollowing are a list of third-party python packages that are used by
some routines in the library. These dependencies arenotmandatory
since they are only used by a few modules.BiopythonnumpymatplotlibThere are other Python modules here and there in various scripts. The
best way is to install them viapip installwhen you seeImportError.InstallationThe easiest way is to install it via PyPI:pip install jcviTo install the development version:pip install git+git://github.com/tanghaibao/jcvi.gitAlternatively, if you want to install manually:cd ~/code  # or any directory of your choicegit clone git://github.com/tanghaibao/jcvi.gitpip install -e .In addition, a few module might ask for locations of external programs,
if the extended cannot be found in yourPATH. The external programs
that are often used are:Kent toolsBEDTOOLSEMBOSSMost of the scripts in this package contains multiple actions. To use
thefastaexample:Usage:python -m jcvi.formats.fasta ACTIONAvailable ACTIONs:clean | Remove irregular chars in FASTA seqsdiff | Check if two fasta records contain same informationextract | Given fasta file and seq id, retrieve the sequence in fasta formatfastq | Combine fasta and qual to create fastq filefilter | Filter the records by sizeformat | Trim accession id to the first space or switch id based on 2-column mapping filefromtab | Convert 2-column sequence file to FASTA formatgaps | Print out a list of gap sizes within sequencesgc | Plot G+C content distributionidentical | Given 2 fasta files, find all exactly identical recordsids | Generate a list of headersinfo | Run `sequence_info` on fasta filesispcr | Reformat paired primers into isPcr query formatjoin | Concatenate a list of seqs and add gaps in betweenlongestorf | Find longest orf for CDS fastapair | Sort paired reads to .pairs, rest to .fragmentspairinplace | Starting from fragment.fasta, find if adjacent records can form pairspool | Pool a bunch of fastafiles together and add prefixqual | Generate dummy .qual file based on FASTA filerandom | Randomly take some recordssequin | Generate a gapped fasta file for sequin submissionsimulate | Simulate random fasta file for testingsome | Include or exclude a list of records (also performs on .qual file if available)sort | Sort the records by IDs, sizes, etc.summary | Report the real no of bases and N's in fasta filestidy | Normalize gap sizes and remove small components in fastatranslate | Translate CDS to proteinstrim | Given a cross_match screened fasta, trim the sequencetrimsplit | Split sequences at lower-cased lettersuniq | Remove records that are the sameThen you need to use one action, you can just do:python -m jcvi.formats.fasta extractThis will tell you the options and arguments it expects.Feel free to check out other scripts in the package, it is not just
for FASTA.Star History