def networkCoAuthor(self, detailedInfo = False, weighted = True, dropNonJournals = False, count = True, useShortNames = False, citeProfile = False):
        """Creates a coauthorship network for the RecordCollection.

        # Parameters

        _detailedInfo_ : `optional [bool or iterable[WOS tag Strings]]`

        > Default `False`, if `True` all nodes will be given info strings composed of information from the Record objects themselves. This is Equivalent to passing the list: `['PY', 'TI', 'SO', 'VL', 'BP']`.

        > If _detailedInfo_ is an iterable (that evaluates to `True`) of WOS Tags (or long names) The values  of those tags will be used to make the info attributes.

        > For each of the selected tags an attribute will be added to the node using the values of those tags on the first `Record` encountered. **Warning** iterating over `RecordCollection` objects is not deterministic the first `Record` will not always be same between runs. The node will be given attributes with the names of the WOS tags for each of the selected tags. The attributes will contain strings of containing the values (with commas removed), if multiple values are encountered they will be comma separated.

        > Note: _detailedInfo_ is not identical to the _detailedCore_ argument of [Recordcollection.networkCoCitation()](#metaknowledge.RecordCollection.networkCoCitation) or [Recordcollection.networkCitation()](#metaknowledge.RecordCollection.networkCitation)

        _weighted_ : `optional [bool]`

        > Default `True`, whether the edges are weighted. If `True` the edges are weighted by the number of co-authorships.

        _dropNonJournals_ : `optional [bool]`

        > Default `False`, whether to drop authors from non-journals

        _count_ : `optional [bool]`

        > Default `True`, causes the number of occurrences of a node to be counted

        # Returns

        `Networkx Graph`

        > A networkx graph with author names as nodes and collaborations as edges.
        """
        grph = nx.Graph()
        pcount = 0
        progArgs = (0, "Starting to make a co-authorship network")
        if metaknowledge.VERBOSE_MODE:
            progKwargs = {'dummy' : False}
        else:
            progKwargs = {'dummy' : True}
        if bool(detailedInfo):
            try:
                infoVals = []
                for tag in detailedInfo:
                    infoVals.append(normalizeToTag(tag))
            except TypeError:
                infoVals = ['year', 'title', 'journal', 'volume', 'beginningPage']
            def attributeMaker(Rec):
                attribsDict = {}
                for val in infoVals:
                    recVal = Rec.get(val)
                    if isinstance(recVal, list):
                        attribsDict[val] = ', '.join((str(v).replace(',', '') for v in recVal))
                    else:
                        attribsDict[val] = str(recVal).replace(',', '')
                if count:
                    attribsDict['count'] = 1
                if citeProfile:
                    attribsDict['citeProfile'] = {}
                return attribsDict
        else:
            if count:
                if citeProfile:
                    attributeMaker = lambda x: {'count' : 1, 'citeProfile' : {}}
                else:
                    attributeMaker = lambda x: {'count' : 1}
            else:
                if citeProfile:
                    attributeMaker = lambda x: {'citeProfile' : {}}
                else:
                    attributeMaker = lambda x: {}
        with _ProgressBar(*progArgs, **progKwargs) as PBar:
            for R in self:
                if PBar:
                    pcount += 1
                    PBar.updateVal(pcount/ len(self), "Analyzing: " + str(R))
                if dropNonJournals and not R.createCitation().isJournal():
                    continue
                if useShortNames:
                    authsList = R.get('authorsShort', [])
                else:
                    authsList = R.get('authorsFull', [])
                if authsList:
                    authsList = list(authsList)
                    detailedInfo = attributeMaker(R)
                    if citeProfile:
                        citesLst = R.get('citations', [])
                    for i, auth1 in enumerate(authsList):
                        if auth1 not in grph:
                            grph.add_node(auth1, **detailedInfo.copy())
                        elif count:
                            grph.node[auth1]['count'] += 1
                        if citeProfile:
                            for c in citesLst:
                                try:
                                    grph.node[auth1]['citeProfile'][c] += 1
                                except KeyError:
                                    grph.node[auth1]['citeProfile'][c] = 1
                        for auth2 in authsList[i + 1:]:
                            if auth2 not in grph:
                                grph.add_node(auth2, **detailedInfo.copy())
                            elif count:
                                grph.node[auth2]['count'] += 1
                            if citeProfile:
                                for c in citesLst:
                                    try:
                                        grph.node[auth2]['citeProfile'][c] += 1
                                    except KeyError:
                                        grph.node[auth2]['citeProfile'][c] = 1
                            if grph.has_edge(auth1, auth2) and weighted:
                                grph.edges[auth1, auth2]['weight'] += 1
                            elif weighted:
                                grph.add_edge(auth1, auth2, weight = 1)
                            else:
                                grph.add_edge(auth1, auth2)
            if citeProfile:
                if PBar:
                    PBar.updateVal(.99, "Extracting citation profiles")
                previous = {}
                for n, dat in grph.nodes(data = True):
                    previous[n] = dat
                    #zip(*l) undoes zip(l1, l2)
                    try:
                        cites, counts = zip(*dat['citeProfile'].items())
                    except ValueError:
                        cites, counts = [], []
                    dat['citeProfileCites'] = '|'.join((str(c) for c in cites))
                    dat['citeProfileCounts'] = '|'.join((str(c) for c in counts))
                    del dat['citeProfile']
            if PBar:
                PBar.finish("Done making a co-authorship network from {}".format(self))
        return grph