Hi Scott,
I'm working on performing a co-occurrence analysis myself, I have not reached the definitive answers to your questions.
On your question 1, I'd like to add one consideration. How many features you have in total? Currently I'm playing with two different ways of filtering data: a) using a Python script to set the filtering criteria, it outputs a otu table; b) Using Bokulich filtering approach, aka discard any features less than 0.005% of total frequency, I use qiime1 script:
filter_otus_from_otu_table.py -i otu_table.biom -o otu_table.flt.biom --min_count_fraction 0.00005
For the analysis itself, I'm working with SpiecEasi (SpiecEasi/R/fitdistr.R at master · zdk123/SpiecEasi · GitHub) in R.
A recent alternative as q2 plug in is:
q2-SCNIC: A tool for making correlation networks, finding modules of observations and summarizing them
(There is a filtering plug in as well included if you want to use their filtering settings).
Now, I'd like to add my concern on the filtering, with the hope that @Nicholas_Bokulich or @michael.shaffer my help us. When you filter the dataset, on the assumption you use a method considering the compositional nature of the data for the analysis as SpiecEasi or SCNIC above, you change the total sum of count per sample. My understanding is that this therefore put a bias in the dataset. Is this correct? Do any of you can suggest a method to filter the data with your own criteria but keeping the total of count per sample unchanged?
Luca