{"action":"created","comment":{"url":"https://api.github.com/repos/qiime2/docs/pulls/comments/219539335","pull_request_review_id":157729867,"id":219539335,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxOTUzOTMzNQ==","diff_hunk":"@@ -0,0 +1,478 @@\n+FMT for recurrent Clostridium difficile infection Tutorial\n+==========================================================\n+\n+.. note:: This guide assumes you have installed QIIME 2 using one of the procedures in the :doc:`install documents <../install/index>`.\n+\n+In this tutorial you'll use QIIME 2 to perform an analysis\n+In this tutorial you’ll use QIIME 2 to perform an analysis of fecal human microbiome samples looking at short- and long-term changes in patients with multiply recurrent Clostridium difficile infection that were refractory to antibiotic therapy and treated using fecal microbiota transplantation. A study based on these samples was originally published in [Weingarden et al. (2015)](https://www.ncbi.nlm.nih.gov/pubmed/25825673) and it has been used in [animations](https://www.youtube.com/watch?v=-FFDqhM4pks) and [meta-analyses](https://github.com/knightlab-analyses/qiita-paper). The data used in this tutorial were sequenced on an Illumina MiSeq using the [Earth Microbiome Project](http://earthmicrobiome.org/) hypervariable region 4 (V4) 16S rRNA sequencing protocol.\n+\n+Before beginning this tutorial, create a new directory and change to that directory.\n+\n+.. command-block::\n+   :no-exec:\n+\n+   mkdir qiime2-fmt-cdi-tutorial\n+   cd qiime2-fmt-cdi-tutorial\n+\n+Sample metadata\n+---------------\n+\n+Before starting the analysis, explore the sample metadata to familiarize yourself with the samples used in this study. [ToDo: add metadata to Google spreadsheets?]. The following command will download the sample metadata as tab-separated text and save it in the file  `sample-metadata.tsv`. This  `sample-metadata.tsv` file is used throughout the rest of the tutorial.\n+\n+.. download::\n+   :url: https://drive.google.com/open?id=1X58tm2G1FcUazL5jnAEE08pIfJP182yG\n+   :saveas: sample-metadata.tsv\n+\n+.. tip:: `Keemei`_ is a Google Sheets add-on for validating sample metadata. Validation of sample metadata is important before beginning any analysis. Try installing Keemei following the instructions on its website, and then validate the sample metadata spreadsheet linked above. The spreadsheet also includes a sheet with some invalid data to try out with Keemei.\n+\n+.. tip:: To learn more about metadata, including how to format your metadata for use with QIIME 2, check out :doc:`the metadata tutorial <metadata>`.\n+\n+Obtaining and importing data\n+----------------------------\n+\n+Next, you’ll download the multiplexed reads. You will download three `fastq.gz` files, corresponding to the forward, reverse, and barcode (i.e., index) reads. These files contain a subset of the reads in the full data set generated for this study, which allows for the following commands to be run relatively quickly. If you are only planning to run through the commands presented here to get experience, you can use the 1% subsample data set so that the commands will run quickly. If you’re planning to work through the questions presented at the end of this document to gain more experience with QIIME analysis and data interpretation, you should use the 10% subsample data set so that the analysis results will be supported by more sequence data.\n+\n+Download the sequence reads that we'll use in this analysis. In this tutorial we'll work with a small subset of the complete sequence data so that the commands will run quickly.\n+\n+.. command-block::\n+\n+   mkdir emp-paired-end-sequences\n+\n+.. download::\n+   :url: https://drive.google.com/open?id=1OE9KIrSqi4lFI5lFURdvKbJxqaKTUnZ0\n+   :saveas: emp-paired-end-sequences/barcodes.fastq.gz\n+\n+.. download::\n+  :url: https://drive.google.com/open?id=1gwVANNI0qh4sT1a7Z4G7wr3dXTTA1SR_\n+  :saveas: emp-paired-end-sequences/forward.fastq.gz\n+\n+.. download::\n+   :url: https://drive.google.com/open?id=1DIW8kQmZN0TI3xVOqwbXZkmo_9eK21jW\n+   :saveas: emp-paired-end-sequences/reverse.fastq.gz\n+\n+All data that is used as input to QIIME 2 is in form of QIIME 2 artifacts, which contain information about the type of data and the source of the data. So, the first thing we need to do is import these sequence data files into a QIIME 2 artifact.\n+\n+The semantic type of this QIIME 2 artifact is ``EMPPairedEndSequences``. ``EMPPairedEndSequences`` QIIME 2 artifacts contain sequences that are multiplexed, meaning that the sequences have not yet been assigned to samples (hence the inclusion of both ``forward.fastq.gz``, ``reverse.fastq.gz`` and ``barcodes.fastq.gz`` files, where the ``barcodes.fastq.gz`` contains the barcode read associated with each sequence in ``forward.fastq.gz`` and ``reverse.fastq.gz``.) To learn about how to import sequence data in other formats, see the :doc:`importing data tutorial <importing>`.\n+\n+.. command-block::\n+\n+   qiime tools import \\\n+     --type EMPPairedEndSequences \\\n+     --input-path emp-paired-end-sequences \\\n+     --output-path emp-paired-end-sequences.qza\n+\n+.. tip::\n+   Links are included to view and download precomputed QIIME 2 artifacts and visualizations created by commands in the documentation. For example, the command above created a pared ``emp-paired-end-sequences.qza`` file, and a corresponding precomputed file is linked above. You can view precomputed QIIME 2 artifacts and visualizations without needing to install additional software (e.g. QIIME 2).\n+\n+.. qiime1-users::\n+   In QIIME 1, we generally suggested performing demultiplexing through QIIME (e.g., with ``split_libraries.py`` or ``split_libraries_fastq.py``) as this step also performed quality control of sequences. We now separate the demultiplexing and quality control steps, so you can begin QIIME 2 with either multiplexed sequences (as we're doing here) or demultiplexed sequences.\n+\n+.. _`fmt cdiff demux`:\n+\n+Demultiplexing sequences\n+------------------------\n+\n+To demultiplex sequences we need to know which barcode sequence is associated with each sample. This information is contained in the `sample metadata`_ file. You can run the following commands to demultiplex the sequences (the ``demux emp-paired`` command refers to the fact that these sequences are barcoded according to the `Earth Microbiome Project`_ protocol, and are pared-end reads). The ``demux.qza`` QIIME 2 artifact will contain the demultiplexed sequences. Additionally, we are passing the parameter ```--p-rev-comp-mapping-barcodes```, reverse complements the barcode sequences in the sample metadata prior to demultiplexing.\n+\n+.. command-block::\n+\n+    qiime demux emp-paired \\\n+      --i-seqs emp-paired-end-sequences.qza \\\n+      --m-barcodes-file sample-metadata.tsv \\\n+      --m-barcodes-column BarcodeSequence \\\n+      --o-per-sample-sequences demux.qza \\\n+      --p-rev-comp-mapping-barcodes\n+\n+After demultiplexing, it's useful to generate a summary of the demultiplexing results. This allows you to determine how many sequences were obtained per sample, and also to get a summary of the distribution of sequence qualities at each position in your sequence data.\n+\n+.. command-block::\n+\n+    qiime demux summarize \\\n+      --i-data demux.qza \\\n+      --o-visualization demux.qzv\n+\n+.. note::\n+   All QIIME 2 visualizers (i.e., commands that take a ``--o-visualization`` parameter) will generate a ``.qzv`` file. You can view these files with ``qiime tools view``. We provide the command to view this first visualization, but for the remainder of this tutorial we'll tell you to *view the resulting visualization* after running a visualizer, which means that you should run ``qiime tools view`` on the .qzv file that was generated.\n+\n+   .. command-block::\n+      :no-exec:\n+\n+      qiime tools view demux.qzv\n+\n+   Alternatively, you can view QIIME 2 artifacts and visualizations at `view.qiime2.org <https://view.qiime2.org>`__ by uploading files or providing URLs. There are also precomputed results that can be viewed or downloaded after each step in the tutorial. These can be used if you're reading the tutorial, but not running the commands yourself.\n+\n+Sequence quality control and feature table construction\n+-------------------------------------------------------\n+\n+QIIME 2 plugins are available for several quality control methods, including `DADA2`_, `Deblur`_, and `basic quality-score-based filtering`_. In this tutorial we present this step using `DADA2`_ and `Deblur`_. These steps are interchangeable, so you can use whichever of these you prefer. The result of both of these methods will be a ``FeatureTable[Frequency]`` QIIME 2 artifact, which contains counts (frequencies) of each unique sequence in each sample in the dataset, and a ``FeatureData[Sequence]`` QIIME 2 artifact, which maps feature identifiers in the ``FeatureTable`` to the sequences they represent.\n+\n+.. note::\n+   As you work through one or both of the options in this section, you'll create artifacts with filenames that are specific to the method that you're running (e.g., the feature table that you generate with ``dada2 denoise-single`` will be called ``table-dada2.qza``). After creating these artifacts you'll rename the artifacts from one of the two options to more generic filenames (e.g., ``table.qza``). This process of creating a specific name for an artifact and then renaming it is only done to allow you to choose which of the two options you'd like to use for this step, and then complete the tutorial without paying attention to that choice again. It's important to note that in this step, or any step in QIIME 2, the filenames that you're giving to artifacts or visualizations are not important.\n+\n+.. qiime1-users::\n+   The ``FeatureTable[Frequency]`` QIIME 2 artifact is the equivalent of the QIIME 1 OTU or BIOM table, and the ``FeatureData[Sequence]`` QIIME 2 artifact is the equivalent of the QIIME 1 *representative sequences* file. Because the \"OTUs\" resulting from `DADA2`_ and `Deblur`_ are created by grouping unique sequences, these are the equivalent of 100% OTUs from QIIME 1, and are generally referred to as *sequence variants*. In QIIME 2, these OTUs are higher resolution than the QIIME 1 default of 97% OTUs, and they're higher quality since these quality control steps are better than those implemented in QIIME 1. This should therefore result in more accurate estimates of diversity and taxonomic composition of samples than was achieved with QIIME 1.\n+\n+Option 1: DADA2\n+~~~~~~~~~~~~~~~\n+\n+`DADA2`_ is a pipeline for detecting and correcting (where possible) Illumina amplicon sequence data. As implemented in the ``q2-dada2`` plugin, this quality control process will additionally filter any phiX reads (commonly present in marker gene Illumina sequence data) that are identified in the sequencing data, and will filter chimeric sequences.\n+\n+The ``dada2 denoise-single`` method requires two parameters that are used in quality filtering: ``--p-trim-left m``, which trims off the first ``m`` bases of each sequence, and ``--p-trunc-len n`` which truncates each sequence at position ``n``. This allows the user to remove low quality regions of the sequences. To determine what values to pass for these two parameters, you should review the *Interactive Quality Plot* tab in the ``demux.qzv`` file that was generated by ``qiime demux summarize`` above.\n+\n+.. question::\n+   Based on the plots you see in ``demux.qzv``, what values would you choose for ``--p-trunc-len`` and ``--p-trim-left`` in this case?\n+\n+In the ``demux.qzv`` quality plots, we see that the quality of the initial bases seems to be high, so we won't trim any bases from the beginning of the sequences. The quality seems to drop off around position 120, so we'll truncate our sequences at 120 bases. This next command may take up to 10 minutes to run, and is the slowest step in this tutorial.\n+\n+.. command-block::\n+\n+   qiime dada2 denoise-single \\\n+     --i-demultiplexed-seqs demux.qza \\\n+     --p-trim-left 0 \\\n+     --p-trunc-len 140 \\\n+     --o-representative-sequences rep-seqs-dada2.qza \\\n+     --o-table table-dada2.qza \\\n+     --o-denoising-stats stats-dada2.qza\n+\n+.. command-block::\n+\n+   qiime metadata tabulate \\\n+     --m-input-file stats-dada2.qza \\\n+     --o-visualization stats-dada2.qzv\n+\n+If you'd like to continue the tutorial using this FeatureTable (opposed to the Deblur feature table generated in *Option 2*), run the following commands.\n+\n+.. command-block::\n+\n+   mv rep-seqs-dada2.qza rep-seqs.qza\n+   mv table-dada2.qza table.qza\n+\n+Option 2: Deblur\n+~~~~~~~~~~~~~~~~\n+\n+`Deblur`_ uses sequence error profiles to associate erroneous sequence reads with the true biological sequence from which they are derived, resulting in high quality sequence variant data. This is applied in two steps. First, an initial quality filtering process based on quality scores is applied. This method is an implementation of the quality filtering approach described by `Bokulich et al. (2013)`_.\n+\n+.. command-block::\n+\n+   qiime quality-filter q-score \\\n+    --i-demux demux.qza \\\n+    --o-filtered-sequences demux-filtered.qza \\\n+    --o-filter-stats demux-filter-stats.qza\n+\n+.. note:: In the `Deblur`_ paper, the authors used different quality-filtering parameters than what `they currently recommend after additional analysis <https://qiita.ucsd.edu/static/doc/html/deblur_quality.html>`_. The parameters used here are based on those more recent recommendations.\n+\n+Next, the Deblur workflow is applied using the ``qiime deblur denoise-16S`` method. This method requires one parameter that is used in quality filtering, ``--p-trim-length n`` which truncates the sequences at position ``n``. In general, the Deblur developers recommend setting this value to a length where the median quality score begins to drop too low. On these data, the quality plots (prior to quality filtering) suggest a reasonable choice is in the 115 to 130 sequence position range. This is a subjective assessment. One situation where you might deviate from that recommendation is when performing a meta-analysis across multiple sequencing runs. In this type of meta-analysis, it is critical that the read lengths be the same for all of the sequencing runs being compared to avoid introducing a study-specific bias. Since we already using a trim length of 120 for ``qiime dada2 denoise-single``, and since 120 is reasonable given the quality plots, we'll pass ``--p-trim-length 120``. This next command may take up to 10 minutes to run.\n+\n+.. command-block::\n+\n+   qiime deblur denoise-16S \\\n+     --i-demultiplexed-seqs demux-filtered.qza \\\n+     --p-trim-length 140 \\\n+     --o-representative-sequences rep-seqs-deblur.qza \\\n+     --o-table table-deblur.qza \\\n+     --p-sample-stats \\\n+     --o-stats deblur-stats.qza\n+\n+.. note:: The two commands used in this section generate QIIME 2 artifacts containing summary statistics. To view those summary statistics, you can visualize them using ``qiime metadata tabulate`` and ``qiime deblur visualize-stats``, respectively:\n+\n+.. command-block::\n+\n+   qiime metadata tabulate \\\n+     --m-input-file demux-filter-stats.qza \\\n+     --o-visualization demux-filter-stats.qzv\n+   qiime deblur visualize-stats \\\n+     --i-deblur-stats deblur-stats.qza \\\n+     --o-visualization deblur-stats.qzv\n+\n+If you'd like to continue the tutorial using this FeatureTable (opposed to the DADA2 feature table generated in *Option 1*), run the following commands.\n+\n+.. command-block::\n+   :no-exec:\n+\n+   mv rep-seqs-deblur.qza rep-seqs.qza\n+   mv table-deblur.qza table.qza\n+\n+FeatureTable and FeatureData summaries\n+--------------------------------------\n+\n+After the quality filtering step completes, you'll want to explore the resulting data. You can do this using the following two commands, which will create visual summaries of the data. The ``feature-table summarize`` command will give you information on how many sequences are associated with each sample and with each feature, histograms of those distributions, and some related summary statistics. The ``feature-table tabulate-seqs`` command will provide a mapping of feature IDs to sequences, and provide links to easily BLAST each sequence against the NCBI nt database. The latter visualization will be very useful later in the tutorial, when you want to learn more about specific features that are important in the data set.\n+\n+.. command-block::\n+\n+   qiime feature-table summarize \\\n+     --i-table table.qza \\\n+     --o-visualization table.qzv \\\n+     --m-sample-metadata-file sample-metadata.tsv\n+   qiime feature-table tabulate-seqs \\\n+     --i-data rep-seqs.qza \\\n+     --o-visualization rep-seqs.qzv\n+\n+Generate a tree for phylogenetic diversity analyses\n+---------------------------------------------------\n+\n+QIIME supports several phylogenetic diversity metrics, including Faith's Phylogenetic Diversity and weighted and unweighted UniFrac. In addition to counts of features per sample (i.e., the data in the ``FeatureTable[Frequency]`` QIIME 2 artifact), these metrics require a rooted phylogenetic tree relating the features to one another. This information will be stored in a ``Phylogeny[Rooted]`` QIIME 2 artifact. To generate a phylogenetic tree we will use ``align-to-tree-mafft-fasttree`` pipeline from the ``q2-phylogeny`` plugin.\n+\n+First, the pipeline uses the ``mafft`` program to perform a multiple sequence alignment of the sequences in our ``FeatureData[Sequence]`` to create a ``FeatureData[AlignedSequence]`` QIIME 2 artifact.\n+Next, the pipeline masks (or filters) the alignment to remove positions that are highly variable. These positions are generally considered to add noise to a resulting phylogenetic tree.\n+Following that, the pipeline applies FastTree to generate a phylogenetic tree from the masked alignment.\n+The FastTree program creates an unrooted tree, so in the final step in this section midpoint rooting is applied to place the root of the tree at the midpoint of the longest tip-to-tip distance in the unrooted tree.\n+\n+.. command-block::\n+\n+   qiime phylogeny align-to-tree-mafft-fasttree \\\n+     --i-sequences rep-seqs.qza \\\n+     --o-alignment aligned-rep-seqs.qza \\\n+     --o-masked-alignment masked-aligned-rep-seqs.qza \\\n+     --o-tree unrooted-tree.qza \\\n+     --o-rooted-tree rooted-tree.qza\n+\n+\n+.. _`fmt cdiff diversity`:\n+\n+Alpha and beta diversity analysis\n+---------------------------------\n+\n+QIIME 2's diversity analyses are available through the ``q2-diversity`` plugin, which supports computing alpha and beta diversity metrics, applying related statistical tests, and generating interactive visualizations. We'll first apply the ``core-metrics-phylogenetic`` method, which rarefies a ``FeatureTable[Frequency]`` to a user-specified depth, computes several alpha and beta diversity metrics, and generates principle coordinates analysis (PCoA) plots using Emperor for each of the beta diversity metrics. The metrics computed by default are:\n+\n+* Alpha diversity\n+\n+  * Shannon's diversity index (a quantitative measure of community richness)\n+  * Observed OTUs (a qualitative measure of community richness)\n+  * Faith's Phylogenetic Diversity (a qualitiative measure of community richness that incorporates phylogenetic relationships between the features)\n+  * Evenness (or Pielou's Evenness; a measure of community evenness)\n+\n+* Beta diversity\n+\n+  * Jaccard distance (a qualitative measure of community dissimilarity)\n+  * Bray-Curtis distance (a quantitative measure of community dissimilarity)\n+  * unweighted UniFrac distance (a qualitative measure of community dissimilarity that incorporates phylogenetic relationships between the features)\n+  * weighted UniFrac distance (a quantitative measure of community dissimilarity that incorporates phylogenetic relationships between the features)\n+\n+An important parameter that needs to be provided to this script is ``--p-sampling-depth``, which is the even sampling (i.e. rarefaction) depth. Because most diversity metrics are sensitive to different sampling depths across different samples, this script will randomly subsample the counts from each sample to the value provided for this parameter. For example, if you provide ``--p-sampling-depth 500``, this step will subsample the counts in each sample without replacement so that each sample in the resulting table has a total count of 500. If the total count for any sample(s) are smaller than this value, those samples will be dropped from the diversity analysis. Choosing this value is tricky. We recommend making your choice by reviewing the information presented in the ``table.qzv`` file that was created above and choosing a value that is as high as possible (so you retain more sequences per sample) while excluding as few samples as possible.\n+\n+.. question::\n+   View the ``table.qzv`` QIIME 2 artifact, and in particular the *Interactive Sample Detail* tab in that visualization. What value would you choose to pass for ``--p-sampling-depth``? How many samples will be excluded from your analysis based on this choice? How many total sequences will you be analyzing in the ``core-metrics-phylogenetic`` command?\n+\n+.. command-block::\n+\n+   qiime diversity core-metrics-phylogenetic \\\n+     --i-phylogeny rooted-tree.qza \\\n+     --i-table table.qza \\\n+     --p-sampling-depth 1000 \\\n+     --m-metadata-file sample-metadata.tsv \\\n+     --output-dir core-metrics-results\n+\n+Here we set the ``--p-sampling-depth`` parameter to 1109. This value was chosen based on the number of sequences in the ``L3S341`` sample because it's close to the number of sequences in the next few samples that have higher sequence counts, and because it is considerably higher (relatively) than the number of sequences in the one sample that has fewer sequences. This will allow us to retain most of our samples. The one sample that has fewer sequences will be dropped from the ``core-metrics-phylogenetic`` analyses and anything that uses these results.","path":"source/tutorials/fmt-cdiff.rst","position":265,"original_position":265,"commit_id":"67b26e832c39a9ee313b0241b2c5f26a89c7caa1","original_commit_id":"67b26e832c39a9ee313b0241b2c5f26a89c7caa1","user":{"login":"nbokulich","id":1907564,"node_id":"MDQ6VXNlcjE5MDc1NjQ=","avatar_url":"https://avatars2.githubusercontent.com/u/1907564?v=4","gravatar_id":"","url":"https://api.github.com/users/nbokulich","html_url":"https://github.com/nbokulich","followers_url":"https://api.github.com/users/nbokulich/followers","following_url":"https://api.github.com/users/nbokulich/following{/other_user}","gists_url":"https://api.github.com/users/nbokulich/gists{/gist_id}","starred_url":"https://api.github.com/users/nbokulich/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nbokulich/subscriptions","organizations_url":"https://api.github.com/users/nbokulich/orgs","repos_url":"https://api.github.com/users/nbokulich/repos","events_url":"https://api.github.com/users/nbokulich/events{/privacy}","received_events_url":"https://api.github.com/users/nbokulich/received_events","type":"User","site_admin":false},"body":"it is set to 1000 above, not 1109","created_at":"2018-09-21T15:35:08Z","updated_at":"2018-09-21T15:56:52Z","html_url":"https://github.com/qiime2/docs/pull/353#discussion_r219539335","pull_request_url":"https://api.github.com/repos/qiime2/docs/pulls/353","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/qiime2/docs/pulls/comments/219539335"},"html":{"href":"https://github.com/qiime2/docs/pull/353#discussion_r219539335"},"pull_request":{"href":"https://api.github.com/repos/qiime2/docs/pulls/353"}}},"pull_request":{"url":"https://api.github.com/repos/qiime2/docs/pulls/353","id":217127588,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE3MTI3NTg4","html_url":"https://github.com/qiime2/docs/pull/353","diff_url":"https://github.com/qiime2/docs/pull/353.diff","patch_url":"https://github.com/qiime2/docs/pull/353.patch","issue_url":"https://api.github.com/repos/qiime2/docs/issues/353","number":353,"state":"open","locked":false,"title":"adding fmt tutorial","user":{"login":"antgonza","id":2014559,"node_id":"MDQ6VXNlcjIwMTQ1NTk=","avatar_url":"https://avatars2.githubusercontent.com/u/2014559?v=4","gravatar_id":"","url":"https://api.github.com/users/antgonza","html_url":"https://github.com/antgonza","followers_url":"https://api.github.com/users/antgonza/followers","following_url":"https://api.github.com/users/antgonza/following{/other_user}","gists_url":"https://api.github.com/users/antgonza/gists{/gist_id}","starred_url":"https://api.github.com/users/antgonza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/antgonza/subscriptions","organizations_url":"https://api.github.com/users/antgonza/orgs","repos_url":"https://api.github.com/users/antgonza/repos","events_url":"https://api.github.com/users/antgonza/events{/privacy}","received_events_url":"https://api.github.com/users/antgonza/received_events","type":"User","site_admin":false},"body":"Brief summary of the Pull Request, including any issues it may fix using the GitHub closing syntax:\r\n\r\nhttps://help.github.com/articles/closing-issues-using-keywords/\r\n\r\nAlso, include any co-authors or contributors using the GitHub coauthor tag:\r\n\r\nhttps://help.github.com/articles/creating-a-commit-with-multiple-authors/\r\n\r\n---\r\n\r\nInclude any questions for reviewers, screenshots, sample outputs, etc.\r\n","created_at":"2018-09-20T22:46:01Z","updated_at":"2018-09-21T15:56:50Z","closed_at":null,"merged_at":null,"merge_commit_sha":"dbaf689e930aed7d3cb69b31a5a94822efd66979","assignee":{"login":"gregcaporaso","id":192372,"node_id":"MDQ6VXNlcjE5MjM3Mg==","avatar_url":"https://avatars2.githubusercontent.com/u/192372?v=4","gravatar_id":"","url":"https://api.github.com/users/gregcaporaso","html_url":"https://github.com/gregcaporaso","followers_url":"https://api.github.com/users/gregcaporaso/followers","following_url":"https://api.github.com/users/gregcaporaso/following{/other_user}","gists_url":"https://api.github.com/users/gregcaporaso/gists{/gist_id}","starred_url":"https://api.github.com/users/gregcaporaso/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gregcaporaso/subscriptions","organizations_url":"https://api.github.com/users/gregcaporaso/orgs","repos_url":"https://api.github.com/users/gregcaporaso/repos","events_url":"https://api.github.com/users/gregcaporaso/events{/privacy}","received_events_url":"https://api.github.com/users/gregcaporaso/received_events","type":"User","site_admin":false},"assignees":[{"login":"gregcaporaso","id":192372,"node_id":"MDQ6VXNlcjE5MjM3Mg==","avatar_url":"https://avatars2.githubusercontent.com/u/192372?v=4","gravatar_id":"","url":"https://api.github.com/users/gregcaporaso","html_url":"https://github.com/gregcaporaso","followers_url":"https://api.github.com/users/gregcaporaso/followers","following_url":"https://api.github.com/users/gregcaporaso/following{/other_user}","gists_url":"https://api.github.com/users/gregcaporaso/gists{/gist_id}","starred_url":"https://api.github.com/users/gregcaporaso/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gregcaporaso/subscriptions","organizations_url":"https://api.github.com/users/gregcaporaso/orgs","repos_url":"https://api.github.com/users/gregcaporaso/repos","events_url":"https://api.github.com/users/gregcaporaso/events{/privacy}","received_events_url":"https://api.github.com/users/gregcaporaso/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/qiime2/docs/pulls/353/commits","review_comments_url":"https://api.github.com/repos/qiime2/docs/pulls/353/comments","review_comment_url":"https://api.github.com/repos/qiime2/docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/qiime2/docs/issues/353/comments","statuses_url":"https://api.github.com/repos/qiime2/docs/statuses/67b26e832c39a9ee313b0241b2c5f26a89c7caa1","head":{"label":"antgonza:fmt-tutorial","ref":"fmt-tutorial","sha":"67b26e832c39a9ee313b0241b2c5f26a89c7caa1","user":{"login":"antgonza","id":2014559,"node_id":"MDQ6VXNlcjIwMTQ1NTk=","avatar_url":"https://avatars2.githubusercontent.com/u/2014559?v=4","gravatar_id":"","url":"https://api.github.com/users/antgonza","html_url":"https://github.com/antgonza","followers_url":"https://api.github.com/users/antgonza/followers","following_url":"https://api.github.com/users/antgonza/following{/other_user}","gists_url":"https://api.github.com/users/antgonza/gists{/gist_id}","starred_url":"https://api.github.com/users/antgonza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/antgonza/subscriptions","organizations_url":"https://api.github.com/users/antgonza/orgs","repos_url":"https://api.github.com/users/antgonza/repos","events_url":"https://api.github.com/users/antgonza/events{/privacy}","received_events_url":"https://api.github.com/users/antgonza/received_events","type":"User","site_admin":false},"repo":{"id":145597641,"node_id":"MDEwOlJlcG9zaXRvcnkxNDU1OTc2NDE=","name":"docs","full_name":"antgonza/docs","private":false,"owner":{"login":"antgonza","id":2014559,"node_id":"MDQ6VXNlcjIwMTQ1NTk=","avatar_url":"https://avatars2.githubusercontent.com/u/2014559?v=4","gravatar_id":"","url":"https://api.github.com/users/antgonza","html_url":"https://github.com/antgonza","followers_url":"https://api.github.com/users/antgonza/followers","following_url":"https://api.github.com/users/antgonza/following{/other_user}","gists_url":"https://api.github.com/users/antgonza/gists{/gist_id}","starred_url":"https://api.github.com/users/antgonza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/antgonza/subscriptions","organizations_url":"https://api.github.com/users/antgonza/orgs","repos_url":"https://api.github.com/users/antgonza/repos","events_url":"https://api.github.com/users/antgonza/events{/privacy}","received_events_url":"https://api.github.com/users/antgonza/received_events","type":"User","site_admin":false},"html_url":"https://github.com/antgonza/docs","description":"Source repository for https://docs.qiime2.org","fork":true,"url":"https://api.github.com/repos/antgonza/docs","forks_url":"https://api.github.com/repos/antgonza/docs/forks","keys_url":"https://api.github.com/repos/antgonza/docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/antgonza/docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/antgonza/docs/teams","hooks_url":"https://api.github.com/repos/antgonza/docs/hooks","issue_events_url":"https://api.github.com/repos/antgonza/docs/issues/events{/number}","events_url":"https://api.github.com/repos/antgonza/docs/events","assignees_url":"https://api.github.com/repos/antgonza/docs/assignees{/user}","branches_url":"https://api.github.com/repos/antgonza/docs/branches{/branch}","tags_url":"https://api.github.com/repos/antgonza/docs/tags","blobs_url":"https://api.github.com/repos/antgonza/docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/antgonza/docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/antgonza/docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/antgonza/docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/antgonza/docs/statuses/{sha}","languages_url":"https://api.github.com/repos/antgonza/docs/languages","stargazers_url":"https://api.github.com/repos/antgonza/docs/stargazers","contributors_url":"https://api.github.com/repos/antgonza/docs/contributors","subscribers_url":"https://api.github.com/repos/antgonza/docs/subscribers","subscription_url":"https://api.github.com/repos/antgonza/docs/subscription","commits_url":"https://api.github.com/repos/antgonza/docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/antgonza/docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/antgonza/docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/antgonza/docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/antgonza/docs/contents/{+path}","compare_url":"https://api.github.com/repos/antgonza/docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/antgonza/docs/merges","archive_url":"https://api.github.com/repos/antgonza/docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/antgonza/docs/downloads","issues_url":"https://api.github.com/repos/antgonza/docs/issues{/number}","pulls_url":"https://api.github.com/repos/antgonza/docs/pulls{/number}","milestones_url":"https://api.github.com/repos/antgonza/docs/milestones{/number}","notifications_url":"https://api.github.com/repos/antgonza/docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/antgonza/docs/labels{/name}","releases_url":"https://api.github.com/repos/antgonza/docs/releases{/id}","deployments_url":"https://api.github.com/repos/antgonza/docs/deployments","created_at":"2018-08-21T17:33:59Z","updated_at":"2018-09-18T23:02:19Z","pushed_at":"2018-09-19T22:22:35Z","git_url":"git://github.com/antgonza/docs.git","ssh_url":"git@github.com:antgonza/docs.git","clone_url":"https://github.com/antgonza/docs.git","svn_url":"https://github.com/antgonza/docs","homepage":null,"size":9221,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"bsd-3-clause","name":"BSD 3-Clause \"New\" or \"Revised\" License","spdx_id":"BSD-3-Clause","url":"https://api.github.com/licenses/bsd-3-clause","node_id":"MDc6TGljZW5zZTU="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"qiime2:master","ref":"master","sha":"5dbd6e82809d6b8c27990ef9a9a88beba4c57bbe","user":{"login":"qiime2","id":18176583,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE4MTc2NTgz","avatar_url":"https://avatars0.githubusercontent.com/u/18176583?v=4","gravatar_id":"","url":"https://api.github.com/users/qiime2","html_url":"https://github.com/qiime2","followers_url":"https://api.github.com/users/qiime2/followers","following_url":"https://api.github.com/users/qiime2/following{/other_user}","gists_url":"https://api.github.com/users/qiime2/gists{/gist_id}","starred_url":"https://api.github.com/users/qiime2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qiime2/subscriptions","organizations_url":"https://api.github.com/users/qiime2/orgs","repos_url":"https://api.github.com/users/qiime2/repos","events_url":"https://api.github.com/users/qiime2/events{/privacy}","received_events_url":"https://api.github.com/users/qiime2/received_events","type":"Organization","site_admin":false},"repo":{"id":72231397,"node_id":"MDEwOlJlcG9zaXRvcnk3MjIzMTM5Nw==","name":"docs","full_name":"qiime2/docs","private":false,"owner":{"login":"qiime2","id":18176583,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE4MTc2NTgz","avatar_url":"https://avatars0.githubusercontent.com/u/18176583?v=4","gravatar_id":"","url":"https://api.github.com/users/qiime2","html_url":"https://github.com/qiime2","followers_url":"https://api.github.com/users/qiime2/followers","following_url":"https://api.github.com/users/qiime2/following{/other_user}","gists_url":"https://api.github.com/users/qiime2/gists{/gist_id}","starred_url":"https://api.github.com/users/qiime2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qiime2/subscriptions","organizations_url":"https://api.github.com/users/qiime2/orgs","repos_url":"https://api.github.com/users/qiime2/repos","events_url":"https://api.github.com/users/qiime2/events{/privacy}","received_events_url":"https://api.github.com/users/qiime2/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/qiime2/docs","description":"Source repository for https://docs.qiime2.org","fork":false,"url":"https://api.github.com/repos/qiime2/docs","forks_url":"https://api.github.com/repos/qiime2/docs/forks","keys_url":"https://api.github.com/repos/qiime2/docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/qiime2/docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/qiime2/docs/teams","hooks_url":"https://api.github.com/repos/qiime2/docs/hooks","issue_events_url":"https://api.github.com/repos/qiime2/docs/issues/events{/number}","events_url":"https://api.github.com/repos/qiime2/docs/events","assignees_url":"https://api.github.com/repos/qiime2/docs/assignees{/user}","branches_url":"https://api.github.com/repos/qiime2/docs/branches{/branch}","tags_url":"https://api.github.com/repos/qiime2/docs/tags","blobs_url":"https://api.github.com/repos/qiime2/docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/qiime2/docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/qiime2/docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/qiime2/docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/qiime2/docs/statuses/{sha}","languages_url":"https://api.github.com/repos/qiime2/docs/languages","stargazers_url":"https://api.github.com/repos/qiime2/docs/stargazers","contributors_url":"https://api.github.com/repos/qiime2/docs/contributors","subscribers_url":"https://api.github.com/repos/qiime2/docs/subscribers","subscription_url":"https://api.github.com/repos/qiime2/docs/subscription","commits_url":"https://api.github.com/repos/qiime2/docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/qiime2/docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/qiime2/docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/qiime2/docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/qiime2/docs/contents/{+path}","compare_url":"https://api.github.com/repos/qiime2/docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/qiime2/docs/merges","archive_url":"https://api.github.com/repos/qiime2/docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/qiime2/docs/downloads","issues_url":"https://api.github.com/repos/qiime2/docs/issues{/number}","pulls_url":"https://api.github.com/repos/qiime2/docs/pulls{/number}","milestones_url":"https://api.github.com/repos/qiime2/docs/milestones{/number}","notifications_url":"https://api.github.com/repos/qiime2/docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/qiime2/docs/labels{/name}","releases_url":"https://api.github.com/repos/qiime2/docs/releases{/id}","deployments_url":"https://api.github.com/repos/qiime2/docs/deployments","created_at":"2016-10-28T18:17:22Z","updated_at":"2018-09-13T15:27:19Z","pushed_at":"2018-09-20T22:46:02Z","git_url":"git://github.com/qiime2/docs.git","ssh_url":"git@github.com:qiime2/docs.git","clone_url":"https://github.com/qiime2/docs.git","svn_url":"https://github.com/qiime2/docs","homepage":null,"size":9216,"stargazers_count":3,"watchers_count":3,"language":"Python","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":24,"mirror_url":null,"archived":false,"open_issues_count":55,"license":{"key":"bsd-3-clause","name":"BSD 3-Clause \"New\" or \"Revised\" License","spdx_id":"BSD-3-Clause","url":"https://api.github.com/licenses/bsd-3-clause","node_id":"MDc6TGljZW5zZTU="},"forks":24,"open_issues":55,"watchers":3,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/qiime2/docs/pulls/353"},"html":{"href":"https://github.com/qiime2/docs/pull/353"},"issue":{"href":"https://api.github.com/repos/qiime2/docs/issues/353"},"comments":{"href":"https://api.github.com/repos/qiime2/docs/issues/353/comments"},"review_comments":{"href":"https://api.github.com/repos/qiime2/docs/pulls/353/comments"},"review_comment":{"href":"https://api.github.com/repos/qiime2/docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/qiime2/docs/pulls/353/commits"},"statuses":{"href":"https://api.github.com/repos/qiime2/docs/statuses/67b26e832c39a9ee313b0241b2c5f26a89c7caa1"}},"author_association":"NONE"}}
{"actor":{"display_login":"nbokulich"}}