Bauble / bauble.classic

this is how Bauble and Ghini both started
GNU General Public License v2.0
10 stars 34 forks source link

allow hybrid information #179

Closed mfrasca closed 8 years ago

mfrasca commented 9 years ago

From @mfrasca on April 6, 2015 19:25

a hybrid should be described as a descendant of two taxa, not just flagged as such.

just to fix ideas, an example: you might want to indicate an accession to a taxon which is a hybrid between a masdevalia rosea and a dracula diavola.

hybrids do not need be sterile, so a hybrid could also generate a new hybrid if mixed with an other taxon.

not all taxa can be hybridized with each other, generally the parent taxa of a hybrid will belong to the same familia, subfamilia, tribus, or subtribus. maybe a warning could be issued if the two parents mismatch at too high a rank.

marking as 'prio:high' because this is really urgent if you want to represent a collection like the one at Quito, particularly dedicated to Orchidaceae.

Copied from original issue: mfrasca/bauble.classic#46

RoDuth commented 9 years ago

I would advocate the herbarium standard HISPID here as it has a better solution than ITF2. I understand that many BGs I talk to do use the HISPID standard when it comes to this.

In Bauble I have issue with the hybrid flag making the name display in a manor I dont use and hence I rarely use it e.g. Brachychiton acerfolius x bidwillii with the hybrid flag on will display as Brachychiton x acerfolius x bidwillii. Unless there is another way I don't know about? I would use it for Vriesea x poelmanii but these old hybrid names aren't common in our collection. Also there is no hybrid flag for intergeneric hybrids - which I would use! All the intergenerics we have (mainly Orchids and Broms) are cultivars and do have intergenric names (e.g. x Anamea 'Scorpio').

mfrasca commented 9 years ago

I set the milestone for this issue as 1.1 because I think we will need a database change to do this. In your case »Brachychiton acerfolius x bidwillii« you would mark the species as a hybrid, doing so the input field for the species epithet would disappear and instead you would have two text combo boxes allowing you choose two already existing species in the database. You would then select »Brachychiton acerfolius« and »Brachychiton bidwillii« and the software would decide it does not need any more information and will show it as »Brachychiton acerfolius x bidwillii«. @RoDuth : do you think we can be on a chat some day soon, and discuss there some of the issues you have been considering? I can be on skype, or gtalk, or even facebook and gadu-gadu. if you have a preferred channel, let me know. or if you could share a (very long) list (preferably not trimmed to avoid repetitions) of possible hybrids with their desired naming and the species binomial names of their mother and father.

RoDuth commented 9 years ago

Sounds good and would definitly work for me as long as I still had the option to keep using the current method for the odd nothotaxa hybrid like Vresea x poelmanii. I can see that for a 4 way hybrid you just have to create the 1st level hybrids and then cross them, or would it be better to able to add more than 2 species? Would also be handy to be able to indicate if its an F2 etc. but that could just be an extra field also. Not sure about some of the messy orchid hybrids either. And what about hybrid genera? Thinking out load here... Create the Genera, tick the hybrid flag and that would allow you to add the genera that it is a hybrid of e.g. in my x Anamea example you would create the genus Anamea then the option to add genera to a list would become avaiable and you would add Ananas and Achmea. I say "add" because in some orchid intergeneric hybrids I believe there can be more than just 2 genera? i.e. x Potinara is a hybrid of Cattleya x Laelia x Brassavola x Sophronitis and I don't think it matters how or what order that happens. Anything with that mix of genera gets that name. Would need someone with more knowledge of orchid hybrids to confirm that. I'd be interested in how the other record systems out there cope with it all!! Also, @mfrasca good idea for a chat! I was in the process of send you a email last night (a late reply to your last) and ended up not sending it as it just got too long!!! Would really like to get Tom from BRON involved with this also, his botanist's eye would be invaluable and he is familiar with several records systems, including Bauble. Also, I believe he has to deal with more of these complex names than I do (Our collection being more wild collected than anything, with little focus on hybrids). Give me a few days and I'll see what I can do.

RoDuth commented 8 years ago

@tmyersdn can you check my thinking on the above, what is your opinion on the best system for hybrids? For hybrids of known parentage I'm leaning towards being able to "add" parents at species level now also (similar to how you currently add intraspecific parts in the species editor), maybe with flags for each one such as x, f/m, (, ) so you can kind of "build" the name if you get what I mean. (the f/m to state the sex re: pollen donor or seed parent, not something that displays) Something that looks like this for each add line maybe?: ( taxon name ) f/m x So say if you knew it was a hybrid 4 way hybrid of A x B crossed with C x D then you would

to end up with something that would display as (A x B) x (C x D) with the logic deciding if it displayed genus or just the species for each taxon. Would still need an option for the Nothotaxons, maybe if all you add is a 1 species name and x it shows this way? Also, don't suppose you have a long list of ugly hybrid names for Mario? I don't really have all that many in our collection. @mfrasca is this method a possibility?

mfrasca commented 8 years ago

@RoDuth , I get what you mean... »end up with something that would display as (A x B) x (C x D)«...

what about this: you enter species A, B, C and D. none of them are hybrids. database now contains the four above species. you continue entering a new species, the hybrid species A×B, you possibly need give it some strange name I can't think of, that is derived from the binomial names of A and B but the derivation logic too complex to be automatic. so you enter by hand the Genus and Species epithets, and indicate it's a hybrid, and Bauble as soon as you mark the "hybrid" check will let you choose the pollen donor and seed parent (father and mother species), which as said will be A and B. how you need the name to display, I do not know, for this I need examples. you can also leave one or both of the fields empty. you do the same again for species C×D. now you have two hybrids A×B and C×D in the database, however you may have named them. you enter a new species, again you check it's a hybrid, again you can choose the pollen donor and seed parent, and you will select A×B for one and C×D for the other. and again you have the task to write the epithets of Genus and Species for the thing you are inserting in the database. again my question is how you want the A×B, C×D and (A×B)×(C×D) things to be named, it's three species so it's a triple question with three answers. how much freedom you will need and how much do you expect the software help you remember the × marker, and at which position you need it.

hope it makes sense. if it does not, I guess you are going to explain something I do not yet know!

(this is something my friends in JBQ were interested in too, so I mention @felipead87 and @TatiJaramilloV here)

RoDuth commented 8 years ago

Its a big one this one! Just too many ways to write a Hybrid!! What you are suggesting is what I was clumsily trying to say when I said "create the 1st level hybrids and then cross them". The reason I'm now thinking that may not be the best way and that "adding species" in a similar way to adding intraspecific parts is done is because of the many ways a hybrid can be written E.g:

I think there is argument for having a free text name field, as is provided for with the ITF2 fulnam field, that over rides any other fields (e.g. genus, hybrid flag etc.) for any extremely complex hybrid names. Maybe this could be auto generated according to what data is provided but can be over written when desired. And, also, maybe a "Label Name" field similar to the "Label Distribution" field that is auto generated from this full name field in most cases but can also be over written (e.g. for my example above of Brachychiton 'Bella Pink'). Also, it occurred to me that you don't need the flags for F/M, as I had originally suggested, as the convention is to put the seed parent first.

tmyersdn commented 8 years ago

"x Gaulnettya Pernettya macrostigma x Gaultheria depressa" is not a good example (apologies, I think I sent it to you) as it is an amalgamation of two parts: the nothogenus: xGaulnettya and the hybrid formula: Pernettya macrostigma x Gaultheria depressa The nothogenus name is not accepted here, and was left in by mistake (or artifact of our database)

However, in this discussion you are raising at least three issues: 1) nothogeneric names 2) hybrid formulas as names 3) parsing names from services such as ALA

1) handling of nothogeneric names These are found especially in orchids, but also show up elsewhere. They appear to be allowed by the International Code of Nomenclature for algae, fungi, and plants: http://www.iapt-taxon.org/nomen/main.php?page=h.6 At a crude level, it seems practical to just treat these names as genera, especially if they are supported by a name service (such as ALA). Additional incorporation of parent taxa names as "part of a name" will get complicated. And a serious problem here is that name services using XML still do not adequately handle complex hybrid formula names (to my knowledge), they seem designed to deliver "names" not formulae. My feeling is that better knowledge is needed about how name providing services using XML will codify complex name formulae before tackling this information as part of names in Bauble. My guess is that TDWG is not moving at all quickly on cultivated plant names.

2) Hybrid formulae as names - I know this is partly handled in legacy standards like ITF2, I am not familiar enough with the ABCD schema - does it allow some formula names? (sorry to rushed to look this up!)

3) parsing names from services such as ALA I am curious, is the intention to allow the end user to search names from a net service from within Bauble and use this to populate fields in Bauble? If so, will the LSID / stable URL reference also be recorded in Bauble?

tmyersdn commented 8 years ago

Sorry, meant to tag you in the last comment - @RoDuth, @mfrasca

RoDuth commented 8 years ago

Thanks @tmyersdn what we are discussing isn't using names from an external source, its the parent names being within your bauble database itself. I think using external sources just gets too complicated for hybrids and that is a long way off. Using external names at a family/genus/species level is discussed in issue #52. If you have a read you'll see it gets complicated due to the various sources that gardens from all over the world would like to peg their names to and the fact that they don't all agree or use the same methods etc...

Are you familiar with how Bauble addresses synonyms? In short, using genus as an example, if a genus has a synonym you open the genus editor and add the other genera to it from the genus list of the database. In other words both the correct genus and the synonym exist in the genus table, one linked to the other. Mario has made it that if you try to add a species to a synonym genus it warns you and offers you the option to switch to the correct genus. Quite a clever system actually.

When we are talking about adding the species etc. we are saying that you could do a similar thing for hybrids. (@mfrasca Correct me if I'm wrong) So, using a species hybrid as an example, you have both the parent species in the database then create the species hybrid, select the hybrid flag which would change the Species Editor entry form so that you can now add those 2 species from the database. Or, as in the four way hybrid situation, you create the 1st level hybrid as above, save them, then create the next level by pointing to those 2 hybrids which are now in the species table of the database. Or... in the other example you would open the Species Editor select the hybrid flag and add all four species in the one go but with the flags (, ), x to "build" the name up. Of course you would need to make sure all 4 species where in the species table first... Does that make sense? The beauty of the system, as I can see it, is that it keeps everything linked (e.g. renaming one of the species would automatically change it in the hybrid name etc. etc.)

@tmyersdn How does your system deal with Hybrids? is it just free text? Can parentage be tracked by the fact that they are linked in some way similar to what is describe here? Do you agree that HISPID has a better solution than ITF2 and what is your opinion on this option? Apart from the xGaulnettya example do you see all the other examples I scrapped together as acceptable names?

mfrasca commented 8 years ago

@brettatoms did that already!

On 26/11/15 23:05, RoDuth wrote:

Mario has made it that if you try to add a species to a synonym genus it warns you and offers you the option to switch to the correct genus.

:)

I just unit-tested it a bit better (or I tried to).

mfrasca commented 8 years ago

let me give a try at understanding what you're telling me.

I see two ways in which you use the »×« hybrid indicator: 1) »×<nothotaxon epithet>« 2) »<taxon>« × »<taxon>«

1) you are using × as unary operator in the following (and I understand that using a space between the × and the epithet is not recommended): Abelia »×grandiflora«; »×Gaulnettya« Pernettya macrostigma × Gaultheria depressa; »×Neophytum« 'Galactic Warrior'

2) the × looks like a binary operator to me in the following: ×Gaulnettya »Pernettya macrostigma« × »Gaultheria depressa«; »Morawetzia sericata« × »Seticereus aurivillus«; Neoregelia »ampullacea« × »zebrina« × »'Fireball'«; Brachychiton »populneus« × »acerifolious« 'Bella Pink'; Rhododendron cinnabarinum »subsp. cinnabarinum« × »subsp. xanthocodon«; Neoregelia ('Baby Skotak' × ('French's Cruenta' × concentrica)) × 'Las Vegas' F2 (I do not understand the role of the F2 in this formula)

the perplexity I have is if you not only want to keep track of the derivation of your hybrids, but you also want to make it visible, even if the resulting string is as long as a poem or a mathematical formula, like in your last example.

I guess this last Neoregelia has a cultivar name and that you generally use that, not the derivation formula, or am I guessing wrong?

the wikipedia only describes usage 1. and again the wikipedia gives an example (Magnolia ×soulangeana applies to all progeny from the cross Magnolia denudata × Magnolia liliiflora) where a style (1) denomination is described in terms of a style (2) expression.

mfrasca commented 8 years ago

should have first read the references you sent me! :scream: ... If I understand correctly, it says that what I call "style 1" is a nothotaxon name, a “condensed formula” of the explicit non condensed formula I call "style 2".

RoDuth commented 8 years ago

The issue is that sometimes they do, sometimes they don't!! Horticultural naming can be so wishy washy!!! "As long as a poem...." :laughing: you've got it! You are correct about not having a space between the × and the nothogenera, I only inserted them for clarity as I was, lazily, using the letter x (it's an irregularity that's often seen) not the correct, unitalicised multiplication sign as you have.

The last Neoregelia in my list "may" get a cultivar name at some point but not necessarily and the example would only exist as it is because it doesn't have one yet. I would be inclined to use "Neoregelia cv." or "Neoregelia hybrid" or "Neoregelia (hybrid)" or even "Neoregelia (F2 hybrid)" for this on a label (note that "hybrid" is not italicized, capitalised or enclosed in inverted commas, it is descriptive, not the name). I know it is a fairly extreme example but I threw it in to show just how ugly it can get, and it can get much worse!! e.g orchids

The F2 is a signifier that it is the second generation. I'll try to explain this here for clarity. F1 is the first filial cross, F2 the second generation, F3 the third and so on. F1 is not normally designated as it assumed. In the above example the F1 would be Neoregelia ('Baby Skotak' × ('French's Cruenta' × concentrica)) crossed with Neoregelia 'Las Vegas'. The F2 (second generation) from this cross can mean that the F1 generation is then:

The last 2 being the most common usage. F2 hybrids are often much more unpredictable, every seedling being different. I have seen hybrids marked as high as F6 before (in other word the 6th generation) most commonly from backcrosses. e.g. Say you where breeding for a compact, showy, red flowering plant, you may do something like this: a compact white flowering plant is crossed with a tall and leggy but "showy" red flowering plant, the progeny are pink flowered, somewhat showy but compact in growth. You then cross one of these F1 children back over the original red flowering plant and the progeny have growth that is still compact and the flowers are darker pink and more showy..... if you keep crossing successive generations back over the red flowering plant you will eventually end up with a compact, red flowering plant retaining only the one trait of compactness from the white flowering plant. Of course it gets a lot more complicated than that as at some point it would be likely to self or cross with siblings to try to remove other less desirable dominant traits etc. but you get the point.

Now to the orchids... Try something like this (theoretical) hybrid: ×Potinara Shinfong Beauty 'Super Diamond' × ×Bardendrum Cyclotella-Jerusan CT 'Red Bird'. It would give you a ×Trisuloara hybrid by way of the complex of Genera that are now included. ×Potinara = Brassavola × Cattleya × Laelia × Sophronitis and ×Bardendrum = Barkeria × Epidendrum producing the combonation of Barkeria × Brassavola × Cattleya × Epidendrum × Laelia × Sophronitis which has the nothogenus of ×Trisuloara. Now in recent years, I believe, Sophronitis and Laelia have been moved into Cattleya making both ×Potinara and ×Trisuloara invalid nothogenera!!! It gets messy! Just in case you don't know.. in orchid hybrids it is normal to include the Grex name. In the ×Potinara example thats the Shinfong Beauty part of the name. Thankfully it is normal to abreviate the nothogenera for orchids i.e. ×Potinara is writhen as ×Pot. ... I wont go into this further, lots of info here in this regards. Orchids are not my speciality, I would prefer someone else take over.

Hope that answers some of your questions. And also explains why I would like a "label name" field similar to the "label distribution field" where I could chose to alter what makes it onto a label. (even just as an option). And why I suggest the method of "adding" parentage (particularly for nothogenera) rather than only being able to make 2 way hybrids.

I guess one thing that needs to be asked is, is it desirable, considering the complexity of these issues, for Bauble to be made overly complex to deal with complex hybrids and breeding programs etc.. For my needs it isn’t desirable as I have very few hybrids in the collection and little desire to spend much time worrying about them but obviously this isn't the case for those who have have speciality display gardens of Bromeliads, Orchids, Rhododendrons, etc. or engage in breeding programs and the like.

Sorry for the long one!!

mfrasca commented 8 years ago

two short questions now:

when you specify parentage, you want one of the two:

when showing a name, you want to choose among the alternatives:

please correct any misunderstanding! thanks!

mfrasca commented 8 years ago

(I'm mentioning @smbantjes so I'm sure she also sees all the info you're providing)

tmyersdn commented 8 years ago

Hi @mfrasca and @smbantjes - below are my thoughts on these two questions. NB my knowledge is just from using databases, I am not an expert on nomenclature!

(1) when I specify parentage I generally just record the two immediate parents, following the order given in the reference, which should indicate the seed and pollen parent. If a parent is also an un-named hybrid, then I usually record that parent with a generic indication. This is the level of information that I can fit onto a plant label.

Our database has the option of recoding the name ID numbers for both parents and whether they are pollen or seed parents. If I choose to do this I need to ensure the parents are also both entered as names. This is a feature I generally don't use because I am just making plant labels, and I do not need to record extended lineage history.

(2) showing a name I would choose a simple name first if available - such as a cultivar name rather than the full formula. But for un-named hybrids I would consider showing a formula of the immediate parents or a condensed formula if one exists. I generally would avoid creating a nothotaxon, but am happy to use one that is published. Do you have any examples of names using a generic indication? I think that might be useful for orchids with complex intergeneric hybrids, but not for other plants. T

RoDuth commented 8 years ago

I would agree with @tmyersdn. My needs are mostly based around printing of labels and I use a cultivar name or, if one is in common usage, a nothotaxon first and rarely formulas, normally only when there isn't a cultivar or nothotaxon option. My issue is that I cant write a formula in the species field for those times I do want to be able to. (I'm sure I used to be able to but to??) For instance if I put in acerifolius x bidwillii in the species box it wont accept the spaces either side of the x and I end up with acerifoliusxbidwillii. This is not an ideal solution anyway, even if it did work. My only option seems to be to add it to the epithet field, without selecting a rank, in the infraspecific parts section of the species editor but this means no italics. And also intergeneric toxons - there is no feature for this and the only option is to add a nothgenus such as ×Neophytum by creating a genus written as xNeophytum. So, the concern is correct display, as in correct italicisation and the unitalicised × in the right spot. And, of course, the ease with which this is achieved.

@mfrasca to answer you questions above, the short answers is "yes" :smile: but to address them in order:

specifying parentage...

For display the options I would like are:

The thing is flexibility. The two other concepts I am putting out there are:

brettatoms commented 8 years ago

If the ability to use more complex naming schemes is added to Bauble I think it should be optional. The interface should either be collapsible or be able to be toggled off completely behind some kind of preference settings. If anyone has ever used BG-Base you can understand how the UI can become extremely confusing when you're trying to allow for every naming possibility under the sun.

These types of names are a pretty fringe case and I would hate to impact the usability for those user's that don't require it.

mfrasca commented 8 years ago

@RoDuth »if I put in acerifolius x bidwillii in the species box it wont accept the spaces either side of the x and I end up with acerifoliusxbidwillii. This is not an ideal solution anyway, even if it did work.«

sorry, this was my mistake obviously. I added a check: "no spaces in epithet". and seeing the use you were making of the spaces (putting two or more epithets in it, and the × symbol) I still think it was the correct thing to do, in the sense that I would like in the software that names and content match. you needed something else than the epithet and you were using what Bauble was putting at your disposition.

(I do not like the idea of using flags for ( ) ×: it makes things complicated for both of us) you specify parentage, you inherit both parent formula, you combine them with (<parent>) × (<parent>). if you are not indicating clear parentage but more than two, then you get a longer but not more complex formula.) if a parent formula is composed of a single taxon, you don't need the enclosing (). Sounds simple, if it's also sufficient then it's good I'd say.

the immediate problem I see is that this whole discussion will result in a solution in a next Bauble database version (Milestone 1.1). and we are now still only able to work on Bauble 1.0. What immediate solution? you indicate which workaround you use and I will not "correct" Bauble and make your workaround not viable.

@brettatoms : I am actually already considering stripping down Bauble to its core functionality and to make all the rest optional, so you only see what you knowledgeably activated. see #186

RoDuth commented 8 years ago

@brettatoms I'm in total agreement about keeping this sort of functionality hidden behind some kind of toggle and definitely don’t want the overly complicated BGBase approach.

I keep coming back to, and for my needs would be perfectly happy with, a free text approach, not dissimilar to my current work around. I think this should be available not mater what other approach is available. You need a lot of flexibility for hybrids names, I keep thinking that my Neoregelia ampullacea x zebrina x 'Fireball' example may not work if it gets too constrained. (this example does currently exist in my database and it frustrates me that the italicization is incorrect) surely its possible for Bauble to recognise that anything within single quotes is not italicised and if not it is?
Could it be as simple as using the current hybrid flag but putting some conditions on it? Select the flag and spaces are now allowed in the species field? And there is a button for pasting in the × wherever you want it. I can never find it and always end up putting in the letter x instead. Or maybe a better way could be, if you select the hybrid flag it treats whatever you put in the infraspecific epithet field as parents and adds the × either between them (you could write (parent or parent) to have control where the ( end up) or before it if there is only one. I'm thinking it could be as simple as adding 2 extra options in the rank field × (italicise the epithet) and × cv. (not italicised) for this. Or even 3? × notho. You could at least get a 4 way hybrid this way. Considering these 2 approaches don't need extra fields are they doable in v1.0?? Could linking to taxa within the database come later? Although I can see the benefits, for my needs I think I would rather forgo the extra functionality of linking the taxa within the database in favour of flexibility and the way it displays.

@mfrasca what approach for nothogenera? A formula is not appropriate here, just a list of the genera that are within the make up. For my needs I would be happy to have a hybrid flag and just make a note to list the genera. Is this something that could exist in v1.0?

RoDuth commented 8 years ago

I blame myself for not think about this scenario while the whitespace issue #55 was open, but, as I've said, we don't enter hybrids on a regular basis here. We do put the hybrids in the species field at work, as I suspected above. I just sent our data home from work (still using v1.0.11 at work). If I right click -> edit a hybrid species entry then, without doing anything else, press OK (which is immediately available) it makes the entry a single word, removing any spaces that were either side of the x. Here's 2 screen shots, before and after:

whitespacehybridsbefore whitespacehybridafter

Could it work if the hybrid flag had the ITF2 H option, which could then tell Bauble to allow spaces in the species field? The H would not show of course. This would be in line with ITF2 and could at least allow us to use basic hybrid formulas. Could Bauble even, using some logic, turn any x (whitespace letter-x whitespace) into non-italicized × multiplication signs (whitespace either side)? It would also need to check for cultivar names I guess. And there is still the issue of ITF2 potentially allowing for whitespace as a result of unnamed species and "botanist tags".

mfrasca commented 8 years ago

I knew it was there, I just did not remember it:

sp2 = Column(Unicode(64), index=True)  # in case hybrid=True

it's just not used in the interface, and the hybrid flag (still talking of the interface) is only a three-way flag — it's now (Undecided True False) while it should be (Ø H × +) .

I'm still not sure how to implement it in the code, because imagine you set the flag to H. so you are going to put a hybrid formula. you want to refer to things now, not insert them, don't you. like the two sp and sp1 fields should let you look up species in the database. if this is so, the author should disappear. but then: an hybrid formula, it can later get an epithet published by an author? would you want to work with synonyms in this case? or put the epithet next to the formula?

mfrasca commented 8 years ago

This issue was moved to Ghini/ghini.desktop#8