A Python Interface to Contact Predictions
ConKit is a Python library to provide a data object hierarchy and associated routine operations to work and manipulate residue-residue contact prediction data. Main features shipped with this library include:
For an overview of ConKit, watch this video.
[0.10.2]
[0.10.1]
[0.10]
Added
Cython added as dependency and SciPy removedconkit.misc.deprecate decorator for easier taggingContactMap.match provides keyword to add_false_negatives found in the reference but not in contact mapContactMap.remove_false_negatives allows convenient removal of false negativesContactMap.recall to calculate the recall of a contact mapSequenceFile.summary for quick alignment summariesA2mParser to read HH-suite A2M alignment filesClustalParser to read CLUSTAL formatted filesChanged
SequenceFile.calculate_freq backend changed from numpy to Cython for faster computationSequenceFile.calculate_weights backend changed from numpy to Cython for faster computationSequenceFile.filter backend changed from numpy to Cython for faster computationSequenceFile.filter_gapped backend changed from numpy to Cython for faster computationSequenceFile.calculate_weights renamed to SequenceFile.get_weightsSequenceFile.compute_freq renamed to SequenceFile.get_frequencyContactMap.singletons backend changed from numpy to Cython for faster computationBandwidth backend changed from numpy to Cython for faster computationContactMap.short_range_contacts renamed to ContactMap.short_rangeContactMap.medium_range_contacts renamed to ContactMap.medium_rangeContactMap.long_range_contacts renamed to ContactMap.long_rangeContactMap.calculate_scalar_score renamed to ContactMap.set_scalar_scoreContactMap.calculate_contact_density renamed to ContactMap.get_contact_densityContactMap.calculate_jaccard_index renamed to ContactMap.get_jaccard_indexContactMatchState provides options for true positive, true negative, false positive and false negative, which can be added to contacts in the map at willContact.is_match and Contact.define_match renamed to attribute Contact.true_positiveContact.is_mismatch and Contact.define_mismatch renamed to attribute Contact.false_positiveContact.is_unknown and Contact.define_unknown renamed to attribute Contact.status_unknownEntity, Gap and Residue classes made publicFixed
SequenceFile.filter to remove Sequence entries reliablyContactMapMatrixFigure when gap variable was less than 1Removed
[0.9]
Added
conkit.plot subpackage refactored to allow matplotlib access of Figure instances. This provides
functionality similar to seaborn, so matplotlib.Axes can be provided into which a plot is drawn.ContactMap.as_list function to represent the contact map as a 2D-list of residue indexesconkit.misc.normalize function to apply Feature scaling normalizationCONTRIB.rst file to list all contributorsSequenceFile.diversity property defined by \(\sqrt{N}/L\)ContactMap.reindex to reindex a contact map given a new starting indexContactMap.singletons returns a copy of the contact map with singleton contacts, i.e. ones without neighborsSequence.seq_encoded to allow turning a sequence into an encoded listSequence.encoded_matrix to give the entire alignment as encoded matrixSequenceFile.filter_gapped to filter sequences with a certain threshold of gapsSequenceFile.to_string and ContactMap.to_string methodsContactMapMatrixFigure added to illustrate prediction signal of entire ContactMapnebcon contact prediction formatChanged
conkit.plot in accordance to necessary changes for aboveContactMapFigure now accepts lim parameters for axes limitsContactMapFigure and ContacctMapChordFigure improved to better space marker sizeTHREE_TO_ONE and ONE_TO_THREE dictionaries modified to Enum objectsSequeneFile.neff renamed to SequenceFile.meffContactMapChordFigure.get_radius_around_circle moved to conkit.plot.tools.radius_around_circleAmiseBW.curvature renamed to AmiseBW.gauss_curvatureFixed
A3mParser keyword argument mismatch sorted[0.8.4]
Added
Entity.top property to always return the first child in the listContactMap.find function accepts strict keyword argument to find contact pairs with both residues in registerPdbParser takes a distance cutoff of 0 to include all Cb-Cb contacts in the protein structureContactMatchState enumerated type for definitions of state constants for contactSequenceAlignmentState enumerated type for definitions of state constants for each sequence fileNcontParser added to extract contact pairs identified by NCONT (CCP4 Software Suite)Changed
ContactMap.match does __not__ modifiy other by default anymore. Specify match_other=True as kwarg!ContactMap.calculate_kernel_density renamed to ContactMap.calculate_contact_densityContactDensityFigure draws domain boundary lines instead of symbols[0.8.3]
Added
requirements.txt file re-added for easier dependency installationLinearBW calculator added for linear bandwidth calculation in analysisseq_ascii property to Sequence for encoded sequenceascii_matrix property to SequenceFile for encoded alignmentSequenceFile and ContactFile classes have new empty propertiesflib format for ContactFile classes to allow easier conversions for the Flib-Coevo fragment picking libraryChanged
_BandwidthCalc class renamed to BandwidthBaseBandwidthBase, and Parser with all subparser classesconkit/io/__init__.py to avoid duplication of codeFixed
PconsParser class accepts negative raw_score valuesSequenceFile.neff returns float instead of intCCMpredParser.read() returns empty ContactFile when matrix file empty[0.8.2]
Added*
SequenceFile.filter() when SciPy not installedChanged
write() in parsers improved by construction of string and single call to write() of filehandleFixed
[0.8.1]
Changed
SystemExit(0) exception in scripts when invoked with --help flagFixed
[0.8]
Added
filter() function added for redundancy/distant homolog removal from SequenceFileio sub-package caches modules and imports upon requestChanged
calculate_meff() and calculate_weights() changed from 0.7 to 0.8 [more commonly used in literature]core classes extracted to individual module filesFixed
requirements.txt not found; fix includes removal of requirements.txt and addition of install_requires to setup.py instead. - Thanks to Miguel Correa for reporting this bug