精华内容
下载资源
问答
  • 浅谈昆虫与人类的关系.doc
    2021-07-15 06:13:33

    浅谈昆虫与人类的关系.doc

    浅谈昆虫与人类的关系

    班级:生物科学师范

    姓名:李杰

    学号:2012221107110076

    摘要:昆虫为全世界增添光彩,让声音更加多样化,然而随着人类活动的增加,昆虫的种类日渐减少,这里一起讨论昆虫对人类的害与益,种类及其分布,让人们更加了解昆虫,保护昆虫,更好的利用昆虫好的方面为人们做贡献。

    关键词:工业昆虫 传粉 食用 饲养 卫生危害

    昆虫不论是在数量上还是种类上都占有巨大的地位,是生物中最重要的组成,昆虫与人类的关系十分密切,它可以为人类创造不可多得的资源,也可以为人类造成不可挽回的灾难,到底应该如何看待昆虫与人类的关系成为一项难题,我们必须用辩证的眼光来仔细的分析。

    昆虫的概况

    1 . 1种类繁多

    昆虫是地球生物的重要组成部分,其种类繁多,在大约3.5 亿年前,昆虫就已经出现在地球上,随着时间的推移,昆虫以其顽强的适应力在地球上存活下来,出现了不同适应力,不同生命力的昆虫,其种类繁多。据最新的统计分析,人类已经知道的昆虫至少有1 0 0 多万种,甚至比其他动植物物种的总和还多。

    1 . 2生产速度极高

    昆虫的繁殖速度是惊人的,在每年的夏秋高温季节,昆虫繁殖速度极快,部分昆虫甚至呈几何级数增长,在人与生物的世界中,昆虫的世界是丰富而美丽的,是让人应接不暇的。

    1 . 3昆虫的分布

    受到其自身特点的影响,其适应力极强,分布范围非常广,除海洋以外,从热带到两极 ,从平原到高山,地球上任何角落,几乎都有昆虫栖息。昆虫主要以地面和土壤为主要的栖息地 ,在植物的表面和体内也有,一些生命力顽强的昆虫可以生活在水中、冰雪上等一些环境极为恶劣的区域。

    2、昆虫的地位及与人类的关系阐述

    2 . 1昆虫的地位

    昆虫的地位无需赘言,其种类繁多,分布广泛,几乎在任何地点都可以看见昆虫在活动,除了人们常见的蝴蝶、 苍蝇、 蚂蚁、 蜻蜒、 蟋蟀、 蝉、 蝗虫等, 还有许多昆虫是人们所尚未熟识且陌生的,昆虫的世界千姿万态,有待人们去研究 ,昆虫的一些独到的特色也是人类所不具备的, 这都奠定了其在动物世界中特殊的地位。

    2 . 2昆虫与人类的关系

    昆虫平时看着不起眼,但是昆虫却与人类的生活密切相关,其是生物链中重要的一环,其维持着生态的平衡,是重要的食物,药材的重要来源,一些昆虫凭借自身的特点可以预测天气的变化或者灾难的发生。

    2. 2. 1 昆虫记时

    我们的祖先凭借经验,根据昆虫的生活习性,进而发挥记时的功效,而且将其改变为朗朗上口的民歌便于记录,在著名的《诗经》中就有这样一篇文章:“ 五月螽斯动股,六月沙鸡振羽,七月在野,八月在宇,九月在户,十月蟋蟀入我床” 。

    2. 2. 2预测天气变化

    一些人根据生活的经验,依靠昆虫的活动及鸣声来预测短期内的天气变化,这在生活中随处可见,蜻蜒低飞觅食预示着将会有大雨或者暴雨即将到来, 很多气象部门根据昆虫的活动,将天气分为不同的类型,预测天气变化,而且十分准确。

    昆虫的益处和害处

    3 . 1昆虫的益处

    很多昆虫或其产品是重要的工业原料,如家蚕、柞蚕是丝绸工业的主体,紫胶、虫蜡、五倍子等是医学、化工、食品工业的重要原料。约有85%的植物属虫媒花植物,蜂、蝇、蝶、蛾、甲虫等。蜜蜂授粉为人类创造的价值比蜂产品的价值高得多。昆虫作为药物治病,在我国已有2 000多年的历史。到目前为止,我国中医的药用昆虫达300种之多,可以治疗或辅助治疗某种疾病,能增强机体免疫力。如冬虫夏草、斑蝥、九香虫、土元、螳螂等。昆虫具有蛋白质含量高、蛋白纤维少、营养成分易被人体吸收、繁殖世代短、繁殖指数高、适于工厂化生产、资源丰富等特点。

    3. 1 . 1工业昆虫

    一些昆虫的产品是重要的工业原料,在我国每年出口的生丝500万千克以上,

    如家蚕、柞蚕是绢丝工业的主要原料,现给国家换回大量外汇。紫胶虫分泌的紫

    胶,胭脂虫可以提取染料,自蜡虫雄虫分泌的白蜡,倍蚜的虫瘿五倍子所含单宁酸都是重要的工业原料。从昆虫中提取的特殊酶类,如从萤火虫中提取荧光酶素,白蚁中提取的纤维水解酶素,已分别应用于医疗器械工业及轻工与食品中。这些具有重要经济价值的昆虫,又被称为特种经济昆虫。

    3. 1 . 2天敌昆虫

    在自然界中昆虫约有30%的种群是捕食性或寄生性的,它们多数是害虫的天敌,在害虫种群增长方面发挥着巨大的控制作用。它们帮助人们防治害虫,也是人们用来开展生物防治的重要前提。如瓢虫类、草蛉类、食蚜蝇类等,都能大量捕食各种害虫、叶螨和虫卵。赤眼蜂类、小蜂类,姬蜂类和茧蜂类等,能把卵产在许多害虫的卵内或幼虫、蛹的体内,把害虫杀死。

    3. 1 . 3传粉昆虫

    显花植物中,约有85%的种类是虫媒植物,一些取食花蜜和花粉的昆虫,通过活动为植物传粉,为人类创造巨大的财富。昆虫33个目中,15个目的昆虫有访花习性,真正

    更多相关内容
  • 今年的毕业设计,附带源程序,数据库文件和环境说明文档,可以用来做毕业设计或者课程设计 一份很好的毕业设计
  • 常见昆虫的分类.pptx

    2021-12-04 10:35:57
    常见昆虫的分类.pptx
  • 采用java技术构建的一个管理系统。整个开发过程首先对系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计...
  • 项目架构:B/S架构 开发语言:Java语言 开发软件:idea eclipse 前端技术:Layui、HTML、CSS、JS、JQuery等技术 后端技术:JAVA 运行环境:Win10、JDK1.8 数 据 库:MySQL5.7/8.0 运行服务器:Tomcat7.0 CSDN太坑了...
  • 昆虫常见越冬方式.doc

    2021-09-11 03:09:46
    昆虫常见越冬方式.doc
  • 昆虫常见越冬方式(1).doc
  • 大班下学期科学教案《认识常见昆虫》润新教育.txt
  • 双翅目寄蝇科是一类重要的访花传粉昆虫,突颜颤寄蝇亚科和寄蝇族等成虫最常见于各类显花植物上。报告了我国常见的访花传粉寄蝇科4亚科18族54属119种物种名录,它们在农林牧业生产、植物保护、害虫生物控制及维护生态...
  • 常见昆虫的分类;检索表原理;检索表1单向式连续式;检索表2双向式括号式;Ceriagion tenellum;蜚蠊目Blattaria;Hierodula sp;直翅目Orthoptera;Oxya japonica;Sinochlora longifissa;同翅目Homoptera;Moga
  • 百度飞桨深度学习识虫数据处理

    千次阅读 2020-08-30 05:34:51
    包含7种昆虫,分别是Boerner、Leconte、Linnaeus、acuminatus、armandi、coleoptera和linnaeus。 包含了图片和标注,请先将数据解压,并存放在insects目录下。 在新建项目时可以选择数据集,有多个数据集可以使用。...

    百度飞桨深度学习识虫数据处理

    数据集处理

    AI识虫数据集结构如下:

    提供了2183张图片,其中训练集1693张,验证集245,测试集245张。
    包含7种昆虫,分别是Boerner、Leconte、Linnaeus、acuminatus、armandi、coleoptera和linnaeus。
    包含了图片和标注,请先将数据解压,并存放在insects目录下。
    在新建项目时可以选择数据集,有多个数据集可以使用。如下图
    在这里插入图片描述

    解压文件

    # 解压数据脚本,第一次运行时打开注释,将文件解压到work目录下
    # !unzip -d /home/aistudio/work /home/aistudio/data/data19638/insects.zip
    

    调用get_insect_names函数返回一个dict,描述了昆虫名称和数字类别之间的映射关系。下面的程序从annotations/xml目录下面读取所有文件标注信息。

    import os
    import numpy as np
    import xml.etree.ElementTree as ET
    
    def get_annotations(cname2cid, datadir):
        filenames = os.listdir(os.path.join(datadir, 'annotations', 'xmls'))
        records = []
        ct = 0
        for fname in filenames:
            fid = fname.split('.')[0]
            fpath = os.path.join(datadir, 'annotations', 'xmls', fname)
            img_file = os.path.join(datadir, 'images', fid + '.jpeg')
            tree = ET.parse(fpath)
    
            if tree.find('id') is None:
                im_id = np.array([ct])
            else:
                im_id = np.array([int(tree.find('id').text)])
    
            objs = tree.findall('object')
            im_w = float(tree.find('size').find('width').text)
            im_h = float(tree.find('size').find('height').text)
            gt_bbox = np.zeros((len(objs), 4), dtype=np.float32)
            gt_class = np.zeros((len(objs), ), dtype=np.int32)
            is_crowd = np.zeros((len(objs), ), dtype=np.int32)
            difficult = np.zeros((len(objs), ), dtype=np.int32)
            for i, obj in enumerate(objs):
                cname = obj.find('name').text
                gt_class[i] = cname2cid[cname]
                _difficult = int(obj.find('difficult').text)
                x1 = float(obj.find('bndbox').find('xmin').text)
                y1 = float(obj.find('bndbox').find('ymin').text)
                x2 = float(obj.find('bndbox').find('xmax').text)
                y2 = float(obj.find('bndbox').find('ymax').text)
                x1 = max(0, x1)
                y1 = max(0, y1)
                x2 = min(im_w - 1, x2)
                y2 = min(im_h - 1, y2)
                # 这里使用xywh格式来表示目标物体真实框
                gt_bbox[i] = [(x1+x2)/2.0 , (y1+y2)/2.0, x2-x1+1., y2-y1+1.]
                is_crowd[i] = 0
                difficult[i] = _difficult
    
            voc_rec = {
                'im_file': img_file,
                'im_id': im_id,
                'h': im_h,
                'w': im_w,
                'is_crowd': is_crowd,
                'gt_class': gt_class,
                'gt_bbox': gt_bbox,
                'gt_poly': [],
                'difficult': difficult
                }
            if len(objs) != 0:
                records.append(voc_rec)
            ct += 1
        return records
    

    数据读取

    get_img_data_from_file()函数可以返回图片数据的数据,它们是图像数据img,真实框坐标gt_boxes,真实框包含的物体类别gt_labels,图像尺寸scales。

    ### 数据读取
    import cv2
    
    def get_bbox(gt_bbox, gt_class):
       # 对于一般的检测任务来说,一张图片上往往会有多个目标物体
       # 设置参数MAX_NUM = 50, 即一张图片最多取50个真实框;如果真实
       # 框的数目少于50个,则将不足部分的gt_bbox, gt_class和gt_score的各项数值全设置为0
       MAX_NUM = 50
       gt_bbox2 = np.zeros((MAX_NUM, 4))
       gt_class2 = np.zeros((MAX_NUM,))
       for i in range(len(gt_bbox)):
           gt_bbox2[i, :] = gt_bbox[i, :]
           gt_class2[i] = gt_class[i]
           if i >= MAX_NUM:
               break
       return gt_bbox2, gt_class2
    
    def get_img_data_from_file(record):
       """
       record is a dict as following,
         record = {
               'im_file': img_file,
               'im_id': im_id,
               'h': im_h,
               'w': im_w,
               'is_crowd': is_crowd,
               'gt_class': gt_class,
               'gt_bbox': gt_bbox,
               'gt_poly': [],
               'difficult': difficult
               }
       """
       im_file = record['im_file']
       h = record['h']
       w = record['w']
       is_crowd = record['is_crowd']
       gt_class = record['gt_class']
       gt_bbox = record['gt_bbox']
       difficult = record['difficult']
    
       img = cv2.imread(im_file)
       img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    
       # check if h and w in record equals that read from img
       assert img.shape[0] == int(h), \
                "image height of {} inconsistent in record({}) and img file({})".format(
                  im_file, h, img.shape[0])
    
       assert img.shape[1] == int(w), \
                "image width of {} inconsistent in record({}) and img file({})".format(
                  im_file, w, img.shape[1])
    
       gt_boxes, gt_labels = get_bbox(gt_bbox, gt_class)
    
       # gt_bbox 用相对值
       gt_boxes[:, 0] = gt_boxes[:, 0] / float(w)
       gt_boxes[:, 1] = gt_boxes[:, 1] / float(h)
       gt_boxes[:, 2] = gt_boxes[:, 2] / float(w)
       gt_boxes[:, 3] = gt_boxes[:, 3] / float(h)
     
       return img, gt_boxes, gt_labels, (h, w)
    
    

    数据增强

    什么是数据增强呢?data augmentation,它的意思是让有限的数据产生更多的等价数据。
    由于数据集已经提供,我们只能从数据增强方面多添加训练数据。

    随机改变亮暗、对比度和颜色等
    图像亮度、对比度、饱和度和锐化之间并不是彼此独立的,改变其中一个特征可能会同时引起图像其他特征的变化,至于变化的程度取决于图像本身的特性。

    图像亮度通俗理解便是图像的明暗程度,数字图像 f(x,y) = i(x,y) r(x, y) ,如果灰度值在[0,255]之间,则 f 值越接近0亮度越低,f 值越接近255亮度越高。

    饱和度指的是图像颜色种类的多少, 上面提到图像的灰度级是[Lmin,Lmax],则在Lmin、Lmax 的中间值越多,便代表图像的颜色种类多,饱和度也就更高,外观上看起来图像会更鲜艳,调整饱和度可以修正过度曝光或者未充分曝光的图片。使图像看上去更加自然。

    对比度指的是图像暗和亮的落差值,即图像最大灰度级和最小灰度级之间的差值。

    import numpy as np
    import cv2
    from PIL import Image, ImageEnhance
    import random
    
    # 随机改变亮暗、对比度和颜色等
    def random_distort(img):
        # 随机改变亮度
        def random_brightness(img, lower=0.5, upper=1.5):
            e = np.random.uniform(lower, upper)
            return ImageEnhance.Brightness(img).enhance(e)
        # 随机改变对比度
        def random_contrast(img, lower=0.5, upper=1.5):
            e = np.random.uniform(lower, upper)
            return ImageEnhance.Contrast(img).enhance(e)
        # 随机改变颜色
        def random_color(img, lower=0.5, upper=1.5):
            e = np.random.uniform(lower, upper)
            return ImageEnhance.Color(img).enhance(e)
    
        ops = [random_brightness, random_contrast, random_color]
        np.random.shuffle(ops)
    
        img = Image.fromarray(img)
        img = ops[0](img)
        img = ops[1](img)
        img = ops[2](img)
        img = np.asarray(img)
    
        return img
    

    随机填充

    # 随机填充
    def random_expand(img,
                      gtboxes,
                      max_ratio=4.,
                      fill=None,
                      keep_ratio=True,
                      thresh=0.5):
        if random.random() > thresh:
            return img, gtboxes
    
        if max_ratio < 1.0:
            return img, gtboxes
    
        h, w, c = img.shape
        ratio_x = random.uniform(1, max_ratio)
        if keep_ratio:
            ratio_y = ratio_x
        else:
            ratio_y = random.uniform(1, max_ratio)
        oh = int(h * ratio_y)
        ow = int(w * ratio_x)
        off_x = random.randint(0, ow - w)
        off_y = random.randint(0, oh - h)
    
        out_img = np.zeros((oh, ow, c))
        if fill and len(fill) == c:
            for i in range(c):
                out_img[:, :, i] = fill[i] * 255.0
    
        out_img[off_y:off_y + h, off_x:off_x + w, :] = img
        gtboxes[:, 0] = ((gtboxes[:, 0] * w) + off_x) / float(ow)
        gtboxes[:, 1] = ((gtboxes[:, 1] * h) + off_y) / float(oh)
        gtboxes[:, 2] = gtboxes[:, 2] / ratio_x
        gtboxes[:, 3] = gtboxes[:, 3] / ratio_y
    
        return out_img.astype('uint8'), gtboxes
    

    随机裁剪
    翻转操作和旋转操作,对于那些对方向不敏感的任务,比如图像分类,都是很常见的操作,在caffe等框架中翻转对应的就是mirror操作。翻转和旋转不改变图像的大小,而裁剪会改变图像的大小。通常在训练的时候会采用随机裁剪的方法,在测试的时候选择裁剪中间部分或者不裁剪。
    值得注意的是,在一些竞赛中进行模型测试时,一般都是裁剪输入的多个版本然后将结果进行融合,对预测的改进效果非常明显。以上操作都不会产生失真,而缩放变形则是失真的。很多的时候,网络的训练输入大小是固定的,但是数据集中的图像却大小不一,此时就可以选择上面的裁剪成固定大小输入或者缩放到网络的输入大小的方案,后者就会产生失真,通常效果比前者差。

    随机裁剪之前需要先定义两个函数,multi_box_iou_xywh和box_crop这两个函数将被保存在box_utils.py文件中。

    import numpy as np
    
    def multi_box_iou_xywh(box1, box2):
        """
        In this case, box1 or box2 can contain multi boxes.
        Only two cases can be processed in this method:
           1, box1 and box2 have the same shape, box1.shape == box2.shape
           2, either box1 or box2 contains only one box, len(box1) == 1 or len(box2) == 1
        If the shape of box1 and box2 does not match, and both of them contain multi boxes, it will be wrong.
        """
        assert box1.shape[-1] == 4, "Box1 shape[-1] should be 4."
        assert box2.shape[-1] == 4, "Box2 shape[-1] should be 4."
    
    
        b1_x1, b1_x2 = box1[:, 0] - box1[:, 2] / 2, box1[:, 0] + box1[:, 2] / 2
        b1_y1, b1_y2 = box1[:, 1] - box1[:, 3] / 2, box1[:, 1] + box1[:, 3] / 2
        b2_x1, b2_x2 = box2[:, 0] - box2[:, 2] / 2, box2[:, 0] + box2[:, 2] / 2
        b2_y1, b2_y2 = box2[:, 1] - box2[:, 3] / 2, box2[:, 1] + box2[:, 3] / 2
    
        inter_x1 = np.maximum(b1_x1, b2_x1)
        inter_x2 = np.minimum(b1_x2, b2_x2)
        inter_y1 = np.maximum(b1_y1, b2_y1)
        inter_y2 = np.minimum(b1_y2, b2_y2)
        inter_w = inter_x2 - inter_x1
        inter_h = inter_y2 - inter_y1
        inter_w = np.clip(inter_w, a_min=0., a_max=None)
        inter_h = np.clip(inter_h, a_min=0., a_max=None)
    
        inter_area = inter_w * inter_h
        b1_area = (b1_x2 - b1_x1) * (b1_y2 - b1_y1)
        b2_area = (b2_x2 - b2_x1) * (b2_y2 - b2_y1)
    
        return inter_area / (b1_area + b2_area - inter_area)
    
    def box_crop(boxes, labels, crop, img_shape):
        x, y, w, h = map(float, crop)
        im_w, im_h = map(float, img_shape)
    
        boxes = boxes.copy()
        boxes[:, 0], boxes[:, 2] = (boxes[:, 0] - boxes[:, 2] / 2) * im_w, (
            boxes[:, 0] + boxes[:, 2] / 2) * im_w
        boxes[:, 1], boxes[:, 3] = (boxes[:, 1] - boxes[:, 3] / 2) * im_h, (
            boxes[:, 1] + boxes[:, 3] / 2) * im_h
    
        crop_box = np.array([x, y, x + w, y + h])
        centers = (boxes[:, :2] + boxes[:, 2:]) / 2.0
        mask = np.logical_and(crop_box[:2] <= centers, centers <= crop_box[2:]).all(
            axis=1)
    
        boxes[:, :2] = np.maximum(boxes[:, :2], crop_box[:2])
        boxes[:, 2:] = np.minimum(boxes[:, 2:], crop_box[2:])
        boxes[:, :2] -= crop_box[:2]
        boxes[:, 2:] -= crop_box[:2]
    
        mask = np.logical_and(mask, (boxes[:, :2] < boxes[:, 2:]).all(axis=1))
        boxes = boxes * np.expand_dims(mask.astype('float32'), axis=1)
        labels = labels * mask.astype('float32')
        boxes[:, 0], boxes[:, 2] = (boxes[:, 0] + boxes[:, 2]) / 2 / w, (
            boxes[:, 2] - boxes[:, 0]) / w
        boxes[:, 1], boxes[:, 3] = (boxes[:, 1] + boxes[:, 3]) / 2 / h, (
            boxes[:, 3] - boxes[:, 1]) / h
    
        return boxes, labels, mask.sum()
    
    # 随机裁剪
    def random_crop(img,
                    boxes,
                    labels,
                    scales=[0.3, 1.0],
                    max_ratio=2.0,
                    constraints=None,
                    max_trial=50):
        if len(boxes) == 0:
            return img, boxes
    
        if not constraints:
            constraints = [(0.1, 1.0), (0.3, 1.0), (0.5, 1.0), (0.7, 1.0),
                           (0.9, 1.0), (0.0, 1.0)]
    
        img = Image.fromarray(img)
        w, h = img.size
        crops = [(0, 0, w, h)]
        for min_iou, max_iou in constraints:
            for _ in range(max_trial):
                scale = random.uniform(scales[0], scales[1])
                aspect_ratio = random.uniform(max(1 / max_ratio, scale * scale), \
                                              min(max_ratio, 1 / scale / scale))
                crop_h = int(h * scale / np.sqrt(aspect_ratio))
                crop_w = int(w * scale * np.sqrt(aspect_ratio))
                crop_x = random.randrange(w - crop_w)
                crop_y = random.randrange(h - crop_h)
                crop_box = np.array([[(crop_x + crop_w / 2.0) / w,
                                      (crop_y + crop_h / 2.0) / h,
                                      crop_w / float(w), crop_h / float(h)]])
    
                iou = multi_box_iou_xywh(crop_box, boxes)
                if min_iou <= iou.min() and max_iou >= iou.max():
                    crops.append((crop_x, crop_y, crop_w, crop_h))
                    break
    
        while crops:
            crop = crops.pop(np.random.randint(0, len(crops)))
            crop_boxes, crop_labels, box_num = box_crop(boxes, labels, crop, (w, h))
            if box_num < 1:
                continue
            img = img.crop((crop[0], crop[1], crop[0] + crop[2],
                            crop[1] + crop[3])).resize(img.size, Image.LANCZOS)
            img = np.asarray(img)
            return img, crop_boxes, crop_labels
        img = np.asarray(img)
        return img, boxes, labels
    

    随机缩放

    # 随机缩放
    def random_interp(img, size, interp=None):
        interp_method = [
            cv2.INTER_NEAREST,
            cv2.INTER_LINEAR,
            cv2.INTER_AREA,
            cv2.INTER_CUBIC,
            cv2.INTER_LANCZOS4,
        ]
        if not interp or interp not in interp_method:
            interp = interp_method[random.randint(0, len(interp_method) - 1)]
        h, w, _ = img.shape
        im_scale_x = size / float(w)
        im_scale_y = size / float(h)
        img = cv2.resize(
            img, None, None, fx=im_scale_x, fy=im_scale_y, interpolation=interp)
        return img
    

    随机翻转

    # 随机翻转
    def random_flip(img, gtboxes, thresh=0.5):
        if random.random() > thresh:
            img = img[:, ::-1, :]
            gtboxes[:, 0] = 1.0 - gtboxes[:, 0]
        return img, gtboxes
    

    随机打乱真实框排列顺序

    # 随机打乱真实框排列顺序
    def shuffle_gtbox(gtbox, gtlabel):
        gt = np.concatenate(
            [gtbox, gtlabel[:, np.newaxis]], axis=1)
        idx = np.arange(gt.shape[0])
        np.random.shuffle(idx)
        gt = gt[idx, :]
        return gt[:, :4], gt[:, 4]
    

    图像增广方法汇总

    
    # 图像增广方法汇总
    def image_augment(img, gtboxes, gtlabels, size, means=None):
        # 随机改变亮暗、对比度和颜色等
        img = random_distort(img)
        # 随机填充
        img, gtboxes = random_expand(img, gtboxes, fill=means)
        # 随机裁剪
        img, gtboxes, gtlabels, = random_crop(img, gtboxes, gtlabels)
        # 随机缩放
        img = random_interp(img, size)
        # 随机翻转
        img, gtboxes = random_flip(img, gtboxes)
        # 随机打乱真实框排列顺序
        gtboxes, gtlabels = shuffle_gtbox(gtboxes, gtlabels)
    
        return img.astype('float32'), gtboxes.astype('float32'), gtlabels.astype('int32')
    

    将上面的过程整理成一个get_img_data函数。

    def get_img_data(record, size=640):
        img, gt_boxes, gt_labels, scales = get_img_data_from_file(record)
        img, gt_boxes, gt_labels = image_augment(img, gt_boxes, gt_labels, size)
        mean = [0.485, 0.456, 0.406]
        std = [0.229, 0.224, 0.225]
        mean = np.array(mean).reshape((1, 1, -1))
        std = np.array(std).reshape((1, 1, -1))
        img = (img / 255.0 - mean) / std
        img = img.astype('float32').transpose((2, 0, 1))
        return img, gt_boxes, gt_labels, scales
    
    TRAINDIR = '/home/aistudio/work/insects/train'
    TESTDIR = '/home/aistudio/work/insects/test'
    VALIDDIR = '/home/aistudio/work/insects/val'
    cname2cid = get_insect_names()
    records = get_annotations(cname2cid, TRAINDIR)
    
    record = records[0]
    img, gt_boxes, gt_labels, scales = get_img_data(record, size=480)
    
    # 获取一个批次内样本随机缩放的尺寸
    def get_img_size(mode):
        if (mode == 'train') or (mode == 'valid'):
            inds = np.array([0,1,2,3,4,5,6,7,8,9])
            ii = np.random.choice(inds)
            img_size = 320 + ii * 32
        else:
            img_size = 608
        return img_size
    
    # 将 list形式的batch数据 转化成多个array构成的tuple
    def make_array(batch_data):
        img_array = np.array([item[0] for item in batch_data], dtype = 'float32')
        gt_box_array = np.array([item[1] for item in batch_data], dtype = 'float32')
        gt_labels_array = np.array([item[2] for item in batch_data], dtype = 'int32')
        img_scale = np.array([item[3] for item in batch_data], dtype='int32')
        return img_array, gt_box_array, gt_labels_array, img_scale
    
    # 批量读取数据,同一批次内图像的尺寸大小必须是一样的,
    # 不同批次之间的大小是随机的,
    # 由上面定义的get_img_size函数产生
    def data_loader(datadir, batch_size= 10, mode='train'):
        cname2cid = get_insect_names()
        records = get_annotations(cname2cid, datadir)
    
        def reader():
            if mode == 'train':
                np.random.shuffle(records)
            batch_data = []
            img_size = get_img_size(mode)
            for record in records:
                #print(record)
                img, gt_bbox, gt_labels, im_shape = get_img_data(record, 
                                                                 size=img_size)
                batch_data.append((img, gt_bbox, gt_labels, im_shape))
                if len(batch_data) == batch_size:
                    yield make_array(batch_data)
                    batch_data = []
                    img_size = get_img_size(mode)
            if len(batch_data) > 0:
                yield make_array(batch_data)
    
        return reader
    

    由于数据预处理耗时较长,可能会成为网络训练速度的瓶颈,所以需要对预处理部分进行优化。通过使用飞桨提供的API paddle.reader.xmap_readers可以开启多线程读取数据,具体实现代码如下。

    import functools
    import paddle
    
    # 使用paddle.reader.xmap_readers实现多线程读取数据
    def multithread_loader(datadir, batch_size= 10, mode='train'):
        cname2cid = get_insect_names()
        records = get_annotations(cname2cid, datadir)
        def reader():
            if mode == 'train':
                np.random.shuffle(records)
            img_size = get_img_size(mode)
            batch_data = []
            for record in records:
                batch_data.append((record, img_size))
                if len(batch_data) == batch_size:
                    yield batch_data
                    batch_data = []
                    img_size = get_img_size(mode)
            if len(batch_data) > 0:
                yield batch_data
    
        def get_data(samples):
            batch_data = []
            for sample in samples:
                record = sample[0]
                img_size = sample[1]
                img, gt_bbox, gt_labels, im_shape = get_img_data(record, size=img_size)
                batch_data.append((img, gt_bbox, gt_labels, im_shape))
            return make_array(batch_data)
    
        mapper = functools.partial(get_data, )
    
        return paddle.reader.xmap_readers(mapper, reader, 8, 10)
    

    至此,我们完成了如何查看数据集中的数据、提取数据标注信息、从文件读取图像和标注数据、图像增广、批量读取和加速等过程,通过multithread_loader可以返回img, gt_boxes, gt_labels, im_shape等数据,接下来就可以将它们输入到神经网络,应用到具体算法上了。

    # 测试数据读取
    
    # 将 list形式的batch数据 转化成多个array构成的tuple
    def make_test_array(batch_data):
        img_name_array = np.array([item[0] for item in batch_data])
        img_data_array = np.array([item[1] for item in batch_data], dtype = 'float32')
        img_scale_array = np.array([item[2] for item in batch_data], dtype='int32')
        return img_name_array, img_data_array, img_scale_array
    
    # 测试数据读取
    def test_data_loader(datadir, batch_size= 10, test_image_size=608, mode='test'):
        """
        加载测试用的图片,测试数据没有groundtruth标签
        """
        image_names = os.listdir(datadir)
        def reader():
            batch_data = []
            img_size = test_image_size
            for image_name in image_names:
                file_path = os.path.join(datadir, image_name)
                img = cv2.imread(file_path)
                img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
                H = img.shape[0]
                W = img.shape[1]
                img = cv2.resize(img, (img_size, img_size))
    
                mean = [0.485, 0.456, 0.406]
                std = [0.229, 0.224, 0.225]
                mean = np.array(mean).reshape((1, 1, -1))
                std = np.array(std).reshape((1, 1, -1))
                out_img = (img / 255.0 - mean) / std
                out_img = out_img.astype('float32').transpose((2, 0, 1))
                img = out_img #np.transpose(out_img, (2,0,1))
                im_shape = [H, W]
    
                batch_data.append((image_name.split('.')[0], img, im_shape))
                if len(batch_data) == batch_size:
                    yield make_test_array(batch_data)
                    batch_data = []
            if len(batch_data) > 0:
                yield make_test_array(batch_data)
    
        return reader
    
    

    参考链接:

    https://www.zhihu.com/question/319291048/answer/645047014

    展开全文
  • 通过2011~2012年对吉林市周边传粉昆虫资源进行的调查,共发现本地常见的传粉昆虫128种其中5月27种,6月36种,7月53种,8月份47种。在4个月份中公有3种,5~6月公有13种,6~7月公有9种,7~8月有13种。从整个昆虫类群种类构成...
  • 本文考虑了两种常见的计数数据模型,即零膨胀泊松(ZIP)和零膨胀负二项式(ZINB)概率分布。 重点放在模型参数的最大似然(ML)估计上。 特别令人感兴趣的是估计零膨胀参数,从而估计校正后的频率。 结果发现,...
  • 胡蜂是一种常见的社会性昆虫,分布广,种类多,有的营群居性生活,亲代和子代生活在一起,有的是独栖的。无论哪种类型都是以猎取其他昆虫为食,多数以捕捉蛾类幼虫为食。因其有捕食害虫的特点,我国很多地区创造条件饲育...
  • 昆虫基因组DNA的优化提取,可进行长读测序 通过 布伦达·奥珀特(Brenda Oppert) 1,*, 萨曼莎·斯托斯(Samantha Stoss) 1个, 阿莱莎和尚 1个和 蒂莫西·史密斯 2 1个 美国农业部谷物和...

    昆虫基因组DNA的优化提取,可进行长读测序

     
     
    1个
    美国农业部谷物和动物健康研究农业研究服务中心,美国曼哈顿学院街1515号,KS 66502
    2
    美国农业部农业研究服务局美国肉类动物研究中心,克莱中心,美国东北67432
    *
    应与之联系的作者。
    方法协议。 20192(4),89分; https://doi.org/10.3390/mps2040089
    收到:2019年10月24日/修订:2019年11月15日/接受:2019年11月19日/发布:2019年11月23日

    抽象

    长读取测序技术继续增加读取长度,目前,平均读取长度可以> 20 kb,最高可达60–80 kb。现在的挑战是提取具有足够片段大小和质量的基因组DNA,以支持更长的读取长度。 我们开发了一种成功的方法,可以从昆虫中 持续获得高质量的长基因组DNA 。确定了用于基因组DNA提取的昆虫的最佳发育阶段是the阶段,可以从摄入的食物中消除DNA,并减少可能干扰提取的几丁质物质的污染。通过商业基因组DNA提取试剂盒的改良程序获得了改进的结果。最初是红色面粉甲虫Tribolium castaneum的软p组织使用特富龙微粉破坏了试剂盒裂解缓冲液中的。对试剂盒方案的修改还包括通过颠倒试管进行温和混合,而不是苛刻的涡旋步骤,并使用宽孔移液器吸头来转移含有基因组DNA的级分。提供了来自一个样品的数据作为成功的下游文库生产和测序的实例。尽管该技术已针对昆虫进行了优化,但使用这些经过改进的程序从其他生物的组织中提取也可以改善长期阅读的测序结果。

    1.简介

    长读测序正越来越多地用于许多生物学应用,尤其是基因组组装。复杂基因组的从头组装,尤其是那些具有许多昆虫基因组特征的高度重复序列的复杂基因组,可以通过并入长读(> 10 kb)序列而得到改善。需要能够分离基因组DNA的长链段,同时最大限度地减少损伤(例如DNA链的切口)的方案,以改善长期读取的测序数据。
    从历史上看,DNA提取的第一个报道是从细胞核中称为“核蛋白”,Friedrich Miescher对此进行了描述[ 1 ]。自该报告以来,已经出现了许多基本分离方案的排列,这些方案从使用表面活性剂或去污剂裂解细胞,通过一般蛋白酶去除蛋白质以及通过RNase去除RNA开始。通过盐沉淀和离心去除蛋白质,RNA和细胞膜脂质。还可以通过添加醇(乙醇或异丙醇),苯酚/氯仿和/或结合至固相(如二氧化硅)并通过改变pH和盐浓度进行洗脱,将DNA与上述污染物分离。
    Blin和Stafford [ 2 ]提出了一种分离真核生物高分子量DNA的方法,该方法涉及在Waring Blender中将液氮中的组织匀浆,并获得200×10 6 Da(约300,000)的无缺口DNA。bp)。最近证明了另一种从植物材料中低成本,快速提取基因组DNA的方法[ 3 ]。但是,该方法还使用了在液氮中研磨组织的初始过程,并且我们发现该过程并不总是适用于昆虫,这是因为有限材料的损失和基因组DNA的破坏。
    已经开发出许多商业试剂盒,用于快速有效地分离基因组DNA。对于昆虫,Chen等。[ 4]评估了从玉米西部根虫(一种玉米的主要害虫)分离基因组DNA的五种不同的时间,功效和成本方法。这些方法包括使用SDS或CTAB,或使用试剂盒DNAzol(美国俄亥俄州辛辛那提的分子研究中心公司),Puregene(美国明尼苏达州明尼阿波利斯的Gentra Systems)和DNeasy(德国基尔根州希尔根) 。尽管所有五种方法都能产生足够数量的基因组DNA以用于预期的分子应用,但SDS和CTAB提取物却能产生更多的数量,并且降解程度较小。所有试剂盒的优点是不会产生有害的苯酚和氯仿废物,但DNeasy试剂盒的提取时间最短,而Puregene试剂盒的蛋白质污染最少。这些研究人员还发现,使用多达8倍体积的乙醇和4°C可以提高提取的DNA量,
    我们评估了许多商业试剂盒,以改进从存储的昆虫中提取基因组DNA的方法,以进行长时间的测序(数据未显示)。我们发现了一种可重复提取高质量长基因组DNA的试剂盒,并且在此证明了我们用常见的储藏产品有害生物Tribolium castaneum(红色面粉甲虫)进行改良的方法。

    2.实验设计

    基因组DNA提取。在我们评估的市售试剂盒中,我们发现EZNA昆虫DNA试剂盒(Omega BioTek,诺克罗斯,佐治亚州,美国)提供了从昆虫中提取基因组DNA的最一致,最优质的方法。但是,如第3节中所述,对试剂盒随附的协议进行了修改,以提供更高的质量和更长的基因组DNA 。
    我们没有遵循建议的液氮粉碎方案,因为我们发现我们损失了样品数量和质量(数据未显示)。取而代之的是,使用10只雄性,雌性或混交性锥栗T(约30 mg)作为起始原料,并在试剂盒裂解缓冲液中进行研磨。蛋白质被蛋白酶K降解;用24:1氯仿:异戊醇提取DNA,并用RNAse消化以去除RNA。分离和纯化基因组DNA ,并通过数字纳米光度计和TapeStation分析来自cast木T的基因组DNA样品的1μL等分试样的质量和数量。
    将样品在冰上运输到位于内布拉斯加州Clay Center的USDA ARS美国肉类动物研究中心进行文库构建和PacBio Sequel I测序。该文库按照制造商的建议使用SMRTbell模板制备试剂盒1.0-SPv3进行制备,使用BluePippin上用于插入片段大小选择的15 kb下限边界。

    2.1。用料

    • 昆虫。建立殖民地赤拟谷盗在该中心的粮食和动物健康研究(CGAHR),曼哈顿,KS不断饲养,以维持95%的小麦面粉和5%的啤酒酵母,28°C的饲养阶段(幼虫和成虫) ,相对湿度75%,完全黑暗。用于基因组DNA提取和基因组测序的菌落为GA-2,与原始基因组测序项目中使用的菌落相同[ 5]。我们从储藏昆虫的所有阶段中提取基因组DNA,并确定stage阶段是提取高质量长基因组DNA的最佳选择,因为缺少食物污染和可能阻塞色谱柱的几丁质物质(数据未显示)。因此,早期p(约3 mg)用于基因组DNA提取。
    • EZNA昆虫DNA试剂盒(Omega BioTek,美国乔治亚州诺克罗斯;目录号:D0926-02)。
    • 无菌蓝色小丸杵(Kimble Chase,获自美国伊利诺斯州诺斯莱克市Labsource,美国;目录号:749520-0000)。
    • 24:1的氯仿:异戊醇(Acros Organics,从美国马萨诸塞州沃尔瑟姆的ThermoFisher Scientific获得;目录号:AC327155000)。
    • 200和1000 µL宽孔微量移液器吸头(ART TM,可通过ThermoFisher Scientific获得)。
    • 100%乙醇的200分子生物学鉴定等级(美国宾夕法尼亚州普鲁士国王Decon实验室;目录号:3916)。
    • SMRTbell模板制备试剂盒(美国加利福尼亚州门洛帕克,太平洋生物科学公司,版本1.0-SPv3)。

    2.2。设备

    • 摇动培养箱(美国纽约州Hauppauge,Eppendorf的5436型Thermomixer)。
    • 台式离心机(Sorvall Legend MicroCL 21R,ThermoFisher Scientific)。
    • NP80型数字纳米光度计(美国加利福尼亚州西湖村Implen)。
    • Tapestation 2200型(美国加利福尼亚州圣塔克拉拉,安捷伦)。
    • PacBio Sequel I(太平洋生物科学)。
    • BluePippin(Sage Science,美国马萨诸塞州贝弗利市)。

    2.3。费用

    可以提取样品的费用为每个样品$ 2.29至$ 3.60,具体取决于试剂盒的大小。不包括的其他费用包括消耗品(杵和针尖)和24:1氯仿:异戊醇(500毫升瓶309.50美元)。

    3.程序

    3.1。破坏组织(5分钟)

    将组织(少于25 mg)与EZNA昆虫DNA试剂盒中的350μLCTL缓冲液在1.5 mL无菌微量离心管中合并,并用无菌蓝色沉淀杵用手研磨约2分钟。

    3.2。消化蛋白(1–12小时)

    从试剂盒中将25μL蛋白酶K溶液添加到CTL缓冲液中的组织中,通过小心地颠倒试管10次来轻轻混合,并在设置为低速的振荡培养箱中于60°C孵育1 h。在室温下在轨道混合器上孵育过夜可以提高产量。

    3.3。提取DNA(10分钟)

    向样品中添加等体积(350μL)的24:1氯仿:异戊醇。代替建议的涡流,轻轻颠倒20次以彻底混合。在台式离心机中于室温以10,000× g离心2分钟。小心地转移上层水层,避免使用100 µL宽口移液器吸头(每次约250 µL),一次在接口上形成任何乳状沉淀,每次100 µL到干净的1.5 mL微量离心管中。已转移)。

    3.4。RNA酶消化(15分钟)

    从试剂盒中加入一体积的BL缓冲液和2 µL RNaseA。请勿涡旋,而是将样品轻轻颠倒20次,并在70°C下孵育10分钟。

    3.5。提取DNA(5分钟)

    向样品中加入一体积(在本例中为500 µL)100%乙醇的200证明分子生物学级。请勿涡旋,而是将样品轻轻颠倒20次。此时,您可能可以看到半透明DNA的浮动链。

    3.6。纯化DNA(30分钟)

    将500μL带有1 mL宽口移液管吸头的样品添加到插入2 mL收集管(均在套件中提供)的HiBand DNA Mini Column中,并以15,000× g离心1分钟。丢弃滤液,并用其余样品(在我们的情况下为500μL)和相同的HiBand色谱柱重复。
    转移所有样品后,将色谱柱转移到试剂盒中也提供的无菌2.0 mL收集管中,并从试剂盒中加入500μLHBC缓冲液(确保已按照试剂盒说明将HBC缓冲液用异丙醇稀释) 。以15,000× g离心1分钟。丢弃滤液,并从试剂盒中加入700μLDNA Wash缓冲液(根据试剂盒说明用100%乙醇稀释)。以15,000× g离心1分钟,然后重复洗涤步骤一次。
    洗涤步骤后,以15,000x g的转速将色谱柱再旋转2分钟,以干燥色谱柱基质。将色谱柱转移至无菌的1.5 mL微量离心管中,小心地将50μL试剂盒洗脱缓冲液(已预热至70°C)添加到色谱柱膜的中心,并在室温下孵育5分钟。通过以15,000× g旋转1分钟从柱子上洗脱基因组DNA ;重复一次洗脱过程。评估基因组DNA的质量和数量,并在室温下保存以立即使用。如有必要,可以将样品冷冻在-80°C,但是基因组DNA的长度和质量可能会受到影响。

    4.结果

    使用商业试剂盒的改良方法成功地获得了来自T草的基因组DNA 。DNA具有推荐用于长读测序的最佳A 260 / A 280和A 260 / A 230比率(表1)。从雌性锥栗。获得的基因组DNA的浓度大约是从雄性obtained获得的基因组DNA的浓度的两倍。通过电泳测量了从T木中提取的基因组DNA ,其峰长大于50 kb(图1)。
    从样品B1提取的约40μg基因组DNA用于文库生产和测序。该文库的平均插入长度为8731,插入数N 50 = 14,750(图2)。使用Sequel v2.1化学方法进行测序,从30.0 Gb获得总共3,764,395个亚读,平均长度为7970(图3)。

    5.讨论

    我们提出了一种快速且可重现的方法,可从昆虫p中获得高质量的长基因组DNA。从昆虫的不同生命阶段提取后,我们发现p提供了没有食物的最佳质量序列,并且使用柱子进行的提取由于几丁质材料的可能性较小。
    该方案易于执行,花费了两个多小时才完成,没有过夜的潜伏期。我们对推荐的试剂盒协议进行的主要更改是:
    • 用杵在CTL缓冲液中匀浆组织,而不是在液氮中研磨;
    • 始终使用宽口移液管移动任何含有基因组DNA的样品;
    • 永不涡旋,总是通过轻轻倒转来混合。
    该试剂盒包括多种提高DNA产量的方法,例如在洗脱前将洗脱缓冲液在色谱柱上孵育5分钟,然后重复洗脱步骤,这两种方法均用于我们的程序中。还建议将洗脱体积增加至超过100μL,我们没有选择该洗脱体积以免稀释样品。
    在修改方案以增加产量和改善基因组DNA的质量时,有一些考虑因素。充分研磨样品以最大化基因组DNA的产量至关重要,但是我们发现在液氮中研磨和转移会导致产量降低,有时质量降低。在裂解缓冲液中用微粉手动研磨几分钟,可得到更高数量和质量的基因组DNA。虽然该试剂盒建议用蛋白酶K孵育4小时可能足以去除污染的蛋白质,但我们发现过夜孵育可提高质量评估中的吸光度比。但是,在孵化期间必须避免剧烈摇动。使用宽口移液器吸头对于转移基因组DNA避免剪切至关重要。如果没有宽孔尖端,请使用无菌剃须刀切片并加宽尖端末端的开口。避免剪切DNA的另一个重要步骤是始终轻轻颠倒试管,切勿涡旋。按照试剂盒方案的建议,必须使用新等分的乙醇才能使DNA充分沉淀。这些建议为从中成功纯化基因组DNA提供了改进T. castaneum用于长时间阅读测序,也已成功用于其他昆虫物种。

    作者贡献

    概念化,BO;方法论,BO,AM,SS,TS;形式分析,BO,AM,SS,TS;调查,BO,AM,SS,TS;资源,BO;数据管理,BO和TS;写作-原始草稿,BO;写作—审查和编辑,BO,AM,SS,TS;可视化,BO;监督,BO;项目管理,BO;资金收购,BO

    资金

    这项研究由美国农业部ARS CRIS 3020-43000-032-00D,生态学,基因组学和储藏产品昆虫的管理内部资助。没有使用外部资金。

    致谢

    感谢Tom Morgan,Kristen Kuhn和Ken Friesen的技术帮助。在本出版物中提及商品名称或商业产品仅是为了提供特定信息,并不意味着美国农业部的建议或认可。USDA是机会均等的提供者和雇主。

    利益冲突

    作者宣称没有利益冲突。
    展开全文
  • 天牛科昆虫主要以幼虫为害植物茎杆,但鉴定分类工作至今仍以成虫为主,因此,在植株上发现天牛幼虫为害时,往往无法识别其种类。从事天牛害虫研究工作者迫切需要有一个简单的、切合实用的检索方法。本文将常见的70种幼虫...
  • 食叶昆虫微生物群落来源于土壤而不是取食植物Foliar-feeding insectsacquire microbiomes from the soil rather than the...

    食叶昆虫微生物群落来源于土壤而不是取食植物

    Foliar-feeding insects acquire microbiomes from the soil rather than the host plant

    Nature Communications, [12.121]

    doi.org/10.1038/s41467-019-09284-w

    Published online 19 March 2019

    第一作者:S. Emilia Hannula1,Feng Zhu(朱峰)1,2, Robin Heinen1,3,T. Martijn Bezemer1,3

    通讯作者:T. Martijn Bezemer1,3 email: m.bezemer@nioo.knaw.nl

    主要单位:

    1 荷兰皇家科学院生态研究所,瓦格宁根(The Netherlands Institute of Ecology NIOO-KNAW, Droevendaalsesteeg 10, 6708 PB Wageningen, The Netherlands)

    2 中国科学院遗传与发育生物学研究所农业资源研究中心,农业水资源重点实验室,河北省土壤生态重点实验室,中国河北石家庄(Key Laboratory of Agricultural Water Resources, Hebei Key Laboratory of Soil Ecology, Center for Agricultural Resources Research, Institute of Genetic and Developmental Biology, The Chinese Academy of Sciences, 286 Huaizhong Road, 050021, Shijiazhuang, Hebei, China)

    日报

    Nature子刊:植食昆虫微生物组来自土壤

    1. 取食离体叶片和正常生长的植株的毛虫微生物群落不同;

    2. 离体叶片饲养的毛虫微生物群落和离体叶片类似,完整植株饲养的毛虫微生物群落和土壤微生物群落类似;

    3. 植物作为土壤微生物群落与毛虫微生物群落之间的桥梁更多的将土壤微生物群落的特征传递到毛虫中;

    4. 昆虫微生物群落由土壤微生物群落决定,植物对土壤微生物群落的影响可以通过土壤记忆传递到以后代植物为食的昆虫中。

    点评:土壤-植物-昆虫这一系统之间的微生物传递或者互作过程最近被生态学家们格外关注。昆虫肠道微生物群落是来自植物,还是土壤?基于这一问题,本文作者提出了自己的见解。这里为什么不准确的称之为昆虫肠道微生物组呢?是因为作者取样方式不能准确的称之为肠道,而是昆虫体内微生物群体。作者展示了土壤微生物群落强大的影响力,也就是说土壤物种组成决定昆虫物种组成。此外引起我格外注意的是土壤记忆可能通过土壤微生物群落传递到昆虫。这样是否土壤功能也会传递到昆虫中?这种传递是否可以反向传递给土壤?是否昆虫作为微生物群落的携带者和传递着在一定程度上缓解土壤微生物群落的异质性?这些有趣的问题我们值得进一步思考。

    摘要

    土壤和植物微生物群落是相互联系的,但是这对地上部以植物为食的昆虫微生物群落有何影响尚不清楚。我们设计田间实验首先使用植物培养土壤,然后在不同处理土壤种植蒲公英,随后饲养毛虫以评估毛虫肠道微生物群落来源。结果表明以完整生长的植物为食的毛虫微生物群落与土壤微生物群落更相似,离体叶片为食的毛虫微生物组同离体叶片相似,并且以离体叶片为食的毛虫微生物群落更加简单。完整植株为食的毛虫微生物群落更加复杂。植物介导的土壤微生物群落的变化并没有明显反应到植物上,但是却反应到毛虫中。我们的研究结果表明昆虫微生物群落依赖于土壤微生物群落,植物对土壤微生物群落的影响可以通过土壤记忆传递到取食后代植物的毛虫中。

    前言 Introduction

    土壤微生物群落包含丰富度极高的细菌和真菌,同样植物也包含大量微生物组,当植物种植到土壤中,土壤中的部分微生物便会定殖到植物根系。所以,植物地上部,例如茎,叶都存在一些微生物,这些微生物要么同植物共生,要么寄生于植物,要么存在一些对植物有害的病原细菌和真菌。这些地上部微生物最起码是部分来源于植物的根或和土壤。昆虫也和大量的微生物与之产生联系,这些微生物有会对昆虫造成疾病的病原菌,有利于昆虫抗病、解毒、消化的有益菌。草食性昆虫的微生物组出现在植物上,因此微生物群落其实是来源于土壤的,是经由植物传递到昆虫微生物组中。但是最近的许多研究表明这些土壤来源的微生物并不存在与昆虫肠道中。然而这些研究使用的是动物而不是昆虫作为模型,得到其核心肠道微生物群落来源于非饮食途径。此外,少数研究表明食草昆虫可以从环境中得到一些共生的微生物,有些直接来源于土壤,尽管我们不知道是否所有的食草昆虫的微生物组都会受土壤的影响。一个有趣的现象是改变土壤微生物群落会改变昆虫肠道微生物组进而改变昆虫的一些表型特征(这种改变通过植物来联系或者直接的土壤昆虫相互作用来改变)。

    植物同时具有地上和地下两个部分,可以作为大多数地上和地下生物的食物来源。20年以来一个重量级研究表明植物在维系地上生物和地下生物关系过程中起着重要作用。同一株植物与植物根系相关的生物可以影响以叶片为食的生物生长。植物可以通过他们的生长形式,生长速率等改变土壤微生物群落。生长较为缓慢的植物,同时昆虫为食的植物,这些都会改变土壤微生物群落。到目前为止,大多数研究都集中在地上和地下植物部分化学成分的系统变化。然而植物和昆虫微生物群在这些地上-地下相互作用中的作用尚不清楚,这种相互作用是如何受植物调控并改变土壤微生物群落的尚不可知

    我们假设植物改变的土壤微生物群落会影响以后代植物为食的昆虫微生物群落,尽管他们的微生物群落来源于植物。我们假设植物生长形式和生长速率是土壤微生物群的重要驱动因素,这些微生物群落将影响我们实验植物(蒲公英)的根和茎的微生物群落;最终改变了昆虫的微生物群落。我们进行了两个独立的试验试图寻找昆虫微生物群落中由土壤直接影响的部分。通过这两个试验,我们发现地上食草昆虫的微生物群落并非来源寄主植物,而是来源于寄主植物赖以生长的土壤微生物群落。

    结果 result

    1 土壤、植物和昆虫肠道的微生物群落组成

    Composition of soil, plant, and insect microbiomes.

    我们使用Illumina测序通过16S rRNA和ITS2基因对土壤、植物微生物群落进行测定和表征。根际土壤细菌和真菌多样性最高,叶片微生物多样性最低(图1a, b; 附图2)。我们使用两个独立的实验 (附图1) 用来解决毛虫(caterpillars 本文翻译:昆虫,毛虫这两个词不做区分)微生物群落到底是来源于土壤或者植物。若以离体叶片为食的毛虫的细菌和真菌多样性很低和细菌门水平和真菌纲水平物种的数量同样比以完整生长的植株为食的毛虫低 (图1a, b; GLM: bacteria: F = 7.56, P < 0.001; fungi: F = 8.11, P < 0.001). 两种不同喂养方式的毛虫微生物群落结构也完全不同 (PERMANOVA: bacteria: F = 30.05, R2 = 0.19, P < 0.001; fungi: F = 43.11, R2 = 0.25, P < 0.001) 并且这两种喂养方式检测到重叠的毛虫微生物很少(图1c, d). 值得注意的是以正常生长植物为食的毛虫微生物组相比于叶片微生物群落更加接近土壤微生物群落(图1c, d)。喂养了毛虫的离体叶片和尚未喂养毛虫的离体叶片微生物群落相似。两种不同喂养方式的毛虫微生物群落不同,并且在细菌门水平的物种和真菌纲水平的物种也存在差异。细菌的ActinobacteriaChloroflexi门, 真菌的 EurotiomycetesSordariomycetes,和 Dothideomycetes纲均在以正常生长植株为食的毛虫中更加丰富,而Betaproteobacteria 和一些尚未注释出来的真菌则在离体叶片中更加的丰富 (GLM: FDR adjusted P < 0.05 for all cases; 附图3). 叶片微生物组几乎全部由一组未注释的真菌OTU和细菌的Gammaproteobacteria门组成 (附图4和5)。这两种成分均在以离体叶片为食的毛虫中检测到。根系微生物群落是土壤微生物群落的一个子集,在根系GammaproteobacteriaFirmicutesBacteroidetesSordariomycetesAgaricomycetesGlomeromycotina会大量富集 (图1c, d; 附图4, 5)

    图1 毛虫,叶,根部和土壤中细菌和真菌的多样性和群落组成

    Diversity and community structure of bacteria and fungi in caterpillars, leaves, roots and soil

    图a-b:毛虫肠道,根系,土壤中细菌门的数量(a),真菌科的数量(b)。毛虫保存在完整的植株和叶片上。箱线图中间的线代表门类的中位数,箱线图之前散落的点代表每个部分微生物门类的变化。(差异分析使用Tukey方法进行多重比较);原始alpha多样性(Chaos1)指标在补充图2中。微生物门类信息和丰度信息在补充图3和图4中可以得到。三个星号代表显著性差异p < 0.001。
    图c-d:二维散点图展示细菌(c)真菌(d)NMDS分析结果(使用Bray-Curtis相似性距离矩阵)。stress值分别为0.16 (细菌) 和 0.19 (真菌)。原始数据在补充文件中可以得到。

    2 土壤、叶片和毛虫共享的微生物

    Shared microbes between soils, leaves, and caterpillars

    两种喂养方式毛虫共享的核心微生物群落也存在与植株根系(19.1%)和叶片(20.3%)中 (图2a–c),同时也有特有的微生物群体,大约16.7%微生物仅仅发现在毛虫中。毛虫核心微生物群组成细菌主要有ProteobacteriaAcidobacteria
    Firmicutes, 真菌为未注释的OTU (Supplementary
    Figs 6, 7)
    。值得注意的是以完整植株为食的毛虫大部分OTU也存在与土壤中(75%)。以完整植株为食的毛虫中有超过以离体叶片为食的毛虫三倍的OTU数量。以离体叶片为食的毛虫中并没有发现其他额外的OTU。土壤和以完整植株为食的毛虫主要共有Actinobacteria (12.6%), Eurotiomycetes (21.8%) 和未注释出来的OTUs (22.3%)  (附图6),并且真菌Eurotiomycetes 纲和细菌Actinobacteria门的丰度在毛虫中更高 (Supplementary
    图4, 5)

    图2 毛虫肠道、土壤、植物共享的OTU

    Bacterial and fungal OTUs shared among caterpillars, plants and soil

    图2:a,b 三元图中符号代表一个OTU,细菌使用圆形表示,真菌使用三角形表示。使用OTU为在每组样品中出现超过10%的OTU。符号的大小代表了每个OTU的平均相对丰度,颜色代表该OTU主要的来源区域。绿色代表该OTU超过50%来源于叶片,棕色代表该OTU丰度超过50%来在毛虫肠道(在离体叶片上的毛虫颜色为浅棕色,在植株上生长的毛虫颜色为深棕色)。黑色代表OTU在土壤中丰度超过50%,灰色代表OTU在根系中丰度超过50%。灰色的符号代表在全部区域都存在的OTU。每个符号的位置代表该OTU出现在不同样品中的丰度比例。50%的线编号为0-9。

    图a:在土壤,食用离体叶片,食用植株的毛虫中的公有OTU的分布。
    图b:在植物,食用离体叶片,食用植株的毛虫中的公有OTU的分布。
    图c:食用离体叶片毛虫和植株毛虫肠道共有和特有OTU的数量。图中颜色含义和a,b图中的一样。

    3 不同植物类型对微生物群落的遗留影响

    Soil legacy effects on soil, plant, and insect microbiomes.

    我们通过两个独立的平行试验,研究了田间植物群落对土壤中微生物群落组成、蒲公英和在这些植物上放养的毛虫的影响 (附图1)。植被群落改变了土壤细菌和真菌群落,但是令人惊讶的是并没有改变蒲公英根系和叶片微生物组成 (图3c, d, g, h)。但是我们检测却到了不同植物群落对毛虫微生物群落的影响,但这只有在以完整植株为食的毛虫中检测到,表明了毛虫虽然以植物为食,但是与土壤似乎接触更多毛虫中真菌的Eurotiomycetes纲和细菌的BacteroidetesAlphaproteobacteriaBetaproteobacteria 门受植物群落影响。

    图3 不同植物类型对微生物群落的遗留影响

    图3 Legacy effects of plant communities on microbiomes.

    图a-d代表了植物群落对毛虫肠道、植物叶片、根系、土壤细菌群落的影响。图e-h代表了植物群落对毛虫肠道、植物叶片、根系、土壤真菌群落的影响。NMDS分析的stress值介于0.11-0.18之间。草地植被相关的群落使用亮绿色表示。forb植被群落使用青绿色点表示。grass和forb植被混合群落使用使用深绿色表示。每幅图中小点代表样品,大点代表每组样品的中心点。
    图中的标识为置换检验结果。a,e代表土壤微生物群落。b,f代表食用离体叶片和植株的毛虫肠道微生物。c, g代表植物根系微生物群落,d,h代表叶微生物群落。植物生长速率在补充材料中可以得到 (附图14)

    4 植物和毛虫生物量和土壤性质

    Plant and insect biomass and abiotic soil characteristics.

    供试植物茎叶生物量在生长比较快速的群落中最高,在生长较为缓慢的群落中生物量最低。也发现为食用快速生长群落植株的毛虫生物量更高(完整植物为食的试验 附图10)。土壤化学性质在不同土壤中没有差异,只是grass群落中土壤的氮有效性高于其他土壤(附图11,附表1)。毛虫生物量和植物生物量之间没有关系,而植物和毛毛虫的表型与土壤化学性质也没有关系(附图12)。我们进一步将毛虫中真菌纲水平物种丰度和细菌门水平物种丰度与毛毛虫的表型联系起来。以完整植物为食的毛虫生物量与真菌纲水平物种Chaetotyriales丰度呈负相关,存活毛虫数量与细菌Sordariales, Pseudomonadales ,Burkholderiales目呈负相关。毛虫生物量和存活率与两个真菌纲和三个细菌目呈正相关。对于以离体叶片为食的毛虫,毛虫生物量与任何真菌目或细菌纲的相对丰度之间没有显著相关性(图4)。

    图4:毛虫表型、植物表型、毛虫肠道细菌和真菌群落相对丰度的相关性分析

    Fig. 4 Correlations between caterpillar parameters, plant parameters, and relative abundance of fungal and bacterial taxa in the caterpillars

    a图中真菌使用目水平物种和细菌纲水平物种。使用皮尔森相关,毛虫生物量和成活率使用红色表示,叶片和根系生物来量使用绿色表示。相关图中颜色的填充按照相关程度的强弱进行加深,正相关为红色,负相关为蓝色。所有的相关都使用FDR进行p值矫正,并且仅仅展示p值小于0.05的点。如果两者之间不相关,则使用白色填充方格。物种注释信息方便的星号表示该物种和毛虫生物量相关。

    图b和d代表了使用离体叶片和植株的毛虫肠道微生物之间的斯皮尔曼相关网络。网络中节点的大小代表了OTU的相对丰度,颜色代表了该OTU主要的来源。绿色代表了该OTU主要来源于叶片,棕色代表毛虫肠道微生物群落(暗棕色OTU为使用植株的毛虫,亮棕色为食用离体叶片的毛虫)。黑色代表了来源于土壤中OTU,灰色为各部分都存在的OTU。

    讨论

    Discussion

    在本研究中,我们证实了这样的假设,植物通过土壤可以塑造植物相关的微生物组,随后又塑造了以植物为食的昆虫微生物组。值得注意的是我们的研究发现昆虫微生物组并不是来源与直接使用的叶片,而是来源于土壤微生物组。上世纪几十年来有许多研究表明土壤和微生物群落可以影响地上部以植物为食的昆虫微生物组,但是大部分研究将这一现象归因为取食植物化学性质的变化。我们现在提出新的见解,认为之一现象是昆虫和土壤微生物群落直接的相互作用

    之前有研究表明昆虫可以选择性的从土壤汇总富集伯克氏菌属的细菌,如今我们的结果表明取食完整植株的毛虫的整个微生物组都受到了土壤影响,并且富集的大量特定的细菌、真菌门类。当我们使用离体叶片进行测定时却没有发现类似的现象。我们发现以完整植株为食的毛虫会大量富集EurotiomycetesActinobacteria属,这两个属之前研究表明与昆虫共生并且有助于抗生素的产生。与土壤接触的毛虫中可以获取大量常见的酵母菌,这些酵母菌在最近鉴定为昆虫的共生菌,同时在人类肠道也大量发现。这表明昆虫从土壤中获取的有益微生物种类要比目前已经认识的数量要多。然而我们分析发现不同的微生物与毛虫的生物量之间不总是正相关的,这表明了昆虫从土壤中得到的微生物不总是有益的。最近的研究表明昆虫的肠道微生物组是可变的,我们的结果在一定程度上解释的这个问题,毛虫微生物群落的变化可能反应了土壤微生物群落随时间和空间的变化,但是这些变化到底可以有多大影响,这种影响可以持续多长时间有待解决。值得注意的是,我们的研究结果还表明了以前生长在土壤中的植物和昆虫微生物之间的联系。土壤遗产对植物的影响最近十分火热,我们的研究首次发现土壤遗产可以影响地上昆虫微生物群落结构。然而有趣的是这些这些现象只能在取食完整植株的毛虫中发现。这一点很重要,因为这表明了土壤遗产不仅可以通过植物影响昆虫,而且可以通过土壤微生物直接和昆虫相互作用

    值得注意的是,在人工条件下我们通过植物测试昆虫微生物群落研究得到的微生物可能比自然条件下的少,以为自然条件往往昆虫微生物组受 雨水和自然风的影响。因此自然情况下昆虫肠道微生物组成可能在很多研究中不同。本研究使用的毛虫通常被发现在土壤中,因为其可以通过上下移动并改变宿主植物。因此这一昆虫可能与土壤之间的接触更加频繁。另外我们猜想土壤或者叶片微生物群落可能通过排泄物而改变。但是我们认为这不太可能,主要有两个原因,第一个就是被昆虫使用后的叶片和没有食用过的叶片微生物组成没有差异;第二,昆虫重量很小,与土壤重量相比微不足道。但是未来应该使用同位素标记昆虫微生物组,来进一步考察植物和昆虫微生物组之间的直接和间接联系,以及土壤遗产效应对微生物群落在植物和昆虫中的影响。

    其次我们在两个独立的试验中使用毛虫的大小差异,可能导致了毛虫微生物组的差异。在离体叶片实验中,毛虫被养到了L3阶段,直到无法采摘合适的叶片供毛虫食用。而在此时,在正常生长的植株上的毛虫仅仅生长到了L2阶段,然后继续生长直到毛虫达到L3阶段。尽管这是毛虫的生物量大于离体叶片喂养的毛虫,但是仅仅相差4.4mg。而正常生长的毛虫生物量可以达到200mg,所以这也不像会造成处理之间差异的主要原因。毛虫体积很小,因此不适合得到肠道,这也是我们为什么提取的的是整个毛虫相关的微生物组的原因。我们使用常用的消毒方法(消毒方法能去除DNA吗?)彻底清除毛虫皮肤角质,昆虫角质存在很多病原菌,但是我们毛虫相关微生物组中却没有检测到这些病原菌,表明了我们的消毒工作做得很彻底和有效。这也很有可能反应了昆虫肠道微生物组。

    我们的结论是毛虫和土壤微生物组是相互联系的,这一联系并不是由植物主导,因此土壤微生物在调节食物网群落的作用应该被重新评估,因为目前这一点常常被忽略。目前的研究结果需要注意的是,昆虫微生物组的结构和功能的研究应该在有土壤微生物群落的条件下进行。越来越多的证据表明昆虫微生物组可能对昆虫适应性有很大影响,我们猜测昆虫微生物组可能是由于前几代植株对土壤的遗留影响造成的。

    材料方法

    Methods

    试验田设计和采样

    Field design and soil sampling.

    每个试验田小区的植被(草皮)在4厘米深处被切断并移除,保证移除大部分草的根系。
    随后播种了快速和缓慢生长的、草原生态系统中常见的草种。每个地块播种有三种草种,三种种类,或三种草和三种种类的混合物。

    每个地块的总种子播种量为12450粒种子,每个小区总数量相等。有三种不同的不同类型和不同生长速度的草本,并且每个群落有四个重复的地块(总共72个样地)。

    测试植物

    Test plants

    蒲公英(Common dandelion)作为我们选择的模式植物,这是一种多年生分泌白色乳汁(橡胶草)的植物,并且具有广泛的地理分布(大部分的温带和亚热带)。一些研究使用蒲公英来解决各种生态问题。本实验中使用的蒲公英是通过组培得到的来自于同一个母植株。在发芽之前使用2.0%的次氯酸钠进行种子表明消毒,然后使用无菌水清洗干净。种子放在无菌玻璃珠上并在合适的条件下萌发(光照时间16h,白天温度21°,晚上温度16°)。让种植萌发一周后,我们移栽到盆栽中,每盆一株。植株生长在土壤之上,并不直接与土壤接触。盆栽随机摆放到温室中,在合适并可控的天气的条件下进行培养(空气湿度控制在50%)。每周浇三次无菌水,保持湿度。在培养到第三周和第四周时,每盆添加50%的霍格兰营养液60ml。植株培养到第五周的时候用来实验。

    昆虫植物实验

    Insect-plant assays

    小菜蛾卵(鳞翅目:夜蛾科)来自荷兰瓦赫宁根大学昆虫学系。这些幼虫最初是从大学附近的有机卷心菜地采集的。卷心菜蛾已被大量饲养并繁殖了几代。雌性虫产生的卵使用2%的次氯酸钠进行消毒,并使用无菌水进行冲洗,然后在无菌滤纸上干燥。这些卵随后被转移到了无菌培养皿中保存在光照培养箱中。孵化过程中人工喂养幼虫 (附表4),直到这些虫子进入二龄期。

    为了评估植物或者土壤对毛虫肠道微生物群落的影响,我们使用了两个独立的试验进行测试,第一个就是采集培养好的植物叶片喂养毛虫,第二个就是将毛虫关在含有生长植株的笼子中食用生长的植株。使用的毛虫均为我们无菌培养所得。对于喂养虫子的离体叶片,我们使用无菌镊子剪切每个植株最大的完全展开的叶片,放到无菌并湿润的棉花上,防止叶子失水萎蔫。每个培养皿中放一个叶片,五条毛虫。24小时后叶片移除,更换另外一片。我们一共做了五天,因为蒲公英可用的叶片有限,完成之后测定毛虫生物量并收集起来。使用完整的植株测试时将植株圈起来(300um的网子),并在一个植株上放五个毛虫,随着毛虫生长,我们发现在离体叶片上毛虫生长速度要快很多(这可能是离体的叶片没有防御体系)。我们知道在毛虫不同生长阶段肠道微生物群落是不同的,我们将其保存在植株上,使用一样的生长阶段和相似大小的毛虫进行试验。毛虫可以在完整的植株上正常生长14天,记录毛虫死亡数量,测定毛虫的生物量,最后将毛虫收集,在烘箱中烘干后称干重。

    土壤、植物、毛虫样品微生物群落分析

    Soil, plant, and caterpillar sampling for microbiome analysis

    我们从上文中设计的两个独立的研究中收集无菌毛虫和植物叶片。在离体毛虫使用叶片试验中,我们收集三个培养皿中三片叶片完全展开的叶片,同时完整植株试验中收集明显被虫子吃过的叶片。注意我们收集的叶片均有相同的毛虫培养时间。叶片保存在-80°等待使用。完整植株试验中我们进一步收集植物的根系和土壤。所有的毛虫和根系样品均采用在2%的次氯酸钠中浸泡的方法进行消毒(30秒)。随后将毛虫和根转移到新的15毫升离心管中,并装入10毫升磷酸缓冲液超声10分钟。为的是彻底去除表面的微生物。经过超声处理后我们清洗毛虫和根系三次,存储在-80°备用。采集根际土壤方法,提取根系抖动去除大块土壤,然后轻轻抖动附着在根系的土壤作为根际土壤同样放到-80°备用。

    土壤化学性质分析

    Soil chemical analysis

    对于土壤化学性质的测定,土壤样品首先在40°C下风干,通过2毫米筛子。将3克干土和30毫升氯化钙溶液混合,并在250转摇动2小时。然后3000转离心5分钟。将12.87毫升的滤液和130微升的硝酸溶液混合提取六种金属元素镁、磷、硫和锌)。上ICP测定。NO2+ NO3 and NH4使用QuAAtro Autoanalyzer测定。

    测序分析

    真菌测定ITS2区域,细菌测定V4区域。

    生物信息学分析

    Bioinformatic and statistical analysis.

    细菌数据使用实验室内部流程进行分析,使用的SILVA数据库和SINA分类器方法进行物种注释。PIPITS流程用于真菌群落的注释。真菌物种注释使用rdp方法,使用UNITE数据库。最后真菌OTU表格使用funguild(v1.1)数据库对注释好的OTU进行可能的表型解析。所有的单克隆或者来源于植物叶绿体,线粒体和原生动物等的序列被去除。最后的细菌群落结果中包含1000万条序列,平均质量超过28,长度超过100 bp,没有嵌合体;真菌群落中包含790万条序列。

    同一取样部位如果某个样本测得的该OTU数量超过其他样本三倍以上,则去除该样本。这一过滤导致我们从72个样本中去除了1-10个样本,具体数量取决于取样部位。此外,为了防止测序深度对分析结果产生影响,我们将每个样本的序列数量统计并作为一个变量纳入统计分析。在我们尝试过多种不同的标准化方法后,最终采用CSS标准化方法标准化。我们使用adonis检测不同样本的 Bray-Curtis距离矩阵差异。最后我们使用基于 Bray-Curtis距离矩阵的NMDS排序展示分组并可视化。对于OTU水平的分析,每个取样部位存在的OTU进行计算。一般来讲,如果OTU存在这个部位,则这个OTU至少存在这个部位的至少10%以上的样本中三元图是使用ggtren包绘制的,基于细菌的纲水平物种,真菌的目水平物种,我们使用广义线性模型比较了他们之间的相关性**。chao1值在分析之前进行了对数变换以满足正态性的要求。序列数量作为协变量。在模型汇总我们使用泊松分布,此外我们结合了膨胀泊松回归模型。线性模型结果使用卡方检验和Tukey post-hoc test检验。为了分析不同土壤细菌真菌群落对毛虫生物量的影响,我们使用的LME模型。因为每个部分取样的数据符合正态分布。计算结果使用benjamini&hochenberg矫正。检测全部数据的正态性,如果有必要则进行转化。建立网络,使用矫正p值后的斯皮尔曼相关计算全部取样部位超过10%样品中出现的OTU之间的共现性关系**。所有统计分析均在R3.4中进行。

    猜你喜欢

    10000+:菌群分析 宝宝与猫狗 梅毒狂想曲 提DNA发Nature Cell专刊 肠道指挥大脑

    系列教程:微生物组入门 Biostar 微生物组  宏基因组

    专业技能:学术图表 高分文章 生信宝典 不可或缺的人

    一文读懂:宏基因组 寄生虫益处 进化树

    必备技能:提问 搜索  Endnote

    文献阅读 热心肠 SemanticScholar Geenmedical

    扩增子分析:图表解读 分析流程 统计绘图

    16S功能预测   PICRUSt  FAPROTAX  Bugbase Tax4Fun

    在线工具:16S预测培养基 生信绘图

    科研经验:云笔记  云协作 公众号

    编程模板: Shell  R Perl

    生物科普:  肠道细菌 人体上的生命 生命大跃进  细胞暗战 人体奥秘  

    写在后面

    为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外5000+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。PI请明示身份,另有海内外微生物相关PI群供大佬合作交流。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍未解决群内讨论,问题不私聊,帮助同行。

    学习16S扩增子、宏基因组科研思路和分析实战,关注“宏基因组”

    点击阅读原文,跳转最新文章目录阅读

    展开全文
  • 各种昆虫矢量图 包括知了,椿橡,瓢虫,甲虫,蝴蝶以及一些常见昆虫
  • 邮票上的昆虫世界尔雅答案

    千次阅读 2020-06-29 12:51:47
    超星尔雅邮票上的昆虫世界 李芳 1.1 1 【单选题】一枚邮票至少具备三大要素即___ B ____ A、图型、面值、铭记 B、图案、面值、铭记 C、图案、面值、编码 D、图案、齿孔、铭记 2 【单选题】所谓纯昆虫邮票,...
  • 昆虫武器狂想曲

    2018-11-19 17:27:45
    玩过《瘟疫公司》游戏的人都知道——虫子,是不可能被真正战胜的!因为昆虫之间的传染力很高,一旦昆虫被感染,病原体的传染力和突变性就会得到极大的增强,加速瘟疫扩展的速度,几乎...
  • 什么是昆虫

    2017-09-01 13:11:00
    根据新近(2017年)分类学系统,昆虫属于 动物界 (Animalia),节肢动物门(rthropoda),为六足总纲或六足亚门(Hexapoda),与节肢动物门其它常见类群如蜘蛛、虾、蟹、蜈蚣、马陆等动物(见图1)相区别特征是: ...
  • Abbreviation Full name PCGs Protein-codings genes atp6 ATP synthase F0 subunit 6 atp8 ATP synthase F0 subunit 8 ... cytochrome c oxidase sub...
  • 常见电源基础电路

    2021-12-25 00:19:54
    由于昆虫夜间有趋光性,因此如在这电网后面放一个3 瓦荧光灯或小型黑光灯,就可以诱杀蚊虫和有害昆虫。 例 3 实用稳压电源 图 7 是一个实用的稳压电源。输出电压 3 ~ 9 伏可调,输出电流最大 100 毫安。这个电路...
  • 昆虫记思维导图模板分享

    千次阅读 2019-09-12 02:51:35
    就像是让-亨利·卡西米尔·法布尔一样,对昆虫的痴迷研究,将昆虫的特征习性和婚习都完整的记录下来,但是要对昆虫记的内容,创作背景等制作思维导图是要怎样操作呢?下面小编和大家分享一个昆虫记思维导图模板,...
  • 常见昆虫有蚊、臭虫、蚤、螨、飞蠓(小黑虫)、黄蜂等分类 E.内服氯苯那敏或西替利嗪、泼尼松(15-20mg/日,渐减量) 正确 正确答案:左边查询 学生答案:D 33.肺炎的用药注意事项不符的是()。 A.肺炎的抗菌药物...
  • 这是因为蚊子等吸血昆虫的毒素未必都通过叮咬注入。 一些虫体表面的毒毛也可能刺入皮肤,疼痛度降低却同样释放了毒素。 还有可能,是被叮咬的人自己把敌人一身毒素葬送于自身。 一抹蚊子血宣示着人类的胜利,而破碎...
  • 常见种类 常见的有白腰杓鹬和矶鹬。白腰杓鹬生活在海岸、近海岸沼泽、池塘、河口三角洲、水田等处,20~30只成群涉水在淤泥中寻找食物。当潮水上涨时,常在海岸沙滩上整理背上羽毛。潮水退落后,它们到曾被潮水淹没...
  • 概率论几种常见分布

    千次阅读 2020-02-27 21:03:31
    概率论几种常见分布正态分布概要分析泊松分布适用范围伽玛分布对数正态分布 本文也算是一种对大学知识的回顾吧!学习数据分析看到几种统计方法,没办法,过来总计一下吧,反正感觉我以后用的次数还多着哩。 正态分布...
  • 概说昆虫的进化史

    千次阅读 2011-12-13 20:11:16
    编辑词条分享 新知社 ...昆虫是从古生代(地球的存在至今分为无生代、始生代、原生代、古生代、中生代和新生代6个世代)的泥盆纪开始出现的,距今已有3.5亿年,在地球上的出现比鸟类还要早近

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,532
精华内容 612
关键字:

常见昆虫