JSFiddle - React, Tailwind, and code Playground

JavaScript

var data = {
    organisms:[
        {name: 'Hemiptera.Miridae.Kanakamiris'},
        {name: 'Hemiptera.Miridae.Neophloeobia.incisa'},
        {name: 'Lepidoptera.Nymphalidae.Ephinephile.rawnsleyi'},
        {name: 'a.af1.af1g1.af1g1s1'},
        {name: 'a.af1.af1g1.af1g1s2'},
        {name: 'a.af1.af1g1.af1g1s3'},
        {name: 'a.af1.af1g2.af1g2s1'},
        {name: 'a.af1.af1g2.af1g2s2'},
        {name: 'a.af2.af2g1.af2g1s1'},
        {name: 'a.af2.af2g1.af2g2s1'},
        {name: 'a.af3.af3g1.af3g1s1'}        
    ]
};

var organisms = data.organisms.map(function(v) {
        return v.name.split(".");
    });

function addToHeirarchy(val, level, heirarchy) {
    if (val[level]) {
        if (!heirarchy.hasOwnProperty(val[level]))
            heirarchy[val[level]] = {};
        addToHeirarchy(val, level + 1, heirarchy[val[level]]);
    }
}

var working = {};

for (var i = 0; i < organisms.length; i++)
    addToHeirarchy(organisms[i], 0, working);

console.dir(working);

function remapHeirarchy(item) {
    var children = [];
    for (var k in item) {
        children.push({
            "name" : k,
            "children" : remapHeirarchy(item[k])
        });
    }
    return children;
}

var heirarchy = {
    "name" : "ROOT",
    "children" : remapHeirarchy(working)
};

console.dir(heirarchy);
document.write(JSON.stringify(heirarchy));