[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Formating of author field in debian/upstream (Was: [Debichem-commits] r3618 - /unstable/gromacs/debian/upstream)



Hi,

On Mon, May 07, 2012 at 12:13:31AM +0200, Andreas Tille wrote:
> On Sun, May 06, 2012 at 09:19:54PM +0200, Michael Banck wrote:
> > > --- unstable/gromacs/debian/upstream (original)
> > > +++ unstable/gromacs/debian/upstream Fri May  4 13:01:17 2012
> > > @@ -1,6 +1,6 @@
> > >  Name: GROMACS
> > >  Reference:
> > > - - Author: B. Hess, C. Kutzner, D. van der Spoel, E. Lindahl
> > > + - Author: Hess, Berk and Kutzner, Carsten and van der Spoel, David and Lindahl, Erik
> > >     Title: "GROMACS 4: Algorithms for Highly Efficient, Load-Balanced, and Scalable Molecular Simulation"
> > 
> > I am fine with having the author information in regular BibTeX format in
> > debian/upstream, as long as it gets displayed human-readable on the web
> > page.  However, the web page currently displays it as above.  If a
> > change to display it as usual (I would expect "Berk Hess, Carsten
> > Kutzener, David van der Spoel and Erik Lindahl" is not planned for the
> > near future, I would suggest reverting the above change (possibly
> > keeping the spelt out first names).
> 
> I do not intend to implement something which comes close to a BibTeX
> parser on the tasks pages.  In other words:  The tasks pages will
> feature the verbatim string as it is given in the Author field.  I
> had some private discussion with Daniel and wie both in principle
> agree that it looks better if you use
> 
>    Firstname1 Lastname1 and Firstname2 Lastname2 and Firstname3 Lastname3
> 
> rather than
> 
>    Lastname1, Firstname1 and Lastname2, Firstname2 and Lastname3, Firstname3
> 
> My main motivation to use the later form (which I do not really prefer)
> because it was a verbatim copy of what was in the downloadable BibTeX
> record.  As far as I know BibTeX can deal nicely with both forms.

Right.
 
> So what can we do?  IMHO we should in any case try to use a form that BibTeX
> can deal with.  If we would agree to the first form mentioned above
> 
>    Firstname1 Lastname1 and Firstname2 Lastname2 and Firstname3 Lastname3
> 
> some regexp that substitutes all ' and' strings but the last one by ','
> could be found to make the string more Web page (tasks pages) friendly -
> but interpreting the second form seems to be a bit more complex (patches
> welcome for sure).

I've whipped up a patch (attached) which seems to work for most cases which are in
debian/upstream already (input/output attached as well).

The following still fail, due to bugs or unusual authors in debian/upstream:

Test string input:  Vullo, Alessandro, and Frasconi, Paolo

(", and" is wrong)

Test string input:  Li, Heng and Handsaker, Bob and Wysoker, Alec and
Fennell, Tim and Ruan, Jue and Homer, Nils and Marth, Gabor and
Abecasis, Goncalo and Durbin, Richard and 1000 Genome Project Data
Processing Subgroup

(well, that's kinda tricky - "1000 Genome Project Data
Processing Subgroup" does not have a "," like the others, so my
heuristics fail)

Test string input:  Michael Hanke and Yaroslav O. Halchenko and Per B.
Sederberg and Stephen Jos{\'e} Hanson and James V. Haxby and Stefan
Pollmann

(Does {\'e} render fine on the web? - the output is otherwise fine)

Test string input:  Van der Spoel D, Lindahl E, Hess B, Groenhof G, Mark
AE, Berendsen HJ
Test string input:  Trapnell C, Williams BA, Pertea G, Mortazavi AM,
Kwan G, van Baren MJ, Salzberg SL, Wold B, Pachter L.

(No "," between last name and first name, no final "and")

Test string input:  Xavier Didelot, Daniel Falush

(no "and", this one breaks on my patch)


Cheers,

Michael
Index: blendstasktools.py
===================================================================
--- blendstasktools.py	(Revision 3315)
+++ blendstasktools.py	(Arbeitskopie)
@@ -1488,6 +1488,37 @@
                     if row[pub]:
                         if pub == "pages":
                             row[pub] = re.sub("--", "-", row[pub])
+                        if pub == "authors":
+                            # assume "authors" string is a regular BibTeX "and" separated list of authors
+                            row[pub] = re.sub("AND", "and", row[pub].strip())
+                            authors_list = string.split(row[pub], " and ")
+                            # normalize several BibTeX styles to "First Last, First Last and First Last":
+                            # 1. "First Last and First Last and First Last"
+                            # 2. "Last, First and Last, First and Last, First"
+                            # 3. "First Last, First Last and First Last"
+                            authors_string = ""
+                            while (authors_list):
+                                author = authors_list.pop(0)
+                                if (author.count(",") > 1):
+                                    # 3. "First Last, First Last and First Last"
+                                    # authors string is already in desired format, keep it
+                                    authors_string = row[pub].strip()
+                                    break
+                                elif (row[pub].count(",") == row[pub].count(" and ") + 1):
+                                    # 2. "Last, First and Last, First and Last, First"
+                                    # reverse last and first name
+                                    (last, first) = string.split(author, ", ")
+                                    full_author = first + " " + last
+                                else:
+                                    # 1. "First Last and First Last and First Last"
+                                    full_author = author
+                                if (len(authors_list) > 1):
+                                    authors_string += full_author + ", "
+                                elif (len(authors_list) > 0):
+                                    authors_string += full_author + " and "
+                                else:
+                                    authors_string += full_author
+                            row[pub] = authors_string
                         if not dep.properties.has_key('published'):
                             dep.properties['published'] = {}
                         if dep.properties['published'].has_key(pub):
Test string input:  A. Ceroni and A. Passerini and A. Vullo and P. Frasconi
Test string output: A. Ceroni, A. Passerini, A. Vullo and P. Frasconi

Test string input:  Vullo, Alessandro, and Frasconi, Paolo
Test string output: Vullo, Alessandro, and Frasconi, Paolo

Test string input:  A. Ceroni, P. Frasconi, A. Passerini and A. Vullo
Test string output: A. Ceroni, P. Frasconi, A. Passerini and A. Vullo

Test string input:  P. Frasconi, A. Passerini and A. Vullo
Test string output: P. Frasconi, A. Passerini and A. Vullo

Test string input:  Subramanian, Amarendran and Kaufmann, Michael and Morgenstern, Burkhard
Test string output: Amarendran Subramanian, Michael Kaufmann and Burkhard Morgenstern

Test string input:  Burkhard Morgenstern
Test string output: Burkhard Morgenstern

Test string input:  Subramanian, Amarendran R. and Kaufmann, Michael and Morgenstern, Burkhard
Test string output: Amarendran R. Subramanian, Michael Kaufmann and Burkhard Morgenstern

Test string input:  Moller, Steffen and Krabbenhoft, Hajo and Tille, Andreas and Paleino, David and Williams, Alan and Wolstencroft, Katy and Goble, Carole and Holland, Richard and Belhachemi, Dominique and Plessy, Charles
Test string output: Steffen Moller, Hajo Krabbenhoft, Andreas Tille, David Paleino, Alan Williams, Katy Wolstencroft, Carole Goble, Richard Holland, Dominique Belhachemi and Charles Plessy

Test string input:  Kurtz, Stefan and Phillippy, Adam and Delcher, Arthur L. and Smoot, Michael and Shumway, Martin and Antonescu, Corina and Salzberg, Steven L.
Test string output: Stefan Kurtz, Adam Phillippy, Arthur L. Delcher, Michael Smoot, Martin Shumway, Corina Antonescu and Steven L. Salzberg

Test string input:  Fredrik Ronquist and Maxim Teslenko and Paul van der Mark and Daniel L. Ayres and Aaron Darling and Sebastian Höhna and Bret Larget and Liang Liu and Marc A. Suchard and John P. Huelsenbeck
Test string output: Fredrik Ronquist, Maxim Teslenko, Paul van der Mark, Daniel L. Ayres, Aaron Darling, Sebastian Höhna, Bret Larget, Liang Liu, Marc A. Suchard and John P. Huelsenbeck

Test string input:  Fredrik Ronquist and John P. Huelsenbeck
Test string output: Fredrik Ronquist and John P. Huelsenbeck

Test string input:  John P. Huelsenbeck and Fredrik Ronquist
Test string output: John P. Huelsenbeck and Fredrik Ronquist

Test string input:  Li, Heng and Ruan, Jue and Durbin, Richard
Test string output: Heng Li, Jue Ruan and Richard Durbin

Test string input:  Robert C. Edgar
Test string output: Robert C. Edgar

Test string input:  Robert C. Edgar
Test string output: Robert C. Edgar

Test string input:  Li, Heng and Ruan, Jue and Durbin, Richard
Test string output: Heng Li, Jue Ruan and Richard Durbin

Test string input:  Jan Aerts and T. Veenendaal
Test string output: Jan Aerts and T. Veenendaal

Test string input:  M. Matsumoto and T. Nishimura
Test string output: M. Matsumoto and T. Nishimura

Test string input:  Le Novère, Nicolas
Test string output: Nicolas Le Novère

Test string input:  Chevreux, Bastien and Pfisterer, Thomas and Drescher, Bernd and Driesel, Albert J. and Müller, Werner E.G. and Wetter, Thomas and Suhai, Sándor
Test string output: Bastien Chevreux, Thomas Pfisterer, Bernd Drescher, Albert J. Driesel, Werner E.G. Müller, Thomas Wetter and Sándor Suhai

Test string input:  Katoh, Kazutaka and Toh, Hiroyuki
Test string output: Kazutaka Katoh and Hiroyuki Toh

Test string input:  K. Katoh, G. Asimenos, H. Toh
Test string output: K. Katoh, G. Asimenos, H. Toh

Test string input:  Chevreux, Bastien and Pfisterer, Thomas and Drescher, Bernd and Driesel, Albert J. and Müller, Werner E.G. and Wetter, Thomas and Suhai, Sándor
Test string output: Bastien Chevreux, Thomas Pfisterer, Bernd Drescher, Albert J. Driesel, Werner E.G. Müller, Thomas Wetter and Sándor Suhai

Test string input:  James J.P. Stewart
Test string output: James J.P. Stewart

Test string input:  Schloss, P.D., et al.
Test string output: Schloss, P.D., et al.

Test string input:  Le Novère, Nicolas
Test string output: Nicolas Le Novère

Test string input:  Arun S. Konagurthu and James C. Whisstock and Peter J. Stuckey and Arthur M. Lesk
Test string output: Arun S. Konagurthu, James C. Whisstock, Peter J. Stuckey and Arthur M. Lesk

Test string input:  Guillaume Marcais and Carl Kingsford
Test string output: Guillaume Marcais and Carl Kingsford

Test string input:  A. Lupas, M. Van Dyke, and J. Stock
Test string output: A. Lupas, M. Van Dyke, and J. Stock

Test string input:  Stephen F. Altschul, Warren Gish, Webb Miller, Eugene W. Myers, David J. Lipman
Test string output: Stephen F. Altschul, Warren Gish, Webb Miller, Eugene W. Myers, David J. Lipman

Test string input:  Christine Gemünd, Chenna Ramu, Brigitte Altenberg-Greulich, and Toby J. Gibsona
Test string output: Christine Gemünd, Chenna Ramu, Brigitte Altenberg-Greulich, and Toby J. Gibsona

Test string input:  Slater, Guy C. and Birney, Ewan
Test string output: Guy C. Slater and Ewan Birney

Test string input:  S. Klein, M. Staring, K. Murphy, M. A. Viergever, J. P. W. Pluim
Test string output: S. Klein, M. Staring, K. Murphy, M. A. Viergever, J. P. W. Pluim

Test string input:  Schuler, Gregory D.
Test string output: Gregory D. Schuler

Test string input:  Peter Rice and Ian Longden and Alan Bleasby
Test string output: Peter Rice, Ian Longden and Alan Bleasby

Test string input:  Coelho, Flavio and Cruz, Oswaldo and Codeco, Claudia
Test string output: Flavio Coelho, Oswaldo Cruz and Claudia Codeco

Test string input:  Page, Roderic D. M.
Test string output: Roderic D. M. Page

Test string input:  Y. Zhang, J. Skolnick
Test string output: J. Skolnick Y. Zhang

Test string input:  Cole Trapnell1, Lior Pachter and Steven L. Salzberg
Test string output: Cole Trapnell1, Lior Pachter and Steven L. Salzberg

Test string input:  Cédric Notredame and Desmond G. Higgins and Jaap Heringa
Test string output: Cédric Notredame, Desmond G. Higgins and Jaap Heringa

Test string input:  Li, Heng
Test string output: Heng Li

Test string input:  C. Kingsford, K. Ayanbule, S.L. Salzberg
Test string output: C. Kingsford, K. Ayanbule, S.L. Salzberg

Test string input:  Theobald, Douglas L. and Wuttke, Deborah S.
Test string output: Douglas L. Theobald and Deborah S. Wuttke

Test string input:  Theobald, Douglas L. and Wuttke, Deborah S.
Test string output: Douglas L. Theobald and Deborah S. Wuttke

Test string input:  Theobald, Douglas L. and Wuttke, Deborah S.
Test string output: Douglas L. Theobald and Deborah S. Wuttke

Test string input:  Siddharthan, Rahul
Test string output: Rahul Siddharthan

Test string input:  Gouy, Manolo and Guindon, Stephane and Gascuel, Olivier
Test string output: Manolo Gouy, Stephane Guindon and Olivier Gascuel

Test string input:  N. Galtier, M. Gouy, C. Gautier
Test string output: N. Galtier, M. Gouy, C. Gautier

Test string input:  Li, Heng and Handsaker, Bob and Wysoker, Alec and Fennell, Tim and Ruan, Jue and Homer, Nils and Marth, Gabor and Abecasis, Goncalo and Durbin, Richard and 1000 Genome Project Data Processing Subgroup
Test string output: Li, Heng, Handsaker, Bob, Wysoker, Alec, Fennell, Tim, Ruan, Jue, Homer, Nils, Marth, Gabor, Abecasis, Goncalo, Durbin, Richard and 1000 Genome Project Data Processing Subgroup

Test string input:  Rambaut, A. and Grassly, N. C.
Test string output: A. Rambaut and N. C. Grassly

Test string input:  C. B. Hübschle, G. M. Sheldrick, B. Dittrich
Test string output: C. B. Hübschle, G. M. Sheldrick, B. Dittrich

Test string input:  Doring, Andreas and Weese, David and Rausch, Tobias and Reinert, Knut
Test string output: Andreas Doring, David Weese, Tobias Rausch and Knut Reinert

Test string input:  Doring, Andreas and Weese, David and Rausch, Tobias and Reinert, Knut
Test string output: Andreas Doring, David Weese, Tobias Rausch and Knut Reinert

Test string input:  Doring, Andreas and Weese, David and Rausch, Tobias and Reinert, Knut
Test string output: Andreas Doring, David Weese, Tobias Rausch and Knut Reinert

Test string input:  Warren, Rene L. and Sutton, Granger G. and Jones, Steven J. M. and Holt, Robert A.
Test string output: Rene L. Warren, Granger G. Sutton, Steven J. M. Jones and Robert A. Holt

Test string input:  Lenhard, Boris and Wasserman, Wyeth W.
Test string output: Boris Lenhard and Wyeth W. Wasserman

Test string input:  Frith, Martin C. and Wan, Raymond and Horton, Paul
Test string output: Martin C. Frith, Raymond Wan and Paul Horton

Test string input:  Paquola, Apuã C M, Machado, Abimael A, Reis, Eduardo M, Da Silva, Aline M, and Verjovski-Almeida, Sergio
Test string output: Paquola, Apuã C M, Machado, Abimael A, Reis, Eduardo M, Da Silva, Aline M, and Verjovski-Almeida, Sergio

Test string input:  Simon C. Heath
Test string output: Simon C. Heath

Test string input:  E Warwick Daw and Simon C Heath and Yue Lu
Test string output: E Warwick Daw, Simon C Heath and Yue Lu

Test string input:  Bornstein, B. J., Keating, S. M., Jouraku, A., and Hucka M.
Test string output: Bornstein, B. J., Keating, S. M., Jouraku, A., and Hucka M.

Test string input:  Paquola, Apuã C M, Machado, Abimael A, Reis, Eduardo M, Da Silva, Aline M, and Verjovski-Almeida, Sergio
Test string output: Paquola, Apuã C M, Machado, Abimael A, Reis, Eduardo M, Da Silva, Aline M, and Verjovski-Almeida, Sergio

Test string input:  Caporaso JG, Kuczynski J, Stombaugh J, Bittinger K, Bushman FD, Costello EK, Fierer N, Peña AG, Goodrich JK, Gordon JI, Huttley GA, Kelley ST, Knights D, Koenig JE, Ley RE, Lozupone CA, McDonald D, Muegge BD, Pirrung M, Reeder J, Sevinsky JR, Turnbaugh PJ, Walters WA, Widmann J, Yatsunenko T, Zaneveld J, Knight R.
Test string output: Caporaso JG, Kuczynski J, Stombaugh J, Bittinger K, Bushman FD, Costello EK, Fierer N, Peña AG, Goodrich JK, Gordon JI, Huttley GA, Kelley ST, Knights D, Koenig JE, Ley RE, Lozupone CA, McDonald D, Muegge BD, Pirrung M, Reeder J, Sevinsky JR, Turnbaugh PJ, Walters WA, Widmann J, Yatsunenko T, Zaneveld J, Knight R.

Test string input:  Karl W. Broman, Hao Wu, Saunak Sen, Gary A. Churchill
Test string output: Karl W. Broman, Hao Wu, Saunak Sen, Gary A. Churchill

Test string input:  Usman Roshan, Dennis R. Livesay
Test string output: Dennis R. Livesay Usman Roshan

Test string input:  Phuong, Tu Minh and Do, Chuong B. and Edgar, Robert C. and Batzoglou, Serafim
Test string output: Tu Minh Phuong, Chuong B. Do, Robert C. Edgar and Serafim Batzoglou

Test string input:  Bigelow, H. and Rost, B.
Test string output: H. Bigelow and B. Rost

Test string input:  Michael Hanke and Yaroslav O. Halchenko and Per B. Sederberg and Stephen Jos{\'e} Hanson and James V. Haxby and Stefan Pollmann
Test string output: Michael Hanke, Yaroslav O. Halchenko, Per B. Sederberg, Stephen Jos{\'e} Hanson, James V. Haxby and Stefan Pollmann

Test string input:  P.J. Cock, T. Antao, J.T. Chang, B.A. Chapman, C.J. Cox, A. Dalke, I. Friedberg, T. Hamelryck, F. Kauff, B. Wilczynski, M.J. de Hoon
Test string output: P.J. Cock, T. Antao, J.T. Chang, B.A. Chapman, C.J. Cox, A. Dalke, I. Friedberg, T. Hamelryck, F. Kauff, B. Wilczynski, M.J. de Hoon

Test string input:  Filip Bielejec, Andrew Rambaut, Marc A. Suchard and Philippe Lemey
Test string output: Filip Bielejec, Andrew Rambaut, Marc A. Suchard and Philippe Lemey

Test string input:  Guindon, Stephane and Gascuel, Olivier
Test string output: Stephane Guindon and Olivier Gascuel

Test string input:  T. Daniel Crawford and C. David Sherrill and Edward F. Valeev and Justin T. Fermann and Rollin A. King and Matthew L. Leininger and Shawn T. Brown and Curtis L. Janssen and Edward T. Seidl and Joseph P. Kenny and Wesley D. Allen
Test string output: T. Daniel Crawford, C. David Sherrill, Edward F. Valeev, Justin T. Fermann, Rollin A. King, Matthew L. Leininger, Shawn T. Brown, Curtis L. Janssen, Edward T. Seidl, Joseph P. Kenny and Wesley D. Allen

Test string input:  Justin M. Turney and Andrew C. Simmonett and Robert M. Parrish and Edward G. Hohenstein and Francesco A. Evangelista and Justin T. Fermann and Benjamin J. Mintz and Lori A. Burns and Jeremiah J. Wilke and Micah L. Abrams and Nicholas J. Russ and Matthew L. Leininger and Curtis L. Janssen and Edward T. Seidl and Wesley D. Allen and Henry F. Schaefer and Rollin A. King and Edward F. Valeev and C. David Sherrill and T. Daniel Crawford
Test string output: Justin M. Turney, Andrew C. Simmonett, Robert M. Parrish, Edward G. Hohenstein, Francesco A. Evangelista, Justin T. Fermann, Benjamin J. Mintz, Lori A. Burns, Jeremiah J. Wilke, Micah L. Abrams, Nicholas J. Russ, Matthew L. Leininger, Curtis L. Janssen, Edward T. Seidl, Wesley D. Allen, Henry F. Schaefer, Rollin A. King, Edward F. Valeev, C. David Sherrill and T. Daniel Crawford

Test string input:  Do, Chuong B. and Mahabhashyam, Mahathi S.P. and Brudno, Michael and Batzoglou, Serafim
Test string output: Chuong B. Do, Mahathi S.P. Mahabhashyam, Michael Brudno and Serafim Batzoglou

Test string input:  Steve Rozen and Helen J. Skaletsky
Test string output: Steve Rozen and Helen J. Skaletsky

Test string input:  Rost, B. and Sander, C.
Test string output: B. Rost and C. Sander

Test string input:  Rost, B. and Sander, C.
Test string output: B. Rost and C. Sander

Test string input:  Rost, B., Casadio, R., Fariselli, P., and Sander, C.
Test string output: Rost, B., Casadio, R., Fariselli, P., and Sander, C.

Test string input:  Marshall, Owen J.
Test string output: Owen J. Marshall

Test string input:  Grasso, Catherine and Lee, Christopher
Test string output: Catherine Grasso and Christopher Lee

Test string input:  Shaun Purcell and Benjamin Neale and Kathe Todd-Brown and Lori Thomas and Manuel A. R. Ferreira and David Bender and Julian Maller and Pamela Sklar and Paul I. W. de Bakker and Mark J. Daly and Pak C. Sham
Test string output: Shaun Purcell, Benjamin Neale, Kathe Todd-Brown, Lori Thomas, Manuel A. R. Ferreira, David Bender, Julian Maller, Pamela Sklar, Paul I. W. de Bakker, Mark J. Daly and Pak C. Sham

Test string input:  Nawrocki, Eric P. and Kolbe, Diana L. and Eddy, Sean R.
Test string output: Eric P. Nawrocki, Diana L. Kolbe and Sean R. Eddy

Test string input:  J. F. Abril and R. Guigó
Test string output: J. F. Abril and R. Guigó

Test string input:  Florent E. Angly and Dana Willner and Forest Rohwer and Philip Hugenholtz and  Gene W. Tyson
Test string output: Florent E. Angly, Dana Willner, Forest Rohwer, Philip Hugenholtz and  Gene W. Tyson

Test string input:  J. F. Abril and R. Guigó and T. Wiehe
Test string output: J. F. Abril, R. Guigó and T. Wiehe

Test string input:  Hess, Berk and Kutzner, Carsten and van der Spoel, David and Lindahl, Erik
Test string output: Berk Hess, Carsten Kutzner, David van der Spoel and Erik Lindahl

Test string input:  Lindahl, Erik and Hess, Berk and van der Spoel, David
Test string output: Erik Lindahl, Berk Hess and David van der Spoel

Test string input:  Van der Spoel D, Lindahl E, Hess B, Groenhof G, Mark AE, Berendsen HJ
Test string output: Van der Spoel D, Lindahl E, Hess B, Groenhof G, Mark AE, Berendsen HJ

Test string input:  Guillaume Rizk and Dominique Lavanier
Test string output: Guillaume Rizk and Dominique Lavanier

Test string input:  Damir Zucic and Davor Juretic
Test string output: Damir Zucic and Davor Juretic

Test string input:  Damir Zucic
Test string output: Damir Zucic

Test string input:  Nečas, David and Klapetek, Petr
Test string output: David Nečas and Petr Klapetek

Test string input:  Noel M. O'Boyle, Adam L. Tenderholt, Karol M. Langner
Test string output: Noel M. O'Boyle, Adam L. Tenderholt, Karol M. Langner

Test string input:  Frith, Martin C. AND Saunders, Neil F. W. AND Kobe, Bostjan AND Bailey, Timothy L.
Test string output: Martin C. Frith, Neil F. W. Saunders, Bostjan Kobe and Timothy L. Bailey

Test string input:  Thomas D. Wu, Colin K. Watanabe
Test string output: Colin K. Watanabe Thomas D. Wu

Test string input:  R.C.G. Holland, T. Down, M. Pocock, A. Prlić, D. Huen, K. James, S. Foisy, A. Dräger, A. Yates, M. Heuer, M.J. Schreiber
Test string output: R.C.G. Holland, T. Down, M. Pocock, A. Prlić, D. Huen, K. James, S. Foisy, A. Dräger, A. Yates, M. Heuer, M.J. Schreiber

Test string input:  Li, Heng and Durbin, Richard
Test string output: Heng Li and Richard Durbin

Test string input:  Moll, Andreas and Hildebrandt, Andreas and Lenhof, Hans-Peter and Kohlbacher, Oliver
Test string output: Andreas Moll, Andreas Hildebrandt, Hans-Peter Lenhof and Oliver Kohlbacher

Test string input:  Ben Langmead and Steven L Salzberg
Test string output: Ben Langmead and Steven L Salzberg

Test string input:  Moll, Andreas and Hildebrandt, Andreas and Lenhof, Hans-Peter and Kohlbacher, Oliver
Test string output: Andreas Moll, Andreas Hildebrandt, Hans-Peter Lenhof and Oliver Kohlbacher

Test string input:  Quinlan, Aaron R. and Hall, Ira M.
Test string output: Aaron R. Quinlan and Ira M. Hall

Test string input:  Alois Schlögl, Clemens Brunner
Test string output: Clemens Brunner Alois Schlögl

Test string input:  Olivier Filangi, Yoann Beausse, Anthony Assi, Ludovic Legrand, Jean-Marc Larré, Véronique Martin, Olivier Collin, Christophe Caron, Hugues Leroy and David Allouche
Test string output: Olivier Filangi, Yoann Beausse, Anthony Assi, Ludovic Legrand, Jean-Marc Larré, Véronique Martin, Olivier Collin, Christophe Caron, Hugues Leroy and David Allouche

Test string input:  Ben Langmead and Cole Trapnell and Mihai Pop and Steven L Salzberg
Test string output: Ben Langmead, Cole Trapnell, Mihai Pop and Steven L Salzberg

Test string input:  Henikoff JG, Pietrokovski S, McCallum CM, Henikoff S.
Test string output: Henikoff JG, Pietrokovski S, McCallum CM, Henikoff S.

Test string input:  Sing, Tobias and Sander, Oliver and Beerenwinkel, Niko and Lengauer, Thomas
Test string output: Tobias Sing, Oliver Sander, Niko Beerenwinkel and Thomas Lengauer

Test string input:  Merritt, E.A. and Bacon, D.J.
Test string output: E.A. Merritt and D.J. Bacon

Test string input:  Gordon K. Smyth
Test string output: Gordon K. Smyth

Test string input:  Storey, John D. and Tibshirani, Robert
Test string output: John D. Storey and Robert Tibshirani

Test string input:  Alexandros Stamatakis
Test string output: Alexandros Stamatakis

Test string input:  Mott, Richard and Talbot, Christopher J. and Turri, Maria G. and Collins, Allan C. and Flint, Jonathan
Test string output: Richard Mott, Christopher J. Talbot, Maria G. Turri, Allan C. Collins and Jonathan Flint

Test string input:  Grant, Barry J. and Rodrigues, Ana P. C. and ElSawy, Karim M. and McCammon, J. Andrew and Caves, Leo S. D.
Test string output: Barry J. Grant, Ana P. C. Rodrigues, Karim M. ElSawy, J. Andrew McCammon and Leo S. D. Caves

Test string input:  Marc Rehmsmeier, Peter Steffen, Matthias Höchsmann, and Robert Giegerich
Test string output: Marc Rehmsmeier, Peter Steffen, Matthias Höchsmann, and Robert Giegerich

Test string input:  Simon Anders
Test string output: Simon Anders

Test string input:  Christopher H. Jackson
Test string output: Christopher H. Jackson

Test string input:  Martyn Plummer, Bendix Carstensen
Test string output: Bendix Carstensen Martyn Plummer

Test string input:  Roger A. Sayle and E. James Milner-White
Test string output: Roger A. Sayle and E. James Milner-White

Test string input:  Zerbino, Daniel R. and Birney, Ewan
Test string output: Daniel R. Zerbino and Ewan Birney

Test string input:  S. R. Eddy
Test string output: S. R. Eddy

Test string input:  S. R. Eddy
Test string output: S. R. Eddy

Test string input:  Remmert M., Biegert A., Hauser A., and Soding J.
Test string output: Remmert M., Biegert A., Hauser A., and Soding J.

Test string input:  Söding J.
Test string output: Söding J.

Test string input:  E.L.L. Sonnhammer and R. Durbin
Test string output: E.L.L. Sonnhammer and R. Durbin

Test string input:  L. D. Stein and J. Thierry-Mieg
Test string output: L. D. Stein and J. Thierry-Mieg

Test string input:  Ariel S. Schwartz and Lior Pachter
Test string output: Ariel S. Schwartz and Lior Pachter

Test string input:  Michael A. Johnston and Ignacio Fdez. Galván and Jordi Villà-Freixa
Test string output: Michael A. Johnston, Ignacio Fdez. Galván and Jordi Villà-Freixa

Test string input:  Garrett M. Morris, Ruth Huey, William Lindstrom, Michel F. Sanner, Richard K. Belew, David S. Goodsell and Arthur J. Olson.
Test string output: Garrett M. Morris, Ruth Huey, William Lindstrom, Michel F. Sanner, Richard K. Belew, David S. Goodsell and Arthur J. Olson.

Test string input:  Garrett M. Morris, Ruth Huey, William Lindstrom, Michel F. Sanner, Richard K. Belew, David S. Goodsell and Arthur J. Olson.
Test string output: Garrett M. Morris, Ruth Huey, William Lindstrom, Michel F. Sanner, Richard K. Belew, David S. Goodsell and Arthur J. Olson.

Test string input:  Samuel Assefa and Thomas M. Keane and Thomas D. Otto and Chris Newbold and Matthew Berriman
Test string output: Samuel Assefa, Thomas M. Keane, Thomas D. Otto, Chris Newbold and Matthew Berriman

Test string input:  Garrett M. Morris, Ruth Huey, William Lindstrom, Michel F. Sanner, Richard K. Belew, David S. Goodsell and Arthur J. Olson.
Test string output: Garrett M. Morris, Ruth Huey, William Lindstrom, Michel F. Sanner, Richard K. Belew, David S. Goodsell and Arthur J. Olson.

Test string input:  Nathan A. Baker, David Sept, Simpson Joseph, Michael J. Holst, J. Andrew McCammon
Test string output: Nathan A. Baker, David Sept, Simpson Joseph, Michael J. Holst, J. Andrew McCammon

Test string input:  Bardel, Claire and Danjean, Vincent and Genin, Emmanuelle
Test string output: Claire Bardel, Vincent Danjean and Emmanuelle Genin

Test string input:  Vernikos, Georgios S. and Parkhill, Julian
Test string output: Georgios S. Vernikos and Julian Parkhill

Test string input:  Garrett M. Morris, Ruth Huey, William Lindstrom, Michel F. Sanner, Richard K. Belew, David S. Goodsell and Arthur J. Olson.
Test string output: Garrett M. Morris, Ruth Huey, William Lindstrom, Michel F. Sanner, Richard K. Belew, David S. Goodsell and Arthur J. Olson.

Test string input:  Harris R, Olson AJ, Goodsell DS.
Test string output: Harris R, Olson AJ, Goodsell DS.

Test string input:  Oleg Trott, Arthur J. Olson
Test string output: Arthur J. Olson Oleg Trott

Test string input:  Kuo-Bin Li
Test string output: Kuo-Bin Li

Test string input:  Weizhong Li and Adam Godzik
Test string output: Weizhong Li and Adam Godzik

Test string input:  Martin I Krzywinski, Jacqueline E Schein, Inanc Birol, Joseph Connors, Randy Gascoyne, Doug Horsman, Steven J Jones, and Marco A Marra
Test string output: Martin I Krzywinski, Jacqueline E Schein, Inanc Birol, Joseph Connors, Randy Gascoyne, Doug Horsman, Steven J Jones, and Marco A Marra

Test string input:  A. Lupas, M. Van Dyke, and J. Stock
Test string output: A. Lupas, M. Van Dyke, and J. Stock

Test string input:  Trapnell C, Williams BA, Pertea G, Mortazavi AM, Kwan G, van Baren MJ, Salzberg SL, Wold B, Pachter L.
Test string output: Trapnell C, Williams BA, Pertea G, Mortazavi AM, Kwan G, van Baren MJ, Salzberg SL, Wold B, Pachter L.

Test string input:  Larkin, M.A. and Blackshields, G. and Brown, N.P. and Chenna, R. and McGettigan, P.A. and McWilliam, H. and Valentin, F. and Wallace, I.M. and Wilm, A. and Lopez, R. and Thompson, J.D. and Gibson, T.J. and Higgins, D.G.
Test string output: M.A. Larkin, G. Blackshields, N.P. Brown, R. Chenna, P.A. McGettigan, H. McWilliam, F. Valentin, I.M. Wallace, A. Wilm, R. Lopez, J.D. Thompson, T.J. Gibson and D.G. Higgins

Test string input:  Fabian Sievers, Andreas Wilm, David Dineen, Toby J Gibson, Kevin Karplus, Weizhong Li, Rodrigo Lopez, Hamish McWilliam, Michael Remmert, Johannes Söding, Julie D Thompson and Desmond G Higgins
Test string output: Fabian Sievers, Andreas Wilm, David Dineen, Toby J Gibson, Kevin Karplus, Weizhong Li, Rodrigo Lopez, Hamish McWilliam, Michael Remmert, Johannes Söding, Julie D Thompson and Desmond G Higgins

Test string input:  Xavier Didelot, Daniel Falush
Test string output: Daniel Falush Xavier Didelot

Test string input:  Larkin, M.A. and Blackshields, G. and Brown, N.P. and Chenna, R. and McGettigan, P.A. and McWilliam, H. and Valentin, F. and Wallace, I.M. and Wilm, A. and Lopez, R. and Thompson, J.D. and Gibson, T.J. and Higgins, D.G.
Test string output: M.A. Larkin, G. Blackshields, N.P. Brown, R. Chenna, P.A. McGettigan, H. McWilliam, F. Valentin, I.M. Wallace, A. Wilm, R. Lopez, J.D. Thompson, T.J. Gibson and D.G. Higgins

Test string input:  Lassmann, Timo and Frings, Oliver and Sonnhammer, Erik L. L.
Test string output: Timo Lassmann, Oliver Frings and Erik L. L. Sonnhammer

Test string input:  Lassmann, Timo and Sonnhammer, Erik L. L.
Test string output: Timo Lassmann and Erik L. L. Sonnhammer

Test string input:  Gary J. Olsen and Hideo Matsuda and Ray Hagstrom and Ross Overbeek
Test string output: Gary J. Olsen, Hideo Matsuda, Ray Hagstrom and Ross Overbeek

Test string input:  R. W. Cottingham Jr. and R. M. Idury and A. A. Schaffer
Test string output: R. W. Cottingham Jr., R. M. Idury and A. A. Schaffer


Reply to: