Skip to content

Commit

Permalink
deploy: 362add4
Browse files Browse the repository at this point in the history
  • Loading branch information
cactuskid committed Apr 11, 2024
0 parents commit 4e69ba7
Show file tree
Hide file tree
Showing 248 changed files with 71,540 additions and 0 deletions.
Empty file added .nojekyll
Empty file.
4 changes: 4 additions & 0 deletions docs/.buildinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: f50760efaab9bfdde3bb0244d8299446
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file added docs/.doctrees/AFDBtool.doctree
Binary file not shown.
Binary file added docs/.doctrees/environment.pickle
Binary file not shown.
Binary file added docs/.doctrees/foldseek2tree.doctree
Binary file not shown.
Binary file added docs/.doctrees/index.doctree
Binary file not shown.
Binary file added docs/.doctrees/treeinspector.doctree
Binary file not shown.
Binary file added docs/.doctrees/treescore.doctree
Binary file not shown.
Empty file added docs/.nojekyll
Empty file.
236 changes: 236 additions & 0 deletions docs/AFDBtool.html

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions docs/_sources/AFDBtool.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@

AFDB tools
=====================

This module contains the utility functions for alpha fold db and uniprot.

.. automodule:: src.AFDB_tools
:members:
:undoc-members:
:show-inheritance:
10 changes: 10 additions & 0 deletions docs/_sources/foldseek2tree.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@

foldseek2tree
=====================

some docs from the function docstrings

.. automodule:: src.foldseek2tree
:members:
:undoc-members:
:show-inheritance:
127 changes: 127 additions & 0 deletions docs/_sources/index.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@

.. toctree::
:maxdepth: 2
:caption: Contents:

treeinspector
foldseek2tree
AFDBtool
treescore



Foldtree
=====================

This is the documentation for foldtree, it's a combination of some utility functions and a snakemake workflow to make trees from alphafold structures.

Installation
------------

To use foldtree, first install snakemake:
https://snakemake.readthedocs.io/en/stable/getting_started/installation.html


Now we can clone the repo and create a conda environment with the software need to run fold tree


.. code-block:: bash
$git clone [email protected]:DessimozLab/fold_tree.git
$cd cd fold_tree
$mamba create -n foldtree --file= ./workflow/config/fold_tree.yaml
$mamba activate foldtree
Now, we're ready to run the pipeline. For most users, using the fold_tree pipeline should be sufficient for their needs.
You can setup a fold_tree run by creating a folder for your output.


.. code-block:: bash
$mkdir myfam
Now we can either add an identifiers.txt file containing the uniprot identifiers of all of the proteins we would like to make a tree with.

.. code-block:: bash
$mkdir myfam
.. code-block:: bash
└── myfam
└── identifiers.txt
Or we can run the pipeline on our own set of structures. Please note that discontinuities or other defects in the PDBs may adversly affect results.
Let's make our structure directory and add some PDB files to it. In this case the identifiers file is blank.

.. code-block:: bash
└── myfam
├── identifiers.txt
└── structs
├── struct1.pdb
├── struct2.pdb
└── struct3.pdb
Now we're ready to build our trees. Let's run the pipeline.



Usage
-----

To run the snakemake workflow on the test dataset try using. You can change the folder variable to the location of your data.

.. code-block:: bash
$ snakemake --cores 4 --use-conda -s ./workflow/fold_tree --config folder=./testdata filter=False customstructs=False --use-conda
Or if you are using a slurm cluster you can use the slurm profile:

.. code-block:: bash
$ snakemake --cores 4 --use-conda -s ./workflow/fold_tree --config folder=./testdata filter=False customstructs=False --profile slurmsimple --use-conda
The fold_tree workflow will create a tree for each of the uniprot identifiers in the identifier.txt file in the input folder.

To use custom structures leave a blank identifier file and set the customstructs variable to True.

.. code-block:: bash
$ snakemake --cores 4 --use-conda -s ./workflow/fold_tree --config folder=./myfam filter=False customstructs=True --profile slurmsimple --use-conda
To use the foldtree utility functions in your own work first install the repo as a python library.

.. code-block:: bash
$ git clone
$ cd foldtree
$ pip install -e .
Then import the libraries in your script or notebooks

.. code-block:: python
from foldtree.src import foldseek2tree
from foldtree.src import AFDBtools
from foldtree.src import treescore
# use the functions somehow.
# comments/help are provided in the code
There are also examples of how to use the different functions in the notebooks in the notebooks folder.

Troubleshooting
---------------

If you encounter any issues while using My Project, please file a bug report on our GitHub repository: https://github.com/DessimozLab/fold_tree/issues


Credits
-------

This project was created by Dave Moi, Yannis Nevers and Charles Bernard at DessimozLab (DBC at the university of Lausanne).
17 changes: 17 additions & 0 deletions docs/_sources/treeinspector.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

Tree inspector
=====================

We made a web application that allows to explore phylogenetic trees we inferred for this paper.

The tree inspector associated to this work is based on the phylo.io tree viewer.
The 3 showcase trees are the ones that are used in the
foldtree manuscript. The trees used for benchmarking are also included and
are sorted into HOGs inferred to have appeared at different taxonomic levels.

Use the top navigation bar to switch between the different trees.

`> Go to Treeinspector <https://dessimozlab.github.io/fold_tree/dist/treeinspector.html>`_



23 changes: 23 additions & 0 deletions docs/_sources/treescore.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@

Treescore
=====================

The tree string module has a few functions that are useful for
scoring trees based on the taxonomic information in the tree.
Trees that are more taxonomically plausible will have higher scores.

The module uses the taxonomic information from uniprot to score trees
using a recursive algorithm. The algorithm is described in the
following paper:

Simple chained guide trees give poorer multiple sequence alignments than inferred trees in simulation and phylogenetic benchmarks
Tan G, Gil M, Löytynoja AP, Goldman N, Dessimoz C
Proc. Natl. Acad. Sci. U. S. A., 2015

https://pubmed.ncbi.nlm.nih.gov/25564672/

.. automodule:: src.treescore
:members:
:undoc-members:
:show-inheritance:

123 changes: 123 additions & 0 deletions docs/_static/_sphinx_javascript_frameworks_compat.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
/* Compatability shim for jQuery and underscores.js.
*
* Copyright Sphinx contributors
* Released under the two clause BSD licence
*/

/**
* small helper function to urldecode strings
*
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
*/
jQuery.urldecode = function(x) {
if (!x) {
return x
}
return decodeURIComponent(x.replace(/\+/g, ' '));
};

/**
* small helper function to urlencode strings
*/
jQuery.urlencode = encodeURIComponent;

/**
* This function returns the parsed url parameters of the
* current request. Multiple values per key are supported,
* it will always return arrays of strings for the value parts.
*/
jQuery.getQueryParameters = function(s) {
if (typeof s === 'undefined')
s = document.location.search;
var parts = s.substr(s.indexOf('?') + 1).split('&');
var result = {};
for (var i = 0; i < parts.length; i++) {
var tmp = parts[i].split('=', 2);
var key = jQuery.urldecode(tmp[0]);
var value = jQuery.urldecode(tmp[1]);
if (key in result)
result[key].push(value);
else
result[key] = [value];
}
return result;
};

/**
* highlight a given string on a jquery object by wrapping it in
* span elements with the given class name.
*/
jQuery.fn.highlightText = function(text, className) {
function highlight(node, addItems) {
if (node.nodeType === 3) {
var val = node.nodeValue;
var pos = val.toLowerCase().indexOf(text);
if (pos >= 0 &&
!jQuery(node.parentNode).hasClass(className) &&
!jQuery(node.parentNode).hasClass("nohighlight")) {
var span;
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
if (isInSVG) {
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
} else {
span = document.createElement("span");
span.className = className;
}
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
document.createTextNode(val.substr(pos + text.length)),
node.nextSibling));
node.nodeValue = val.substr(0, pos);
if (isInSVG) {
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
var bbox = node.parentElement.getBBox();
rect.x.baseVal.value = bbox.x;
rect.y.baseVal.value = bbox.y;
rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height;
rect.setAttribute('class', className);
addItems.push({
"parent": node.parentNode,
"target": rect});
}
}
}
else if (!jQuery(node).is("button, select, textarea")) {
jQuery.each(node.childNodes, function() {
highlight(this, addItems);
});
}
}
var addItems = [];
var result = this.each(function() {
highlight(this, addItems);
});
for (var i = 0; i < addItems.length; ++i) {
jQuery(addItems[i].parent).before(addItems[i].target);
}
return result;
};

/*
* backward compatibility for jQuery.browser
* This will be supported until firefox bug is fixed.
*/
if (!jQuery.browser) {
jQuery.uaMatch = function(ua) {
ua = ua.toLowerCase();

var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
/(msie) ([\w.]+)/.exec(ua) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
[];

return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
jQuery.browser = {};
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
}
Loading

0 comments on commit 4e69ba7

Please sign in to comment.