#!/usr/bin/env python
# coding: utf-8
# # Python for Bioinformatics
# These are the notebooks for the [_Python with Bioinformatics Cookbook_](https://www.packtpub.com/application-development/bioinformatics-python-cookbook).
#
# 
# ## Datasets
# [Click here for the datasets used in the book](Datasets.ipynb). You only need this if you do _not_ use the notebooks (as the notebooks will take care of the data)
# ## Python 2 or 3?
# Depending on your Python version, some content might not be available. Lets test that:
# In[1]:
import platform
major, minor, patch = platform.python_version_tuple()
if major == '3':
print('Python 3: The Phylogenomics module will not work, but all the Big Data content will')
else:
print('Python 2: The Phylogenomics module will work, but some Big Data content will not')
# ####The new version of DendroPy supports Python 3. You are thus encouraged to consider Python 3
#
#
If you are seeing this on github,for some reason opening notebooks in new tabs does not work. Please open notebooks in the same tab here.
#
# ## Python and the surrounding software ecology
# 
#
# * [Interfacing with R](00_Intro/Interfacing_R.ipynb)
# * [R Magic](00_Intro/R_magic.ipynb)
# ## Next Generation Sequencing
# 
#
# * [Accessing Databases](01_NGS/Accessing_Databases.ipynb)
# * [Basic Sequence Processing](01_NGS/Basic_Sequence_Processing.ipynb)
# * [Working with FASTQ files](01_NGS/Working_with_FASTQ.ipynb)
# * [Working with BAM files](01_NGS/Working_with_BAM.ipynb)
# * [Working with VCF files](01_NGS/Working_with_VCF.ipynb)
# * [Filtering SNPs](01_NGS/Filtering_SNPs.ipynb)
# ## Genomics
# 
#
# * [Working with high-quality reference genomes](02_Genomes/Reference_Genome.ipynb)
# * [Dealing with low-quality Reference Genomes](02_Genomes/Low_Quality.ipynb)
# * [Traversing Genome Annotations](02_Genomes/Annotations.ipynb)
# * [Extracting Genes from a reference using annotations](02_Genomes/Getting_Gene.ipynb)
# * [Finding orthologues with the Ensembl REST API](02_Genomes/Orthology.ipynb)
# * [Retrieving Gene Ontology information from Ensembl](02_Genomes/Gene_Ontology.ipynb)
# ## Population Genetics
# 
#
# * [Data Formats with PLINK](03_PopGen/Data_Formats.ipynb)
# * [The Genepop Format](03_PopGen/Genepop_Format.ipynb)
# * [Exploratory Analysis](03_PopGen/Exploratory_Analysis.ipynb)
# * [F statistics](03_PopGen/F-stats.ipynb)
# * [Principal Components Analysis (PCA)](03_PopGen/PCA.ipynb)
# * [Admixture/Structure](03_PopGen/Admixture.ipynb)
#
# ## Simulation in Population Genetics
# 
#
# * [Introducing Forward-time simulations](04_PopSim/Basic_SimuPOP.ipynb)
# * [Simulating selection](04_PopSim/Selection.ipynb)
# * [Doing population structure with island and stepping-stone models](04_PopSim/Pop_Structure.ipynb)
# * [Modeling complex demographic scenarios](04_PopSim/Complex.ipynb)
# * [Simulating the coalescent with Biopython and fastsimcoal](04_PopSim/Coalescent.ipynb)
# ## Phylogenetics
# 
#
# * [Preparing the Ebola dataset](05_Phylo/Exploration.ipynb)
# * [Aligning genetic and genomic data](05_Phylo/Alignment.ipynb)
# * [Comparing sequences](05_Phylo/Comparison.ipynb)
# * [Playing recursively with trees](05_Phylo/Trees.ipynb)
# * [Reconstructing Phylogenetic trees](05_Phylo/Reconstruction.ipynb)
# * [Visualizing Phylogenetic data](05_Phylo/Visualization.ipynb)
#
# ## Proteomics
# 
#
# * [Finding a protein in multiple databases](06_Prot/Intro.ipynb)
# * [Introducing Bio.PDB](06_Prot/PDB.ipynb)
# * [Extracting more information from a PDB file](06_Prot/Stats.ipynb)
# * [Computing distances on a PDB file](06_Prot/Distance.ipynb)
# * [Doing geometric operations](06_Prot/Mass.ipynb)
# * [Implementing a basic PDB parser](06_Prot/Parser.ipynb)
# * [Parsing mmCIF files with Biopython](06_Prot/mmCIF.ipynb)
#
# The code for the PyMol recipe can be found on the pymol directory of the [github project](https://github.com/tiagoantao/bioinf-python)
# ## Other topics
# 
#
# * [Accessing the Global Biodiversity Information Facility (GBIF) via REST](07_Other/GBIF.ipynb)
# * [Geo-referencing GBIF datasets](07_Other/GBIF_extra.ipynb)
# * [Accessing molecular-interaction databases with PSIQUIC](07_Other/PSICQUIC.ipynb)
# * [Plotting protein interactions with Cytoscape the hard way](07_Other/Cytoscape.ipynb)
# ## Advanced Python for Bioinformatics
# * [Setting the stage for high performance computing](08_Advanced/Intro.ipynb)
# * [Designing a poor-human concurrent executor](08_Advanced/Multiprocessing.ipynb)
# * [Doing parallel computing with IPython](08_Advanced/IPythonParallel.ipynb)
# * [Approximating the median in a large dataset](08_Advanced/Median.ipynb)
# * [Optimizing code with Cython and Numba](08_Advanced/Cython_Numba.ipynb)
# * [Programming with lazyness](08_Advanced/Lazy.ipynb)
# * [Thinking with generators](08_Advanced/Generators.ipynb)
#
# In[ ]: