In [6]:
# making authors list

path = '../data_original/'


def make_authors_list_from_csv(filename):
    authors_list = []
    with open(path+filename+'.csv') as f:
        next(f)
        for line in f:
            split = line.split('|')
            authors = split[2].split(',')            
            authors_clean = []
            for author in authors:
                authors_clean.append(author.lstrip())
            # authors list
            for author in authors_clean:
                author= author.lstrip()
                if not(author in authors_list):
                    authors_list.append(author.lstrip())        
    authors_list = sorted(authors_list)
    authors_dict = {}
    i = 0
    for author in authors_list:
        authors_dict[author] = i
        i+=1
    return authors_list,authors_dict



# making dictionnary for indexing author   
# construction poster dictionary  
# for each poster: the list of collaborators
def make_poster_dict_from_csv(filename):
    poster_count = {}
    poster_dict = {}
    with open(path+filename+'.csv') as f:
        next(f)
        for line in f:
            split = line.split('|')
            posterid = int(split[0])
            authors = split[2].split(',')            
            authors_id = []
            for author in authors:
                author = author.lstrip()
                authors_id.append(authors_dict[author.lstrip()])
                if author in poster_count:
                    poster_count[author]+=1
                else:
                    poster_count[author]=1
            poster_dict[posterid] = authors_id
    return poster_dict,poster_count  


def make_pairs(l1,l2):
    if len(l1)>0:
        #print [l1,l2]
        for i in range(len(l1)):
            l2.append([l1[0],l1[i]])
        make_pairs(l1[1:],l2)
    else:
        return l2
    return l2
        

# Listing of pairwise collaboration
def make_pairwise_dictionary(poster_dict):
    pair_dict = {}
    for p in poster_dict:
        a = poster_dict[p]
        pairs = make_pairs(a,[])
        #print a, pairs
        for pair in pairs:
            pair = tuple(pair)
            if pair in pair_dict:
                pair_dict[pair]+=1
            else:
                pair_dict[pair]=1
    return pair_dict


# Connex

def make_connected_components(pair_dict):
    import networkx as nx
    G=nx.Graph()
    G.add_nodes_from(range(len(pair_dict)))
    G.add_edges_from(pair_dict.keys())
    return  nx.connected_components(G)



# crop small clusters
def crop_graph(graph,Nmin):
    croped_graph = [];
    for group in graph:
        if len(group)>Nmin:
            croped_graph.append(group)
    return croped_graph

In [7]:
filename = 'AbstractsCosyne2012'
authors_list,authors_dict = make_authors_list_from_csv(filename)
poster_dict,poster_count = make_poster_dict_from_csv(filename)
pair_dict = make_pairwise_dictionary(poster_dict)
cc = make_connected_components(pair_dict)
cc_crop = crop_graph(cc,20)

In [13]:
# generating json file
import os
path = '../data_original/'

def makejson(cc,authors_list,pair_dict,poster_count, filename):
    
    authorsids = [item for sublist in cc for item in sublist]
    newids = range(len(authorsids))
    old_to_new = {}
    for new in newids:
        old_to_new[authorsids[new]] = new
        
    with open(path+filename+".json", "w") as outfile:
        #nodes
        outfile.write("{\n\"nodes\":[\n")
        for newid in newids:
            oldid = authorsids[newid]
            for i_group in range(len(cc)):
                for author_in_group in cc[i_group]:
                    if (oldid == author_in_group):
                        value = i_group
                        au = authors_list[oldid]
                        outfile.write("{\"name\":\"" + au +"\",\"group\":"+str(value+1)+",\"count\":"+str(poster_count[au])+"},\n" )
        outfile.seek(-2, os.SEEK_END)
        outfile.truncate()
        outfile.write("],\n")
        
        #links
        outfile.write("\"links\":[\n")
        
        keys = pair_dict.keys()
        for i_pair in range(len(keys)):
            pair = keys[i_pair]
            if pair[0] in authorsids and pair[1] in authorsids:
                value = pair_dict[pair]
                outfile.write("{\"source\":" + str(old_to_new[pair[0]]) +",\"target\":"+str(old_to_new[pair[1]])+",\"value\":"+str(value)+"},\n" )    
        outfile.seek(-2, os.SEEK_END)
        outfile.truncate()
        outfile.write("]\n}")

        
        

        
# poster count when multiple poster
def make_json_poster_count(poster_count,filename,number_min=1):
    poster_count_big ={}        
    for poster in poster_count:
        if poster_count[poster]>=number_min:
            poster_count_big[poster]=poster_count[poster]
    print poster_count_big
    with open(filename+".json", "w") as outfile:
        #nodes
        outfile.write("{\n\"names\":[\n")
        outfile.write("{\"name\":\"" + authors_list[oldid] +"\",\"group\":"+str(value+1)+"},\n" )
        outfile.seek(-2, os.SEEK_END)
    
    return poster_count_big    

makejson(cc_crop,authors_list,pair_dict,poster_count, 'cosyne12_small');
#make_json_poster_count(poster_count,'poster_count_big',2);
#make_json_poster_count(poster_count,'poster_count');

In [22]:
print """ "a" """


 "a" 

In [23]:
print "a"


a

In [11]:
poster_count


Out[11]:
{'A. Moses Lee': 2,
 'Aaron Bornstein': 1,
 'Aaron Koralek': 1,
 'Aaron Seitz': 1,
 'Aaron Suminski': 2,
 'Abigail Morrison': 1,
 'Abram Friesen': 1,
 'Abtine Tavassoli': 1,
 'Ad Aertsen': 1,
 'Adam Charles': 1,
 'Adam Johnson': 1,
 'Adam Kepecs': 1,
 'Adam Kohn': 2,
 'Adam Zaidel': 1,
 'Adrienne Fairhall': 1,
 'Ahmad Osman': 1,
 'Akinori Ebihara': 1,
 'Alain Marchand': 1,
 'Alaina Case': 1,
 'Alan Litke': 1,
 'Alan Stocker': 1,
 'Alan Veliz-Cuba': 1,
 'Alberto Bernacchia': 1,
 'Aldo Faisal': 4,
 'Alejandro Fernandez Bujan': 1,
 'Alex D. Reyes': 1,
 'Alex Gomez-Marin': 1,
 'Alex Huk': 1,
 'Alex Kwan': 2,
 'Alexandar Kozarev': 1,
 'Alexander Dimitrov': 1,
 'Alexander Ecker': 1,
 'Alexander Genkin': 1,
 'Alexander Huth': 1,
 'Alexandre Pouget': 6,
 'Alexandro Ramirez': 1,
 'Alfred Kaye': 1,
 'Ali Mohebi': 1,
 'Ali Neishabouri': 1,
 'Alireza Soltani': 2,
 'Alison Barker': 1,
 'Aljoscha Nern': 1,
 'Aljoscha Schulze': 1,
 'Alla Karpova': 2,
 'Alon Chen': 1,
 'Alon Rubin': 1,
 'Aman Saleem': 1,
 'Amy Peng': 1,
 'An Vu': 1,
 'Ana Raquel Martins': 2,
 'Anandamohan Ghosh': 1,
 'Anda Degeratu': 1,
 'Andre Longtin': 1,
 'Andre Mendonca': 2,
 'Andrea Barreiro': 1,
 'Andreas Schaefer': 1,
 'Andreas Thomik': 1,
 'Andreas Tolias': 2,
 'Andreas V.M. Herz': 3,
 'Andreea Lazar': 1,
 'Andrew Fagg': 2,
 'Andrew Lees': 1,
 'Andrew Leifer': 1,
 'Andrew Tan': 1,
 'Andrew Welchman': 1,
 'Andrew Zaharia': 1,
 'Angela Radulescu': 1,
 'Angela Yu': 1,
 'Anirvan Nandy': 3,
 'Anita Disney': 1,
 'Anne Churchland': 1,
 'Anne Collins': 1,
 'Annika Linke': 1,
 'Anthony Norcia': 1,
 'Anthony Zador': 3,
 'Antonello Bonci': 2,
 'Antonio Lara': 1,
 'Antonio Rangel': 1,
 'Anya Skatova': 1,
 'Arash Afraz': 1,
 'Arash Fassihi': 1,
 'Aravinthan Samuel': 1,
 'Ari Pakman': 1,
 'Ari Rosenberg': 1,
 'Arjun Bharioke': 2,
 'Arkarup Bandyopadhyay': 1,
 'Arnulf Graf': 1,
 'Arpiar Saunders': 1,
 'Arseny Finkelstein': 1,
 'Arvind Kumar': 1,
 'Ashok Litwin-Kumar': 1,
 'Asli Ayaz': 1,
 'Atbin Djamshidian': 1,
 'Athena Akrami': 1,
 'Aurel Lazar': 1,
 'Aviv Mezer': 1,
 'Ayse Yarali': 1,
 'Badr Albanna': 1,
 'Baktash Babadi': 2,
 'Balaji Sriram': 1,
 'Bard Ermentrout': 1,
 'Bardia Behabadi': 1,
 'Bart Larsen': 1,
 'Bartlett Mel': 3,
 'Behrad Noudoost': 1,
 'Benjamin Greenberg': 1,
 'Benjamin Hayden': 1,
 'Bernardo Sabatini': 1,
 'Beth Lopour': 1,
 'Bijan Pesaran': 1,
 'Bilal Bari': 1,
 'Bilal Haider': 1,
 'Biljana Petreska': 1,
 'Bingni Brunton': 1,
 'Bob Schafer': 1,
 'Bosco Tjan': 1,
 'Brent Doiron': 2,
 'Brett Vintch': 1,
 'Brian Flynn': 1,
 'Brian Wandell': 1,
 'Brice Bathellier': 1,
 'Britni Crocker': 1,
 'Brittany Burrows': 1,
 'Bruno Averbeck': 1,
 'Bruno Olshausen': 2,
 'Bryan Seybold': 1,
 'Byron Yu': 2,
 'C Shawn Green': 1,
 'Cahir O\xc3\xadKane': 1,
 'Caleb Kemere': 2,
 'Calin Buia': 1,
 'Carina Curto': 4,
 'Carl Smith': 1,
 'Carlos Brody': 1,
 'Carlotta Martelli': 1,
 'Caswell Barry': 1,
 'Catalin Rusu': 1,
 'Catherine Dulac': 1,
 'Cecilia Babul': 1,
 'Cengiz Pehlevan': 1,
 'Chaohui Guo': 1,
 'Charles Gray': 1,
 'Chi-Hon Lee': 1,
 'Chris Fang-Yen': 1,
 'Chris Rozell': 2,
 'Chris Werner': 1,
 'Christian Leibold': 1,
 'Christian Tetzlaff': 2,
 'Christine Portfors': 1,
 'Christof Koch': 1,
 'Christoph  Schreiner': 1,
 'Christoph Kayser': 1,
 'Christoph Kirst': 2,
 'Christoph Kolodziejski': 2,
 'Christopher Cueva': 1,
 'Christopher Hillar': 2,
 'Christopher Kanan': 1,
 'Christopher Moore': 2,
 'Christopher Pack': 1,
 'Christos Constantinidis': 1,
 'Chun-Yuan Ting': 1,
 'Chung-Chuan Lo': 1,
 'Chunyu Duan': 1,
 'Cinira Diogo': 1,
 'Clark Fisher': 1,
 'Claudia Clopath': 1,
 'Constantin Rothkopf': 1,
 'Corey Ziemba': 2,
 'Corinne Teeter': 1,
 'Cristina Savin': 1,
 'Cristopher Niell': 1,
 'Cynthia A Chestek': 1,
 'DJ Strouse': 2,
 'Damon Chandler': 1,
 'Daniel Ben Dayan Rubin': 1,
 'Daniel Bullock': 1,
 'Daniel Butts': 2,
 'Daniel Coca': 1,
 'Daniel Huber': 2,
 'Daniel Kaping': 1,
 'Daniel Knudsen': 1,
 'Daniel Lee': 1,
 'Daniel Leventhal': 1,
 'Daniel Little': 1,
 'Daniel McNamee': 1,
 "Daniel O'Connor": 2,
 'Daniel Polley': 1,
 'Daniel Wolpert': 1,
 'Daniel Zoran': 1,
 'Danko Nikolic': 1,
 'Darin Dougherty': 1,
 'Dario Ringach': 1,
 'David Barack': 1,
 'David Barrett': 1,
 'David Field': 1,
 'David Freedman': 1,
 'David Kastner': 1,
 'David Morton': 1,
 'David Raposo': 1,
 'David Schneider': 1,
 'David Schulz': 1,
 'David Sussillo': 2,
 'Dean V. Buonomano': 1,
 'Dean Wyatte': 1,
 'Deborah Gunning': 1,
 'Deep Ganguli': 1,
 'Demian Battaglia': 1,
 'Diego Gutnisky': 1,
 'Dietmar Plenz': 1,
 'Dimitry Fisher': 1,
 'Dinu Albeanu': 2,
 'Dirk Walther': 1,
 'Dmitri Chklovskii': 6,
 'Dmitry Tsigankov': 1,
 'Dominique Pritchett': 1,
 'Dongsung Huh': 1,
 'Dora Angelaki': 2,
 'Dori Derdikman': 1,
 'Dougal Tervo': 2,
 'Douglas Ollerenshaw': 1,
 'EJ Chichilnisky': 1,
 'Earl Miller': 1,
 'Eddie Chang': 1,
 'Edith Reshef': 1,
 'Edward Boyden': 1,
 'Edward Callaway': 2,
 'Eero Simoncelli': 7,
 'Eftychios Pnevmatikakis': 1,
 'Einat Granot-Atedgi': 1,
 'Ekaterina Vinnik': 1,
 'Elad Ganmor': 1,
 'Elad Schneidman': 5,
 'Eldon Emberly': 1,
 'Elizabeth  Hulme': 1,
 'Emad Eskandar': 2,
 'Emery Brown': 2,
 'Emily Anderson': 1,
 'Emre Aksay': 3,
 'Engin Bumbacher': 1,
 'Eran Eldar': 1,
 'Eran Lottem': 1,
 'Eran Mukamel': 1,
 'Eric Chen': 1,
 'Eric DeWitt': 1,
 'Eric Denovellis': 1,
 'Eric Reifenstein': 1,
 'Eric Shea-Brown': 2,
 'Eric Trautman': 1,
 'Ethan Bromberg-Martin': 1,
 'Ethan Meyers': 1,
 'Ethan Solomon': 1,
 'Etienne Koechlin': 1,
 'Eugenio Culurciello': 1,
 'Evan Archer': 1,
 'Evan Schaffer': 1,
 'Eyal Nitzany': 1,
 'Eyal Seidemann': 2,
 'Fanis Panagiotaropoulos': 1,
 'Farhan Khawaja': 1,
 'Farran Briggs': 1,
 'Felix Felmy': 1,
 'Felix Patzelt': 1,
 'Felix Wichmann': 2,
 'Feryal Mehraban Pour Behbahani': 1,
 'Florentin W\xcb\x86rg\xcb\x86tter': 2,
 'Florian Gerard-Mercier': 1,
 'Florian Rau': 1,
 'Francis Willett': 2,
 'Francoise Dellu-Hagedorn': 1,
 'Frank W. Ohl': 1,
 'Frank Wood': 1,
 'Franziska Hellmundt': 1,
 'Fred Marbach': 1,
 'Fred Rieke': 1,
 'Fred Wolf': 1,
 'Frederic Theunissen': 1,
 'Frederick  Soo': 1,
 'Friedemann Zenke': 1,
 'Fritz Sommer': 3,
 'Fukunaga Izumi': 1,
 'Gabriel  Kreiman': 1,
 'Garrett Kenyon': 1,
 'Garrett Stanley': 2,
 'Garrison Cottrell': 1,
 'Gary Marsat': 1,
 'Gasper Tkacik': 3,
 'Gautam Agarwal': 1,
 'Geoffrey Goodhill': 1,
 'George R. Mangun': 1,
 'George Whitesides': 1,
 'Georgia Gregoriou': 1,
 'Gerald Rubin': 1,
 'Gergo Orb\xc2\xb7n': 1,
 'Gerhard Jocham': 1,
 'Gil Costa': 1,
 'Gonzalo Otazu': 1,
 'Gordon Logan': 1,
 'Graham Cummins': 1,
 'Greg Field': 1,
 'Greg Horwitz': 2,
 'Gregory  Schwartz ': 1,
 'Gregory W Wornell': 1,
 'Grigorios Sotiropoulos': 1,
 'Guillaume  Dugu\xc3\x88': 1,
 'Guillaume Hennequin': 1,
 'Guillaume Lajoie': 1,
 'Gus  Lott': 1,
 'Guy Isely': 1,
 'Gyorgy Buzsaki': 1,
 'Ha Hong': 1,
 'Hachi Manzur': 1,
 'Haim Sompolinsky': 6,
 'Hamilton Farris': 1,
 'Han Lun Yap': 1,
 'Hang Zhang': 1,
 'Hania  Kover': 1,
 'Hanlin Tang': 1,
 'Hannah Bernstein': 1,
 'Hans Trukenbrod': 1,
 'He Huang': 1,
 'He Zheng': 1,
 'Heesoo  Kim': 1,
 'Helen Shen': 1,
 'Helga Mazyar': 1,
 'Henning Sprekeler': 2,
 'Hideaki Shimazaki': 1,
 'Hiroki  Taniguchi': 1,
 'Hiroki Asari': 1,
 'Hiroki Terashima': 1,
 'Hiromu Tanimoto': 1,
 'Hiroshi Ban': 1,
 'Holly Gerhard': 1,
 'Hongdian Yang': 1,
 'Hongsup Shin': 1,
 'Hugo Fernandes': 1,
 'Ian Meinertzhagen': 1,
 'Ian Nauhaus': 1,
 'Ian Stevenson': 1,
 'Il Memming Park': 2,
 'Ila Fiete': 5,
 'Ilya Rybak': 1,
 'Ingmar Kanitscheider': 1,
 'Ingo Fr\xc2\xb8nd': 1,
 'Ioana Carcea': 1,
 'Irina Yonit Segal': 1,
 'Isaac Carruthers': 2,
 'Itai Pinkoviezsky': 1,
 'Itzhak Fried': 1,
 'I\xc3\x92igo Romero Arandia': 1,
 'Jack Gallant': 1,
 'Jacob Aptekar': 1,
 'Jacob Donoghue': 1,
 'Jacob Yates': 1,
 'Jacqueline Fulvio': 1,
 'Jakob Foerster': 1,
 'Jakob Macke': 2,
 'Jakob Voigts': 1,
 'Jaldert Rombouts': 1,
 'James DiCarlo': 2,
 'James Golden': 1,
 'James H Marshel': 1,
 'James M. Hyman': 1,
 'James Tee': 1,
 'James Trousdale': 1,
 'Jamie Near': 1,
 'Jan Clemens': 1,
 'Jan Drugowitsch': 2,
 'Jason Climer': 1,
 'Jason Fleischer': 1,
 'Jason Gerrard': 1,
 'Jason Hunzinger': 1,
 'Jason Rolfe': 1,
 'Javier Movellan': 1,
 'Jedidiah Carlson': 1,
 'Jeff Gavornik': 1,
 'Jeff Pettibone': 1,
 'Jeff Pobst': 1,
 'Jeffrey Beck': 4,
 'Jeffrey Erlich': 1,
 'Jeffrey Fitzgerald': 1,
 'Jeffrey Magee': 1,
 'Jeffrey Markowitz': 1,
 'Jeffrey Schall': 1,
 'Jeffrey Seely': 1,
 'Jeffrey Smith': 1,
 'Jelena Platisa': 1,
 'Jenia Jitsev': 1,
 'Jens Kremkow': 1,
 'Jeremy Freeman': 2,
 'Jeremy K. Seamans': 1,
 'Jessica A. Cardin': 1,
 'Jessica Fox': 1,
 'Jianzhong  Jin': 2,
 'Jochen Triesch': 1,
 'Joel Alvarez': 1,
 'Johannes Burge': 1,
 'Johannes Nehrkorn': 1,
 'John  Flannery': 1,
 'John Cunningham': 1,
 'John Gale': 1,
 'John Murray': 1,
 "John O'Doherty": 1,
 'John Pearson': 1,
 'John R Carlson': 1,
 'John Reppas': 1,
 'John Reynolds': 4,
 'John Sheppard': 1,
 'John Tuthill': 1,
 'John Widloski': 1,
 'Joline Fan': 1,
 'Jonathan  Huggins': 1,
 'Jonathan B. Demb': 1,
 'Jonathan Cohen': 1,
 'Jonathan Hunt': 1,
 'Jonathan Kao': 1,
 'Jonathan Pillow': 4,
 'Jonathan Rubin': 1,
 'Jonathan Victor': 1,
 'Jonathan Wallis': 1,
 'Jonathan Winawer': 1,
 'Joon Hyuk Park': 1,
 'Jose Carmena': 2,
 'Jose-Manuel Alonso': 2,
 'Joseph Bergan': 1,
 'Joseph Madsen': 2,
 'Josh Huang': 1,
 'Josh McDermott': 1,
 'Joshua Berke': 1,
 'Joshua Gold': 1,
 'Joshua Levy': 1,
 'Joshua Siegle': 2,
 'Jozsef Fiser': 1,
 'Juan Florez Weidinger': 1,
 'Jude Mitchell': 3,
 'Judy Walker': 1,
 'Jugoslava Acimovic': 1,
 'Julian Ammer': 1,
 'Julijana Gjorgjieva': 2,
 'Junya Hirokawa': 1,
 'Justin Ales': 1,
 'Justin Kiggins': 1,
 'K. Jannis Hildebrandt': 1,
 'Kanaka Rajan': 1,
 'Karel Svoboda': 2,
 'Karim Oweiss': 1,
 'Karl Deisseroth': 1,
 'Kate Jeffery': 1,
 'Katherine Ames': 1,
 'Katherine Morrison': 1,
 'Kathryn Hedrick': 1,
 'Kay Thurley': 1,
 'Kayvon Daie': 3,
 'Kazuo Imaizumi': 1,
 'Kedarnath  Vilankar': 1,
 'Keijo Ruohonen': 1,
 'Keith Johnson': 1,
 'Keith Mathieson': 1,
 'Kelvin So': 1,
 'Kendrick Kay': 1,
 'Kenneth Harris': 2,
 'Kent Conover': 1,
 'Kentaroh Takagaki': 1,
 'Kerstin Preuschoff': 1,
 'Kevin Beier': 1,
 'Kevin Lin': 1,
 'Kevin Shi': 1,
 'Kexin  Yuan': 1,
 'KiJung Yoon': 1,
 'Klaus Pawelzik': 1,
 'Kolia Sadeghi': 1,
 'Konrad Kording': 1,
 'Kresimir Josic': 2,
 'Kris Chaisanguanthum': 1,
 'Krishna Shenoy': 6,
 'Kristin Branson': 1,
 'Kristina Nielsen': 1,
 'Kristofer Bouchard': 1,
 'Kyle Lepage': 1,
 'Larry Abbott': 5,
 'Lars Buesing': 1,
 'Laura Lewis': 1,
 'Laurel Carney': 1,
 'Lauren Jepson': 1,
 'Laurence  Aitchison': 1,
 'Laurence Hunt': 1,
 'Laurence Maloney': 1,
 'Lawrence Sincich': 1,
 'Leigh Hochberg': 1,
 'Leonard Maler': 1,
 'Leslie Osborne': 1,
 'Li Zhaoping': 1,
 'Liam Paninski': 4,
 'Lin  Tian': 1,
 'Linda Wilbrecht': 2,
 'Liu Liu': 1,
 'Loic Matthey': 1,
 'Loren  Looger': 1,
 'Loren Frank': 2,
 'Lorric Ziegler': 1,
 'Lou Scheffer': 1,
 'Luigi Acerbi': 1,
 'Luke Urban': 1,
 'Lung-Hao Tai': 1,
 'Lyubov Ushakova': 1,
 'Magor Lorincz': 1,
 'Mandy Turner': 1,
 'Maneesh Sahani': 3,
 'Manuel Berning': 1,
 'Marc Gershow': 1,
 'Marc Sommer': 1,
 'Marc Timme': 3,
 'Marc Tittgemeyer': 1,
 'Margot Wohl': 1,
 'Maria Geffen': 2,
 'Maria Vicente': 2,
 'Marie McCulloch': 1,
 'Marino Pagan': 1,
 'Marissa Powers': 1,
 'Marja-Leena Linne': 1,
 'Mark Bear': 1,
 'Mark Churchland': 2,
 'Mark Frye': 1,
 'Mark Goldman': 4,
 'Mark Harnett': 1,
 'Mark Kramer': 1,
 'Mark Zarella': 1,
 'Markus Meister': 2,
 'Martin Greschner': 1,
 'Martin Stemmler': 2,
 'Martin Vinck': 1,
 'Maryam Shanechi': 1,
 'Maryam Vaziri-Pashkam': 1,
 'Masato Okada': 1,
 'Masud Husain': 1,
 'Mate Lengyel': 3,
 'Mathew E. Diamond': 1,
 'Matt Mian': 1,
 'Matt Smith': 1,
 'Matteo Carandini': 4,
 'Matthew  Bodenhamer': 1,
 'Matthew Colonnese': 1,
 'Matthew Cook': 1,
 'Matthew Golub': 1,
 'Matthew Kaufman': 2,
 'Matthew Koh': 1,
 'Matthew Nassar': 1,
 'Matthew Wilson': 1,
 'Matthias Bethge': 2,
 'Matthias Kaschube': 1,
 'Matthieu Louis': 1,
 'Matthieu Wyart': 1,
 'Mattia Rigotti': 2,
 'Mattias Karlsson': 1,
 'Mayank Kabra': 1,
 'Mehmet Fisek': 1,
 'Mehrdad Jazayeri': 1,
 'Melanie Lee': 2,
 'Melchi Michel': 1,
 'Mengchen Zhu': 1,
 'Merav Stern': 1,
 'Michael  Gedalin': 1,
 'Michael  Ham': 1,
 'Michael  Merzenich': 1,
 'Michael Berry': 3,
 'Michael Black': 1,
 'Michael Buice': 2,
 'Michael DeWeese': 2,
 'Michael Gastpar': 1,
 'Michael Graupner': 1,
 'Michael Hasselmo': 1,
 'Michael H\xe2\x80\xb0usser': 1,
 'Michael J Frank': 2,
 'Michael Okun': 1,
 'Michael Platt': 2,
 'Michael Reiser': 1,
 'Michael Schnabel': 1,
 'Michael Stryker': 1,
 'Michael T. Lippert': 1,
 'Michel Besserve': 1,
 'Michele Insanally': 1,
 'Michoel Snow': 1,
 'Mihaly Kollo': 1,
 'Mijung Park': 1,
 'Mikko Juusola': 2,
 'Mili Milosavljevic': 1,
 'Miranda Babiak': 1,
 'Misha Tsodyks': 2,
 'Motonori Yamaguchi': 1,
 'Nachum Ulanovsky': 1,
 'Najib Majaj': 1,
 'Natalia Shevtsova': 1,
 'Natalya Zaika': 1,
 'Nathaniel Daw': 4,
 'Neil Burgess': 1,
 'Nicholas Furl': 1,
 'Nicholas Hatsopoulos': 2,
 'Nicholas Price': 1,
 'Nicholas Priebe': 1,
 'Nicholas Steinmetz': 1,
 'Nick Ketz': 1,
 'Nicole Carlson': 1,
 'Nicole Rust': 1,
 'Nikhil Deshmukh': 1,
 'Nikos K. Logothetis': 2,
 'Nima Mesgarani': 1,
 'Nina C. Di Pietro': 1,
 'Ning Qian': 1,
 'Ning-long Xu': 1,
 'Nisheeth Srivastava': 1,
 'Noah Cowan': 1,
 'O. Ozan Koyluoglu': 1,
 'Odelia Schwartz': 2,
 'Okihide Hikosaka': 1,
 'Olivier List': 1,
 'Olivier Marre': 1,
 'Omar Ahmed': 1,
 'Omri Barak': 2,
 'Oren Forkosh': 1,
 'Pamela  Reinagel': 1,
 'Panyue Deng': 1,
 'Parvez Ahammad': 1,
 'Pat Shoemaker': 1,
 'Patrick Cavanagh': 1,
 'Patrick Jasinski': 1,
 'Patrick Purdon': 1,
 'Patrick Stinson': 1,
 'Patr\xc3\x8ccia Correia': 1,
 'Paul Bays': 2,
 'Paul Nuyujukian': 2,
 'Paul Schrater': 6,
 'Pavel Itskov': 1,
 'Pedro Maldonado': 1,
 'Peggy Series': 3,
 'Peter  Dayan': 4,
 'Peter Bossaerts': 1,
 'Peter Latham': 2,
 'Peter Li': 1,
 'Peter Shizgal': 1,
 'Petr Znamenskiy': 2,
 'Philip Sabes': 1,
 'Philipp Berens': 1,
 'Pierre Yger': 1,
 'Pieter Roelfsema': 1,
 'Pietro Berkes': 1,
 'Priyanka Gupta': 1,
 'Qi Wang': 2,
 'Quan Wen': 1,
 'R Channing Moore': 1,
 'R Ebitz': 1,
 'R. Blythe Towal': 1,
 'R. Matthias Hennig': 1,
 'Rachel Wilson': 1,
 'Rajesh Rao': 1,
 'Ralf Engbert': 1,
 'Ralf Haefner': 1,
 'Ralf Wessel': 1,
 'Ran Rubin': 2,
 "Randall O'Reilly": 2,
 'Ranulfo Romo': 1,
 'Raoul-Martin Memmesheimer': 2,
 'Rava da Silveira': 1,
 'Rebecca Solomon': 1,
 'Reza  Lashgari': 1,
 'Rhodri Cusack': 1,
 'Richard Andersen': 1,
 'Richard Born': 1,
 'Richard Fetter': 1,
 'Richard Kempter': 1,
 'Richard Naud': 1,
 'Rishabh Jain': 1,
 'Ritwik Niyogi': 1,
 'Robbe Goris': 1,
 'Robert  Desimone': 1,
 'Robert Froemke': 3,
 'Robert G\xc2\xb8tig': 1,
 'Robert Haslinger': 1,
 'Robert Rosenbaum': 2,
 'Robert Schmidt': 1,
 'Rodrigo Laje': 1,
 'Roger Hardie': 1,
 'Rollin Hu': 2,
 'Ronald  Van Den Berg': 4,
 'Ronen Segev': 4,
 'Roozbeh Kiani': 1,
 'Ruben Coen-Cagli': 2,
 'Ruben Moreno': 2,
 'Ryan Natan': 2,
 'Ryan Rowekamp': 1,
 'S.A. Billings': 1,
 'Salva Ardid': 1,
 'Sameer Sheth': 1,
 'Sander Bohte': 1,
 'Sandro Romani': 1,
 'Sanggyun Kim': 1,
 'Santiago Jaramillo': 1,
 'Sarah Woolley': 1,
 'Saskia de Vries': 1,
 'Scott Taylor': 1,
 'Sean Kelly': 1,
 'Sean Trettel': 1,
 'Sergey Stavisky': 1,
 'Seth Madlon-Kay': 2,
 'Sethu Vijayakumar': 1,
 'Seung-Hee Lee': 1,
 'Shaiyan Keshvari': 1,
 'Shan Yu': 1,
 'Shantanu Jadhav': 1,
 'Shaowen Bao': 1,
 'Shaul Druckmann': 1,
 'Shaun Patel': 1,
 'Sherika Sylvester': 2,
 'Shiming Tang': 1,
 'Shin-ya  Takemura': 1,
 'Shinji Nishimoto': 1,
 'Shirin Hadizadeh': 1,
 'Shiv Vitaladevuni': 1,
 'Sidhartha Dongre': 1,
 'Simon Barthelm\xc3\x88': 1,
 'Simon Peron': 1,
 'Simon Rumpel': 1,
 'Simon Sponberg': 1,
 'Siyu Zhang': 1,
 'Sotiris  Masmanidis': 1,
 'Srinimisha Morkonda': 1,
 'Stan Floresco': 1,
 'Stanley Jose Komban ': 1,
 'Stefan Everling': 1,
 'Stefano Fusi': 2,
 'Stefano Panzeri': 1,
 'Stephanie Gleiss': 1,
 'Stephen Baccus': 1,
 'Stephen Heinen': 1,
 'Stephen Plaza': 1,
 'Stephen Ryu': 5,
 'Stephen Williams': 1,
 'Steve  Gotts': 1,
 'Steve Cox': 1,
 'Steven Brumby': 1,
 'Steven Chase': 1,
 'Stuart Layton': 1,
 'Stuart Yarrow': 1,
 'SueYeon Chung': 1,
 'Sukbin Lim': 1,
 'Supriya Ray': 1,
 'Susanne Schreiber': 1,
 'Sven Jahnke': 1,
 'Sway Chen': 1,
 'Sydney Cash': 2,
 'Tao Hu': 2,
 'Taro Toyoizumi': 2,
 'Tatiana Pasternak': 1,
 'Tatjana Tchumatchenko': 1,
 'Tatyana Sharpee': 5,
 'Terrence Sejnowski': 1,
 'Thiago Gouvea': 1,
 'Thierry Emonet': 1,
 'Thilo Womelsdorf': 1,
 'Thomas Clandinin': 1,
 'Thomas Geib': 1,
 'Thomas Palmeri': 1,
 'Thomas Wiecki': 1,
 'Tim Behrens': 1,
 'Tim P. Vogels': 3,
 'Timothy Buschman': 1,
 'Timothy Gardner': 1,
 'Timothy Gentner': 2,
 'Timothy Hanks': 1,
 'Tirin Moore': 3,
 'Todd Coleman': 1,
 'Tom Daniel': 1,
 'Tomoki Tsuchida': 1,
 'Tony Movshon': 4,
 'Trevor Wardill': 1,
 'Tuomo M\xe2\x80\xb0ki-Marttunen': 1,
 'Tyler Lee': 2,
 'Ulf Ziemann': 1,
 'Upinder S. Bhalla': 1,
 'Uri Eden': 1,
 'Urs Koster': 1,
 'Uwe Friederich': 1,
 'Vahid Esmaeili': 1,
 'Valerio Mante': 1,
 'Vani Rajendran': 1,
 'Vasileios Christopoulos': 1,
 'Veronica Weiner': 1,
 'Victor  Chan': 2,
 'Victoria Butler': 1,
 'Victoria Phoumthipphavong': 1,
 'Vikash Gilja': 1,
 'Vikranth Bejjanki': 1,
 'Vincent Pieribone': 1,
 'Vincent Valton': 1,
 'Vishal Kapoor': 1,
 'Vitaly Klyachko': 2,
 'Vivek Jayaraman': 1,
 'Vivienne Ming': 2,
 'Vladimir Itskov': 4,
 'W. Martin Usrey': 1,
 'Walter German': 1,
 'Walter Talbott': 1,
 'Warasinee Chaisangmongkon': 1,
 'Wayne Greg': 1,
 'Wei Ji Ma': 4,
 'William  Bialek': 1,
 'William Anderson': 1,
 'William Bishop': 1,
 'William Nesse': 1,
 'William Newsome': 2,
 'William Schafer': 1,
 'Wilson Geisler': 2,
 'Winrich Freiwald': 1,
 'Wolf Singer': 1,
 'Wolfgang Keil': 1,
 'Wulfram Gerstner': 4,
 'Xaq Pitkow': 1,
 'Xiao-Jing Wang': 3,
 'Xiaofeng Li': 1,
 'Xinyu Liu': 1,
 'Xue-Lian Qi': 1,
 'Xundong Wu': 1,
 'Yael Niv': 1,
 'Yair Shemesh': 1,
 'Yair Weiss': 1,
 'Yan Karklin': 1,
 'Yanbin V. Wang': 1,
 'Yang Dan': 2,
 'Yang Yang': 1,
 'Yann LeCun': 1,
 'Yannick-Andre Breton': 1,
 'Yanping Huang': 1,
 'Yarden Cohen': 1,
 'Yaroslav Molkov': 1,
 'Yehezkel Sztainberg': 1,
 'Yen-Nan Lin': 1,
 'Yevgeniy Slutskiy': 1,
 'Yi-Hsuan Lee': 1,
 'Yoram Ben-Shaul': 1,
 'Yoram Burak': 1,
 'Yosef Yarom': 1,
 'Yu-Chi Huang': 1,
 'Yuji Ikegaya': 1,
 'Yushi  Wang': 2,
 'Yuwei Cui': 1,
 'Yuzhi Chen': 2,
 'Zachary Kilpatrick': 1,
 'Zachary Lindbloom-Brown': 1,
 'Zachary Mainen': 4,
 'Zachary Mayko': 1,
 'Zachary Roth': 1,
 'Zhai Fangwen': 1,
 'Zhiyuan Lu': 1,
 'Zhuo Wang': 1,
 'Ziqiang Wei': 1,
 'Ziv Rotman': 2,
 'Ziv Williams': 2}

In [ ]: