Tuesday, 16 April 2013

Second BUDAPEST paper published

A second paper using BUDAPEST, "Responses of the Emiliania huxleyi proteome to ocean acidification" came out on Friday. An overview can be found in a University of Southampton press release, Marine algae show resilience to carbon dioxide emissions.
A type of marine algae could become bigger as increasing carbon dioxide emissions are absorbed by the oceans, according to research led by scientists based at the National Oceanography Centre, Southampton (NOCS). The study, published this month in PLoS ONE, investigated how a strain of the coccolithophore Emiliania huxleyi might respond if all fossil fuels are burned by the year 2100 – predicted to drive up atmospheric CO2 levels to over four times the present day.
You can read the rest of the press release here.

There are some additional images and a video in a UC Santa Barbara press release, which gives a good summary of the science in the study.


Bethan M. Jones, M. Debora Iglesias-Rodriguez, Paul J. Skipp, Richard J. Edwards, Mervyn J. Greaves, Jeremy R. Young, Henry Elderfield, C. David O’Connor (2013) Responses of the Emiliania huxleyi proteome to ocean acidification. PLoS ONE, dx.plos.org/10.1371/journal.pone.0061868.

Saturday, 13 April 2013

New Software Release

New releases of SeqSuite, SLiMSuite and RJESuite are now available.

Updates since last release:

• budapest: Updated from Version 2.0.
→ Version 2.1: Improved handling of iTRAQ data using rje_mascot V1.2.

• comparimotif_V3: Updated from Version 3.8.
→ Version 3.8: Changed scoring of overlapping ambiguities - uses IC of all possible ambiguities. Added "Ugly" match type.
→ Version 3.9: Added xgformat=T/F : Whether to use default CompariMotif formatting or leave blank for e.g. Cytoscape [True]

• happi: Updated from Version 1.1.
→ Version 1.2: Added addclass and refined output for Host-Pathogen PPI analysis.

• pingu: Updated from Version 3.7.
→ Version 3.8: Hopefully fixed issue of Fasta file generation log output writing to wrong log file.

• qslimfinder: Updated from Version 1.4.
→ Version 1.4: Added qexact=T/F option for calculating Exact Query motif space (True) or estimating from dimers (False).
→ Version 1.5: Implemented SigV calculation. Modified extras setting.

• seqmapper: Updated from Version 1.2.
→ Version 2.0: Reworked with new Object format, new BLAST(+) module and new seqlist module.

• slimbench: Updated from Version 1.5.
→ Version 1.6: Added "simonly" to datatype - calculates both SN and FPR from "sim" data (ignores "ran") to check query bias.
→ Version 1.7: Added Benchmarking of ELM datasets without queries.
→ Version 1.8: Added Benchmarking dataset generation from PPI data and 3DID.

• slimfinder: Updated from Version 4.4.
→ Version 4.5: Minor modifications to fix sigV and sigPrime bugs. Modified extras setting. Added palindrome setting for DNA motifs.

• file_monster: Updated from Version 1.6.
→ Version 2.0: Major reworking with new object making use of rje_db tables etc. Old functions to be ported with time.

• rje_dbase: Updated from Version 2.2.
→ Version 2.3: Added construction of EnsEMBL TaxaDB sets during TaxaDB construction.

• rje_seqgen: Updated from Version 1.6.
→ Version 1.7: Modified/fixed ESTgen function to work for protein sequences.

• ned_rankbydistribution: Updated from Version 1.0.

• rje: Updated from Version 4.4.
→ Version 4.5: Modified randomString() and added stringShuffle() methods.

• rje_blast_V1: Created.
→ Version 0.0: Initial Working Compilation.
→ Version 0.1: No Out Object in Objects
→ Version 1.0: Corrected to work with blastn (and blastp)
→ Version 1.1: Added special calling for Cerberus
→ Version 1.2: Added GABLAM and GABLAMO to BlastHit
→ Version 1.3: Added GABLAM calculation upon reading BLAST results and clearing Alignment sequences to save memory
→ Version 1.4: Tidied up the module with improved logging and progress reporting. Added dbCleanup.
→ Version 1.5: Added checking for multiple hits with same name and modified BLAST_Run.hitToSeq()
→ Version 1.6: Added nucleotide vs protein searches to GABLAM
→ Version 1.7: Added nucleotide vs nucleotide searches to GABLAM
→ Version 1.8: Added local alignment summary output to ReadBLAST()
→ Version 1.9: Added BLAST -C
→ Version 1.10: Added BLAST -g
→ Version 1.11: Added gablamfrag=X : Length of gaps between mapped residue for fragmenting local hits [100]
→ Version 1.12: Altered checkDB and cleanupDB to spot index files split over multiple files (*.00.p* etc.)
→ Version 1.13: Added localcut=X : Cut-off length for local alignments contributing to global GABLAM stats) [0]
→ Version 1.14: Added blast.checkProg(qtype,stype) to check whether blastp setting matches sequence formats.

• rje_blast_V2: Created.
→ Version 2.0: Initial Compilation from rje_blast_V1 V1.14.

• rje_db: Updated from Version 0.3.
→ Version 0.4: Improved use of AutoID and added Table.autoID() method.

• rje_ensembl: Updated from Version 2.8.
→ Version 2.9: Reduced DNA chromosome downloads. Updated some species data. Added "known_by_projection" handling.

• rje_genbank: Updated from Version 0.2.
→ Version 0.3: Added reloading of features.

• rje_hmm_V1: Created.
→ Version 0.0: Initial Working Compilation.
→ Version 1.0: Working version with multiple HMM capacity
→ Version 1.1: Added hmmpfam option
→ Version 1.2: Cleaned up and debugged for rje_ensembl.ensDat()

• rje_hmm_V2: Created.
→ Version 2.0: Initial HMMER3.0 version based on Version 1.2 and RJE_BLAST 2.0.

• rje_markov: Updated from Version 2.1.

• rje_mascot: Updated from Version 1.0.
→ Version 1.1: Fixed bugs for reading in data with unmatched peptides and iTRAQ data.
→ Version 1.2: Added

• rje_menu: Updated from Version 0.2.
→ Version 0.3: Modified to work with new object types.

• rje_ppi: Updated from Version 2.5.
→ Version 2.6: Added addPPI(hub,spoke,evidence) method. Added nodelist option.
→ Version 2.7: Added tabout=T/F Output PPI data as Node and Edge tables [False]

• rje_seqlist: Updated from Version 1.1.
→ Version 1.2: Added seqshuffle option for randomising sequences.

• rje_uniprot: Updated from Version 3.12.
→ Version 3.13: Minor bug fix for link table output.

• rje_xref: Created.
→ Version 0.0: Initial Compilation.

Friday, 29 March 2013

QSLiMFinder at Cold Spring Habor Laboratory "Systems Biology: Networks" 2013

This month saw another successful "Systems Biology: Networks" meeting held at Cold Spring Habor Laboratory, New York. SLiMSuite was well represented with two posters, which you can now view online if you like:

1. Palopoli N & Edwards RJ. Improved computational prediction of Short Linear Motifs using specific protein-protein interaction data.
Short Linear Motifs (SLiMs) are short segments of proteins that mediate numerous domain-motif interactions (DMI). In spite of the crucial role that they play in many biological pathways, their features and diversity remain understudied. The limited size and degenerate nature of SLiMs hinder their identification by pure de novo prediction methods, which must deal with a very large motif search space entirely determined by the parameters used to build the motifs.

The most successful methods are built on an explicit model of convergent evolution for detecting over-represented motifs in unrelated proteins that share a common attribute. We have previously presented SLiMFinder[1] which accounts for the motif search space to statistically model the probability of observing a given prediction by chance. SLiMFinder greatly benefits from the incorporation of prior knowledge that reduces the sequence search space and increases sensitivity.

More recently we have extended the standard algorithm to develop QSLiMFinder, a query-focused method of SLiM discovery. In QSLiMFinder the search space is not built from the whole set of proteins but rather from one specific query protein or region thereof. By only looking at all putative motifs in the query that may be shared by the rest, the motif space is significantly reduced and the sensitivity is increased. Moreover, DMI data can be used to focus on a specific query region rather than in the complete protein. A major plus of QSLiMFinder is its ability to incorporate this information from three-dimensional structures of interacting proteins, like those in the database of 3D Interaction Domains (3DID)[2] or as predicted from structural data[3].

A thorough comparative benchmark of the SLiMFinder and QSLiMFinder performances on datasets of known motifs has confirmed that the latter typically returns motifs with higher significance and produces more results that are enriched against expectation. As expected, QSLiMFinder improves sensitivity by ‘zooming-in’ in the region of interest and paves the way to mine interaction data for novel SLiMs.
1. Edwards RJ, Davey NE, Shields DC. (2007) SLiMFinder: a probabilistic method for identifying over-represented, convergently evolved, short linear motifs in proteins. PLoS One; 2(10):e967.
2. Stein A, Ceol A, Aloy P. (2011) 3did: identification and classification of domain-based interactions of known three-dimensional structure. Nucleic Acids Res; 39:D718-723.
3. Stein A, Aloy P. (2010) Novel peptide-mediated interactions derived from high-resolution 3-dimensional structures. PLoS Comput Biol. 6(5):e1000789.

2. Edwards RJ & Palopoli N. Computational prediction of short linear motifs mediating host-pathogen protein-protein interactions.
Short Linear Motifs (SLiMs) are short functional protein sequences that act as ligands to mediate transient protein-protein interactions (PPI) in critical biological pathways and signaling networks. SLiMs are short (3-15aa), generally tolerate considerable sequence variation and typically have fewer than five residues critical for function. These features result in a degree of evolutionary plasticity not seen in domains and SLiMs often add new functions to proteins by convergent evolution. This is particularly prevalent in viruses, which often exploit SLiMs to manipulate the molecular machinery of host cells[1].

In recent years, the numbers of tools and algorithms for SLiM discovery has increased dramatically. Of these, SLiMFinder[2], which exploits a statistical model of convergent evolution to predict novel over-represented motifs with high specificity, repeatedly performs well in comparative studies. The size and degeneracy of SLiMs presents a challenge for computational identification, making it difficult to differentiate biological signal from stochastic patterns. SLiMs generally occur in structurally disordered regions of proteins and exhibit evolutionary conservation relative to other disordered residues, which can be exploited by SLiMFinder to reduce the sequence search space and improve predictions. We have recently developed QSLiMFinder (“Query SLiMFinder”), an extended version of the algorithm that can incorporate specific interaction data to restrict the motif search space and improve both the sensitivity and biological relevance of predictions. Whereas SLiMFinder can ask the general question of which motifs are enriched in a set of proteins that interact with a common partner[3], QSLiMFinder can specifically ask which of the motifs present in a viral protein are enriched in the set of host proteins that interact with the same host partner. By applying this to combined interactomes of host-host and host-pathogen PPI, it should be possible to identify novel candidates for viral mimicry of host SLiMs.

1. Davey NE, TravĂ© G, Gibson TJ (2011) How viruses hijack cell regulation. Trends Biochem. Sci. 36 (3): 159–69.
2. Edwards RJ, Davey NE, Shields DC. (2007) SLiMFinder: a probabilistic method for identifying over-represented, convergently evolved, short linear motifs in proteins. PLoS One; 2(10):e967.
3. Edwards RJ, Davey NE, O'Brien K & Shields DC (2012): Interactome-wide prediction of short, disordered protein interaction motifs in humans. Molecular Biosystems 8: 282-95.

Friday, 21 December 2012

New SLiMSuite, SeqSuite and RJESuite downloads available

Just in time for Christmas, new releases of all the downloads are available at the Edwards Lab software page. Documentation is still lagging behind but will hopefully catch up (along with a bit of an overhaul of this blog). Questions welcome in the meantime.

In addition to QSLiMFinder 1.4, the biggest change this release is probably the upgrade of GOPHER. Version 3.x features improved organisation of output files for queries from different species in addition to a capacity to have several different multiple alignment programs run on the same orthologue sets. See the website for more info.

Updates since last release:

• gopher: Created.
→ Version 3.0: See archived GOPHER 1.9 and gopher_V2 2.9 for history and obselete options.
→ Version 3.0: Added organise=T/F and gopherdir=PATH for improved file organisation. Tightened savespace.
→ Version 3.0: Added compfilter=T/F for improved complexity filter and composition statistics control for *initial* BLAST.
→ Version 3.0: Changed default tree extension to *.nwk for compatibility with MEGA. Deleted _phosAlign() method.
→ Version 3.0: Added orthology ID option and alignment program to customise output further.
→ Version 3.1: Added full reciprocal best hit method. (fullrbh=T/F)

• gopher_V2: Updated from Version 2.8.
→ Version 2.9: Deleted oldStigg() method. Added simple Reciprocal Best Hit orthology prediction.

• qslimfinder: Updated from Version 1.2.
→ Version 1.3: Updated the output for Max/Min filtering and the pickup options.
→ Version 1.4: Added additional dictionary and list to store Query dimers and SLiMs for motif space calculations.
→ Version 1.4: Added qexact=T/F option for calculating Exact Query motif space (True) or estimating from dimers (False).

• slimfinder: Updated from Version 4.2.
→ Version 4.3: Updated the output for Max/Min filtering and the pickup options. Removed TempMaxSetting.
→ Version 4.4: Modified to work with GOPHER V3.0.

• rje: Updated from Version 4.3.
→ Version 4.4: Added lineFromIndex(target,file,re_index='^(\S+)\s',sortunique=False,xreplace=True).

• rje_seq: Updated from Version 3.13.
→ Version 3.14: Added CLUSTAL Omega alignment program ['clustalo']
→ Version 3.15: Added PAGAN alignment program ['pagan'] and (hopefully) fixed minor Windows fastacmd bug.

• rje_sequence: Updated from Version 2.1.
→ Version 2.2: Added more yeast species.

• rje_slimcalc: Updated from Version 0.4.
→ Version 0.5: Altered to use GOPHER V3 and handle nested alignment directories.

• rje_slimlist: Updated from Version 1.0.
→ Version 1.1: Modified to work with GOPHER V3.0 for alignments.

Wednesday, 28 November 2012

QSLiMFinder 1.4: quicker and more efficient - available on request

The on-going benchmarking of QSLiMFinder has thrown up a couple of discoveries to date. The first is that, reassuringly, it appears to work. (More on this another time.) The second is that it is slow. Or, at least, it was slow.

Thankfully, the cause of its surprisingly slow performance (compared to SLiMFinder) has been tracked down and fixed. At the same time, a (related) potential memory issue with large query sequences has also been sorted out.

The underlying problem is unlikely to have had a large effect on the SLiM prediction itself, although this is currently under investigation. The last release of SLiMSuite was only last week and, as QSLiMFinder is not officially published and released yet, I will not be compiling a new download immediately to take advantage of the improvements. The revised code is available on request if anyone is using QSLiMFinder.

Saturday, 24 November 2012

New SLiMSuite, SeqSuite and RJESuite releases are now available

New releases of SLiMSuite, SeqSuite and RJESuite are now available from the Edwards Lab software page.

Please note that the documentation (particularly the manuals) are still lagging a bit behind, so do report anything that does not make sense. The default settings also need to be verified as there is a chance that some of these may have inadvertently changed over the years. (The same core code is now used for the webservers, which often have different defaults.) Checking these along with updating and checking the servers themselves are ongoing priorities.

A full list of updated modules is given below. As well as SLiMMaker now handling end of sequence characters, the biggest changes this release are updates to CompariMotif to (3.7) output unmatched input motifs and (3.8) improve handling of partially overlapping ambiguous positions (e.g. [AGS] and [ST]). The motivation behind both these changes is the ongoing benchmarking (and preparation for publication) of QSLiMFinder and the creation of SLiMBench for benchmarking motif prediction methods. A QSLiMFinder section has been added to the SLiMFinder Manual (section 5.4). SLiMBench is still a work in progress and will be documented in a later release.

Updates since last release:

• comparimotif_V3: Updated from Version 3.6.
→ Version 3.7: Added coreIC and output of unmatched motifs.
→ Version 3.8: Added overlaps=T/F : Whether to include overlapping ambiguities (e.g. [KR] vs [HK]) as match [True]
→ Version 3.8: Changed scoring of overlapping ambiguities - uses IC of all possible ambiguities. Added "Ugly" match type.

• slimbench: Created.
→ Version 0.0: Initial Compilation.
→ Version 0.1: Functional version with benchmarking dataset generation.
→ Version 1.0: Consolidation of "working" version with additional basic benchmarking analysis.
→ Version 1.1: Added simulated dataset construction and benchmarking.
→ Version 1.2: Added MinIC filtering to benchmark assessment. Sorted beginning/end of line for reduced ELMs.
→ Version 1.3: Made SimCount a list rather than Integer. Sorted CompariMotif assessment issue.
→ Version 1.4: Added ICCut and SLiMLenCut as lists and output columns.
→ Version 1.5: Added Summary Results output table. Removed PropRes.

• slimmaker: Updated from Version 1.0.
→ Version 1.1: Modified to work with end of line characters.

• slimsearch: Updated from Version 1.5.
→ Version 1.6: Minor tweaks to Log output. Add option for UPC number in occ output.

• rje: Updated from Version 4.1.
→ Version 4.2: Modified INI reading across the board to look in ../settings/ and look for defaults.ini as well as rje.ini.
→ Version 4.2: Enabled handing on -ini FILE in addition to ini=FILE.
→ Version 4.3: Added ilist and nlist types to cmdRead for objects. (Lists of integers and floats). Add ratio() function.

• rje_blast: Updated from Version 1.13.
→ Version 1.14: Added blast.checkProg(qtype,stype) to check whether blastp setting matches sequence formats.

• rje_db: Created.
→ Version 0.0: Initial Compilation.
→ Version 0.1: Added merge tables option.
→ Version 0.2: Miscellaneous updates to various methods.
→ Version 0.3: Minor doc tweaks and added keepFields().

• rje_seq: Updated from Version 3.12.
→ Version 3.13: Updated sequence type checking for use with GABLAM 2.10.

• rje_seqlist: Created.
→ Version 0.0: Initial Compilation. Based on rje_seq 3.10.
→ Version 0.1: Added basic species filtering and sequence output.
→ Version 0.2: Added upper case filtering.
→ Version 0.3: Added accnum filtering and sequence renaming.
→ Version 0.4: Added sequence redundancy filtering.
→ Version 0.5: Added newgene=X for sequence renaming (newgene_spcode__newaccXXX). NewAcc no longer fixed Upper Case.
→ Version 1.0: Upgraded to "ready" Version 1.0. Added concatenate=T and split=X options for sequence concatenation.
→ Version 1.0: Added reading of sequence type from rje_seq.py and mixed=T/F.
→ Version 1.1: Added shortName() and modified SeqDict.

• rje_sequence: Updated from Version 2.0.
→ Version 2.1: Added re_unirefprot = re.compile('^([A-Za-z0-9\-]+)\s+([A-Za-z0-9]+)_([A-Za-z0-9]+)\s+')

• rje_slim: Updated from Version 1.5.
→ Version 1.6: Fixed splitting bug introduced by lower case motifs.

• rje_slimcore: Updated from Version 1.8.
→ Version 1.9: Minor modifications to Log output. Updated motifSeq() function to output unmasked sequences.

• rje_slimlist: Updated from Version 0.6.
→ Version 1.0: Functional module with lower case motif splitting fixed and ? -> .{0,1} replacement.

• rje_zen: Updated from Version 1.0.
→ Version 1.1: Added a few more words here and there.

Saturday, 17 November 2012

Using SLiMFinder to discover "local motifs" in protein sequences

The makers of the highly successful MEME Suite have another tool out:
DLocalMotif: A discriminative approach for discovering local motifs in protein sequences
I've not had a chance to go over it in detail but it looks like it could be pretty useful, especially for subcellular targeting motifs. There is one thing that rankles me slightly, though. They define a "local motif" as
"patterns in DNA or protein sequences that occur in a short sequence interval relative to a sequence anchor or landmark."
They then go on to say:
"We believe that DLocalMotif is the only tool for discovering local motifs in protein sequences."
This is just a quick post to point out that SLiMFinder will happily find "local motifs" in protein sequences using the start and end of the sequence as an anchor or landmark. I think it is more limited than DLocalMotif as it is restricted to SLiMs that are very proximal to the sequence termini but it features the usual SLiMChance probability calculations and corrections for evolutionary relationships. (Even without restricting to searches relative to anchor points, SLiMFinder is very successful at finding the KDEL motif and C-terminal PDZ ligand motifs.) The max distance from the termini can be set by maxwild=X up to a limit of 9aa.

If you want to restrict yourself to just N- or C-terminal motifs, use the musthave=LIST option:
  • musthave="^" for N-terminal motifs.
  • musthave="$" for C-terminal motifs.
  • musthave="^,$" for both.
  • If you want to anchor the motifs internally, this can be done too with a bit of imagination. Just insert an non-standard amino acid character (e.g. Z) at the anchor position, set the expanded alphabet using alphabet=LIST and then force the motif to have the new symbol using musthave=X, e.g.:
    alphabet="A,C,D,E,F,G,H,I,K,L,M,N,P,Q,R,S,T,V,W,Y,Z" musthave=Z
    I must confess that I have never tried this but it should work and I am happy to help iron out any wrinkles.

    You can also use position-specific or case masking to restrict motif analysis to certain regions of input proteins. This is probably even better than simply constraining the motif location, as it will reduce the sequence search space rather than the motif search space.

    (BTW, SLiMFinder also has an experimental feature for using a negative dataset (negatives=FILE if anyone wants to try it out.)