Differences between revisions 56 and 154 (spanning 98 versions)
Revision 56 as of 2016-01-08 13:15:28
Size: 13466
Editor: Hjerpe
Comment:
Revision 154 as of 2022-01-11 12:06:54
Size: 20252
Editor: Valentina
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from public/Idea_animinfo_manual
Line 3: Line 4:
The !AnimInfo is a module in the Interbull Centre Data Exchange Area(IDEA) website which allows member organizations to upload additional information connected to existing animals in the pedigree module. Examples on additional information are coat color, crossbred information, herdbook number, eartag number, genetic defects etc.

The purpose of the !AnimInfo module is to collect reported information from member organizations and to use the module as an exchange area for information, not to verify or authorize information. It is possible to make different security levels for the information which means that for some !AnimInfo information only the authorized organization may view and upload information, for other information it is possible for some or all organizations to view and/or upload.

The type of additional information that will be registered in IDEA Animinfo is decided by member organizations in collaboration with Interbull Centre. Interbull Centre has to update IDEA with the type of additional information (coat color, herdbook number etc) to upload before member organizations can upload the information in the IDEA Animinfo module. Member organizations are encourage to send requests on additional iniformation to upload in IDEA to Interbull Centre. The current type of information available for registration in IDEA/Animinfo can be found by clicking on the ''!AnimInfo -> Types'' menu item in the bar menu in IDEA (see figure 1).

The !AnimInfo file format is an XML file format. For basic information on XML, see https://en.wikipedia.org/wiki/XML or [[public/XMLdigest]]. XML is a flexible system for complex data files and was choosen for !AnimInfo in order to ensure easy future development and extension of the module's file format and capabilities, as well as a fitting format for the current data model.
The !AnimInfo is a module in the Interbull Centre Data Exchange Area(IDEA) website which allows member organizations to upload additional information connected to existing animals in the pedigree module. Examples on additional information are coat color, crossbreed information, herdbook number, eartag number, genetic defects etc.

The purpose of the !AnimInfo module is to collect reported information from member organizations and to use the module as an exchange area for information, not to verify or authorize information. The system allows different security levels for the information which means that for some !AnimInfo information only the authorized organization may view and upload, for other information it is possible for some or all organizations to view and/or upload.

The type of additional information that will be registered in IDEA Animinfo is decided by member organizations in collaboration with Interbull Centre. Interbull Centre will have to register the type of additional information (coat color, herdbook number, etc) in IDEA before member organizations can be able to upload the information via the IDEA Animinfo module. Therefore, member organizations are encouraged to send requests on new additional information types to Interbull Centre.

The !AnimInfo file format is an XML file format. For basic information on XML, see https://en.wikipedia.org/wiki/XML or [[https://wiki.interbull.org/public/XMLdigest?action=print|XMLdigest]]. XML is a flexible system for complex data files and was choosen for !AnimInfo in order to ensure easy future development and extension of the module's file format and capabilities, as well as a fitting format for the current data model.
Line 15: Line 16:
== AnimInfo usage ==
The workflow to upload additional information for animals existing in the pedigree modul:

 . Create a XML file with the relevant information according to ..."link"

 . Run a checking program to check the correctness of the file ..... "link"".

 . Upload the file to IDEA ... link....

 . After uploading , member organizations will be able to query the information and get the information in a data file.

If more than one organization uploads the same type of data for the same animal all the uploaded information will be shown when querying that animal, with indications from which organization the different pieces of data come from.

=== Preparation ===
An overview of current available type of information to upload in IDEA/Animinfo can be found in the ''!AnimInfo -> Types'' page in IDEA (Figure 1)

{{attachment:animinfo_types_menu.png}} <<BR>>''Figure 1''

Each type of information (Types) have different attributes and value where:

 * '''AnimInfo Types''' are written in uppercase letters followed by a short description in italic.
 * '''AnimInfo Attributes''' are written below each TYPE in lowercase. The attributes holds the actual information of the relevant AnimInfo type. An attribute can only be specified once for each AnimInfo type, organization and animal.
 * '''AnimInfo Values''' sets the value of each attribute for each animal. The value must conform to the specification of the attribute, which can be different from attribute to attribute; ranging from a free-form text string, to a set of predefined values, to a defined pattern the value must match.

********************* CARL CHANGE **********************

Here, in Figure 2, one can see the specification of the %RH-genes !AnimInfo data structure, where the type is specified as RH_GENES, and it has a single attribute, percent. The percent has the value type ''percent with not available'', which is defined in the list of value types as ''A numerical, integer value between 0 and 100, with the string N/A if not available''. This means that one can upload %RH-genes percent values (which is either a percent value or N/A for missing values) for every animal, using the !AnimInfo file format.

{{attachment:animinfo_overview.png}} <<BR>>''Figure 2''

''****************************************************************************************************************''
== Quick workflow ==
The workflow to upload additional information for animals existing in the pedigree module:

 . 1) Create a XML file with the relevant information

 . 2) Run a checking program to check the correctness of the file

 . 3) Upload the file to IDEA

After uploading , member organizations will be able to query an animal and get the additional information on the screen or in a datafile in csv or XML fileformat as an attachment to an email.

== Additional information available for uploading ==
An overview of current available type of information to upload in IDEA/Animinfo can be found in the ''!AnimInfo -> Types'' page in IDEA (figure 1)

{{attachment:figure_1_border.png}} <<BR>>''Figure 1''

Each type of information (Types) have different attributes and values where:

 * '''!AnimInfo Types''' are written in uppercase letters followed by a short description in italic.
 * '''!AnimInfo Attributes''' are written below each TYPE in lowercase. The attributes holds the actual information of the relevant !AnimInfo type. An attribute can only be specified once for each !AnimInfo type, organization and animal.
 * '''!AnimInfo Values''' sets the value of each attribute for each animal. The value must conform to the specification of the attribute, which can be different from attribute to attribute; ranging from a free-form text string, to a set of predefined values, to a defined pattern the value must match.

Figure 2 shows the specification of the Crossbreed !AnimInfo data structure where:

 . type = CROSSBREED
 . attribute = percent
 . value = ''crossbreedpercents'', which is defined under the heading "Value type definitions" as ''A series of crossbreed percent values with the format "BREED:PERCENT;[..]"''. This means that one can upload CROSSBREED percent values for multiple breeds for every animal, using the !AnimInfo file format.

{{attachment:figure_2_border.png}} <<BR>>''Figure 2''

== Detailed workflow ==
Line 55: Line 55:
'''Example 1:''' Take a file which will upload %RH-genes information about two animals. Then the correctly formatted !AnimInfo XML data file would look like this:

{{{#!highlight xml

<interbull type="animinfo" version="1.0">
  <animals>
    <a id="HOLUSAM000000000X11">
      <CROSSBREED breed="RH" percent="50" />
    </a>
    <a id="HOLUSAM000000000X1x">
      <CROSSBREED breed="RH;SIM;BSW" percent="20;20;10" />
    </a>
    <a id="HOLDEUF000000000Y22">
      <CROSSBREED breed="RH" percent="N/A" />
    </a>
  </animals>
</interbull>
}}}
Examples of !AnimInfo files can be found in section EXAMPLES.
Line 74: Line 58:
The correctness of the Animinfo file is checked by a Python 2 checking program called CheckAniminfo.py. The program with instructions are available from IDEA/Software https://ideatest.hgen.slu.se/idea_animinfo/software/index. When no errors are found, a !AnimInfo zip file is created ready to upload through the IDEA web interface. The !AnimInfo zip file is called ''IB-ANIMINFO-{org code}-{YEAR-MONTH-DAY}T{HOUR-MINUTE-SECOND}.zip.'' The correctness of the !AnimInfo file is checked by a Python2 checking program called !CheckAniminfo.py. The program with instructions are available from IDEA/Software https://idea.interbull.org/software/index. When no errors are found in the !Animininfo file, an !AnimInfo zip file is created ready to be uploaded through the IDEA web interface. The !AnimInfo zip file is called ''IB-ANIMINFO-{org code}-{YEAR-MONTH-DAY}T{HOUR-MINUTE-SECOND}.zip.''
Line 77: Line 61:
The Animinfo zip file can be is uploaded by clicking on the ''!AnimInfo -> Upload'' menu item (see figure 3) and then using the appropriate upload buttons.

{{attachment:animinfo_upload_menu.png}} <<BR>>''Figure 3''

After upload the file will be checked by the server-side !CheckAnimInfo script. If no errors are found, the data will be passed onto the import functions in IDEA. After the data has been processed an email with feedback information will be sent to th. The email contains general statistics about the upload; how many !AnimInfo types and attributes processed, discarded and so on. Also included is an XML !AnimInfo feedback file with more detailed information about the upload. Here is the structure of the feedback XML file:
The Animinfo zip file can be uploaded by clicking on the ''!AnimInfo -> Upload'' menu item (see figure 3) and then using the appropriate upload buttons.

{{attachment:figure_3_border.png}} <<BR>>''Figure 3''

After upload, the file will be checked by the server-side !CheckAnimInfo script. If no errors are found, the data will be passed onto the import functions in IDEA. After the data has been processed an email with feedback information will be sent to the uploading organization. The email contains general statistics about the upload; how many !AnimInfo types and attributes processed, discarded and so on. Also included is an XML !AnimInfo feedback file with more detailed information about the upload. The structure of the feedback XML file is:
Line 84: Line 68:
  * '''processed''': Containing element for processed (ie. imported/updated) data. The attribute '''type''' describes what kind of information that was processed, usually "animal information".   * '''processed''': Containing element for processed (i.e. imported/updated) data. The attribute '''type''' describes what kind of information that was processed, usually "animal information".
Line 91: Line 75:
'''Example''':

{{{#!highlight xml

<interbull type="animinfo_upload_feedback" dscode="ANIMINFO-VIT-20151222T104450">
  <processed type="animal information">
    <action type="updated">
      <item aid="HOLDEUM000000050208" type="CROSSBREED" attribute="RH"/>
      <item aid="HOLDEUM000000050210" type="CROSSBREED" attribute="SIM"/>
    </action>
  </processed>
  <discarded type="animal information">
    <action type="animal info discarded due to existing identical data">
      <item aid="HOLDEUM000000050208" type="CROSSBREED" attribute="RH"/>
      <item aid="HOLDEUM000000050210" type="CROSSBREED" attribute="JER"/>
    </action>
    <action type="infotype discarded due to animal missing">
      <item aid="HOLDEUM99930030030X" type="CROSSBREED"/>
    </action>
  </discarded>
</interbull>
}}}
The file is sent in a compact XML format without unnecessary whitespace. All decent XML-capable editors and tools can ''pretty print'' XML, which will structure the data in a good manner for easy reading. One good XML editor, [[http://xml-copy-editor.sourceforge.net/|XML Copy Editor]] (for Windows and Linux), can pretty print XML by pressing F11 or selecting the Pretty print option in the Tools menu. From the command line in Linux the xmllint command can be used to pretty print:

{{{
xmllint --format <filename.xml>
}}}
Other tools, including many text editors, have similar functionality. For programmatical, easy extraction of information out of an XML document like the !AnimInfo feedback file, a good starting point is our short [[https://wiki.interbull.org/public/XMLdigest?action=print|XML tutorial]].

=== UPLOAD STATUS ===
IDEA will soon remove the ability to receive feedback through email, and instead switch to a dedicated page where you (and other members of your organization) can view all feedback relevant to your organization. This will be in the form of a table, where you can look back at current and past feedbacks, download the relevant files and so on. There will also be an RSS feed available, so you can set up notifications of new feedback as it becomes available, in a way similar to previous email feedback.

Communications from IDEA regarding the status (success or failure) of all type of uploads performed by your organization (pedigree, EBV, GEBV, performance, animinfo) are now listed in here and divided between “Successful” or “Failed” uploads. The information displayed are from a RSS feed system. Here the steps you shall do in order to display such feeds correctly:

 * Go to Upload Status
 * Select “Successful” (or Failed)
 * Click on “Create subscription feed link”
 * Click on “Copy subscription feed link”

If you think the link has been leaked/spread (remember that the link is supposed to be personal), you can remove it at any time by clicking on “Remove subscription feed link”. If that happens you shall create and copy a new subscription feed link.

With this new feedback system, information on all type of uploads will be available to each and every members of the same organization and not only to the person making the upload. Moving away from an email based feedback methodology and to an RSS based one, will make the feedback more stable and reliable, without risk of spam or mail server problems. Also, it makes it easier to programmatically handle feedback from the IDEA system.

You should copy your subscription feed link inside your email provider. Here is how you do it if you are using Outlook:

 * Right click on File
 * Right click on “Account Settings” from the Account Settings drop down menu
 * In the new window that opens click on “RSS feeds”
 * Click on “New” and paste the RSS feed link you have copied from IDEA.

Using Thunderbird:

 * Right click on the News Feed folder and choose Subscription (you can also add a sub-folder and add the subscription there)
 * Add your Subscription link into the Feed URL text box in the Subscription popup box and click Add

For the time being, IDEA emails and RSS feeds will co-exists to give time to all IDEA users to get acquainted with the RSS feed. From 1st January 2023 IDEA will provide solely feedback based on the RSS feeds.
Line 114: Line 111:
To query !AnimInfo click on the ''!AnimInfo -> Query'' menu item (see figure 4), and paste in any text containing animal international IDs.

{{attachment:animinfo_query_menu.png}} <<BR>>''Figure 4''

If no restrictions to the information uploaded to iDEA has been set, the informatione will be presented in a table.The columns in the table are: AID, !AnimInfo Type, !AnimInfo Attribute, !AnimInfo Value and Submitting Organization. The information can be filtered by using filter list boxes. Additionally, when doing a pedigree query there will be an indication on the animal presentation page with a link to the additional information associated with the animal.
The !AnimInfo data is accessible from 1) AnimInfo/Query/Report and from 2) Pedigree/Query.

From the !AnimInfo Query/Report it is possible to get the information in !AnimInfo in datafiles.

==== 1) AnimInfo/Query/Report ====
 . To query !AnimInfo for one or more animals, click on the !AnimInfo → Query/Report menu item (see figure 4).

{{attachment:figure_4_border.png}} <<BR>>''Figure 4''

Paste in any text containing animal international ID's. Here there are two options 1) get the output on the screen 2) get the result as attachment in XML or CSV fileformat in an email. If the result is preferred as an attachment, click in the box beside “Send query result in a file by email” and choose the fileformat (figure 5).

{{attachment:figure_5_border.png}} <<BR>>''Figure 5''

In the AnimInfo query/Report menu it is also possible to get a report per Animal Information Type / Breed(s). The available types /breeds will be shown in the scroll down menu. Here it is also possible to get the result on the screen or as an attachment in an email (figure 6).

{{attachment:figure_6_border.png}} <<BR>>''Figure 6''

==== 2) Pedigree/Query ====
 . Query the animalid of interest and click on the link after "This animal has additional Animal Information:" (see figure 7)

{{attachment:figure_7_border.png}} <<BR>>''Figure 7''

==== Result from Query ====
The result from the query will be presented in a table. The columns in the table are: AID, !AnimInfo Type, !AnimInfo Attribute, !AnimInfo Value and Submitting Organization. The information can be filtered by using filter list boxes. Additionally, when doing a pedigree query there will be an indication on the animal presentation page with a link to the additional information associated with the animal (figure 8).

{{attachment:figure_8_border.png}} <<BR>>''Figure 8''
Line 121: Line 139:
{{attachment:animinfo_permissions_menu.png}} <<BR>>''Figure 5''

!AnimInfo has a quite elaborate permissions system which can be used to allow or disallow uploading and viewing of !AnimInfo data depending on !AnimInfo type, Organization and AID. To see the current permissions one can click on the ''!AnimInfo -> Permissions'' menu item (see figure 5). There is presented a dynamic data table with an overview of all permissions pertaining to that organization's !AnimInfo data. The columns are Organization, !AnimInfo Type and Permission. Permissions can be of four types: (r) means read access to all of the data, (rw) means read and write access, ie. one can both read all and upload own data, (d) means denied access, ie. can't read the value of the !AnimInfo data, (x) means the permission is inherited from the default permissions for that !AnimInfo type. When the Organization column reads "--DEFAULT" the row indicates the default permission for that !AnimInfo type, as set by the Interbull Centre. Currently, only default permissions are allowed. In the future organizations will be able to upload !AnimInfo files with permission rules included, so they can have more control over who can view and upload what.

*****************************

Here you will be shown a list of the allowed !AnimInfo types, attributes and values:

 * '''!AnimInfo Types''' groups related !AnimInfo attributes (see below) together into a coherent logical unit in the !AnimInfo file format. They are indicated by UPPERCASE names and only alphanumeric characters are allowed, plus underscore(_) and hyphen(-).
 * '''!AnimInfo Attributes''' holds the actual information of the relevant !AnimInfo type in a list of name/value-pairs, for example ''genotyped="Y"''. The first part, before the equal(=) sign is the name of the attribute, and is in lowercase, and the part after the equal sign and within quotation marks (") is the value of that attribute (see below). As with the types the attribute name can only contain alphanumeric characters, underscore and hyphen. An !AnimInfo type can contain from one to several related attributes — some of which are required, others are optional. An attribute can only be specified once for each !AnimInfo type, organization and animal.
 * '''!AnimInfo Values''' sets the value of each attribute for each animal. The value must conform to the specification of the attribute, which can be different from attribute to attribute; ranging from a free-form text string, to a set of predefined values, to a defined pattern the value must match.

'''Example 2:''' A more complex example would like to upload %RH-genes and Genolist data (which specifies whether the animal has been genotyped or not, and if it this animal's genotype is public or not) for four animals:
!AnimInfo has an elaborate permissions system which can be used to allow or disallow uploading and viewing of !AnimInfo information depending on !AnimInfo type, Organization and AID. The current permission settings can be found by chose ''!AnimInfo -> Permissions'' in IDEA (see figure 9).

{{attachment:figure_9_border.png}} <<BR>>''Figure 9''

The permissions are presented in a table with an overview of all permissions pertaining to that organization's !AnimInfo data. The columns are Organization, !AnimInfo Type and Permission. Organizations have full access to all animal information types for the animals where they are the authorized organization, ie. they can always upload information to animals they own, and also read all uploaded information to these animals. For other organizations' animals the permission system applies.

Permissions can be of five types:

 . (r) – read access to all of the data

 . (rw) – read and write access, ie. one can both read all uploaded data from all organizations and upload own data

 . (w) – write access to upload data, and read access for that data, but no read access to other organizations' uploaded data

 . (d) – denied access, ie. can't read the value of the !AnimInfo data

 . (x) – the permission is inherited from the default permissions for that !AnimInfo type

When the Organization column reads "--DEFAULT" the row indicates the default permission for that !AnimInfo type, as set by the Interbull Centre. Currently, only default permissions are allowed, and permissions set by the Interbull Centre. In the future organizations will be able to upload !AnimInfo files with permission rules included, to further extend and modify the default permissions.

== Examples ==
=== Crossbreed %RH genes example ===
Here is an example of an %RH genes / Crossbreed XML file that sets the CROSSBREED !AnimInfo type for three animals (''HOLUSAM000000000X11, HOLDEUF000000000Y22 and HOLUSAM000000000X45''):
Line 140: Line 168:
      <RH_GENES percent="50" />
      <GENOLIST genotyped="Y" public="Y" />
      <CROSSBREED percent="RHOL:50;" />
Line 144: Line 171:
      <RH_GENES percent="N/A" />
      <GENOLIST genotyped="Y" public="N" />
      <CROSSBREED percent="RHOL:25;SIM:25;" />
Line 148: Line 174:
      <RH_GENES percent="75" />
      <GENOLIST genotyped="N" />
    </a>
    <a id="HOLDEUF000000000Y67">
      <GENOLIST genotyped="Y" public="Y" />
      <RH_GENES percent="25" />
    </a>
  </animals>
</interbull>
}}}
      <CROSSBREED percent="RHOL:75;" />
    </a>
  </animals>
</interbull>
}}}
=== Genetic trait ===
Below is an example of an XML file with information about genetic traits where:

 * a_id = international identification number
 * GENETIC_TRAIT= type
 * whff_xx= attribute
 * "BLF" etc = value

The code'' whff ''in the attribute'' ''indicates that the organization creating the file has used World Holstein Friesian (WHFF) business rules (http://www.whff.info/documentation/genetictraits.php#go1) '', xx''(in the attibute)''=''the gene abbreviation for the trait and'' the value ''shows the gene abbreviation and expression code(i.g BL=gene abbreviation and C= expression code ). Allowed values to use can be found on https://idea.interbull.org/pedigree/animinfotypes'' ''

{{{#!highlight xml

<interbull type="animinfo" version="1.0">
  <animals>
     <a id="HOLNLDF000000123456">
        <GENETIC_TRAIT whff_bl="BLF" />
     </a>
      <a id="HOLNLDM000000-1234">
        <GENETIC_TRAIT whff_mf="MFC" />
     </a>
      <a id="HOLNLDF000000478102">
       <GENETIC_TRAIT whff_po="POS" />
     </a>
     <a id="HOLCANM000000311569">
       <GENETIC_TRAIT whff_bl="BLF" whff_mf="MFC" />
     <a/>
   </animals>
</interbull>
}}}
=== Genotyped animals ===
This service has been developed for beef organizations. The information gives information on if an animal has been genotyped or not, if the genotypes is sharable and the tissue used for genotyping. The actual genotypes are not reported. The code for the snp chip used for genotyping will be added as soon as standardized codes have been agreed on. Allowed values for each type of information can be found on https://idea.interbull.org/pedigree/animinfotypes.

Below is an exampel of an XML file with information about genotyped animals where:

 * a_id = international identification number
 * GENO_BEEF= code for type of information being reported
 * pop = population code
 * genotyped = information on if the animal has been genotyped or not
 * share = information on if the genotypes is sharable or not
 * tissue= information on which tissue has been used for genotyping

{{{#!highlight xml

<interbull type="animinfo" version="1.0">
  <animals>
    <a id="LIMIRLM12314567890">
      <GENO_BEEF pop="IRL" genotyped="Y" share="Y" tissue="E" />
    </a>
    <a id="LIMIRLM1234567891">
      <GENO_BEEF pop="IRL" genotyped="Y" share="N" tissue="N" />
    </a>
    <a id="LIMIRLM1234567892">
      <GENO_BEEF pop="IRL" genotyped="Y" share="N" tissue="H" />
    </a>
    <a id="LIMIRLM1234567893">
      <GENO_BEEF pop="IRL" genotyped="Y" share="Y" tissue="M" />
    </a>
    <a id="LIMIRLM1234567894">
      <GENO_BEEF pop="IRL" genotyped="Y" share="Y" tissue="U" />
    </a>
    <a id="LIMIRLM1234567895">
      <GENO_BEEF pop="IRL" genotyped="Y" share="Y" tissue="S" />
    </a>
    <a id="LIMIRLM1234567896">
      <GENO_BEEF pop="IRL" genotyped="Y" share="Y" tissue="B" />
    </a>
  </animals>
</interbull>
}}}
=== InterGenomics-Holstein publishable young bulls ===
This Animinfo type has been developed for !InterGenomics-Holstein Contributors. !InterGenomics-Holstein Contributors should use the "IGHOL_YOUNG_BULL" type to provide information on their genotyped young bulls in A.I. evaluated in the !InterGenomcis-Holstein Service, specifying for which of them !InterGenomics-Holstein Organisations have to publish gEBVs. For each genotyped young bull in A.I. identified as publishable, the Contributor should also specify in which country or countries its gEBVs have to be published.

Below is an example of an XML file with information about genotyped young bulls in A.I. evaluated in the !InterGenomics-Holstein Service where:

 * a_id = international identification number
 * IGHOL_YOUNG_BULL = code for type of information being reported
 * publish = if the genotyped young bull in A.I. has to be published in at least one !InterGenomics-Holstein country
 * countries = list of !InterGenomics-Holstein countries (3 letter country code delimited by semicolon) where the gEBVs of the young bull in A.I. have to be published (i.e. IRL;ISR;KOR;SVN)

{{{#!highlight xml

<interbull type="animinfo" version="1.0">
  <animals>
    <a id="HOLITAM123456789000">
      <IGHOL_YOUNG_BULL publish="N" />
    </a>
    <a id="HOLITAM000123456789">
      <IGHOL_YOUNG_BULL publish="Y" countries="KOR;SVN" />
    </a>
  </animals>
</interbull>
}}}
=== Combine types ===
A more complex example shows how to combine CROSSBREED information and GENO_BEEF information in one file.

{{{#!highlight xml

<interbull type="animinfo" version="1.0">
  <animals>
    <a id="CHAIRLF00000GW12345">
      <GENO_BEEF pop="IRL" genotyped="Y" share="Y" tissue="E" />
      <CROSSBREED percent="LIM:25;CHA:50;"/>
    </a>
    <a id="CHAIRLM231139123456">
      <GENO_BEEF pop="IRL" genotyped="Y" share="N" tissue="H" />
      <CROSSBREED percent="LIM:25;CHA:75;" />
    </a>
  </animals>
</interbull>
}}}

IDEA AnimInfo User Manual

Introduction

The AnimInfo is a module in the Interbull Centre Data Exchange Area(IDEA) website which allows member organizations to upload additional information connected to existing animals in the pedigree module. Examples on additional information are coat color, crossbreed information, herdbook number, eartag number, genetic defects etc.

The purpose of the AnimInfo module is to collect reported information from member organizations and to use the module as an exchange area for information, not to verify or authorize information. The system allows different security levels for the information which means that for some AnimInfo information only the authorized organization may view and upload, for other information it is possible for some or all organizations to view and/or upload.

The type of additional information that will be registered in IDEA Animinfo is decided by member organizations in collaboration with Interbull Centre. Interbull Centre will have to register the type of additional information (coat color, herdbook number, etc) in IDEA before member organizations can be able to upload the information via the IDEA Animinfo module. Therefore, member organizations are encouraged to send requests on new additional information types to Interbull Centre.

The AnimInfo file format is an XML file format. For basic information on XML, see https://en.wikipedia.org/wiki/XML or XMLdigest. XML is a flexible system for complex data files and was choosen for AnimInfo in order to ensure easy future development and extension of the module's file format and capabilities, as well as a fitting format for the current data model.

The following is a description on how to, as an end-user, prepare and upload additional animal information to IDEA.

Quick workflow

The workflow to upload additional information for animals existing in the pedigree module:

  • 1) Create a XML file with the relevant information
  • 2) Run a checking program to check the correctness of the file
  • 3) Upload the file to IDEA

After uploading , member organizations will be able to query an animal and get the additional information on the screen or in a datafile in csv or XML fileformat as an attachment to an email.

Additional information available for uploading

An overview of current available type of information to upload in IDEA/Animinfo can be found in the AnimInfo -> Types page in IDEA (figure 1)

figure_1_border.png
Figure 1

Each type of information (Types) have different attributes and values where:

  • AnimInfo Types are written in uppercase letters followed by a short description in italic.

  • AnimInfo Attributes are written below each TYPE in lowercase. The attributes holds the actual information of the relevant AnimInfo type. An attribute can only be specified once for each AnimInfo type, organization and animal.

  • AnimInfo Values sets the value of each attribute for each animal. The value must conform to the specification of the attribute, which can be different from attribute to attribute; ranging from a free-form text string, to a set of predefined values, to a defined pattern the value must match.

Figure 2 shows the specification of the Crossbreed AnimInfo data structure where:

  • type = CROSSBREED
  • attribute = percent
  • value = crossbreedpercents, which is defined under the heading "Value type definitions" as A series of crossbreed percent values with the format "BREED:PERCENT;[..]". This means that one can upload CROSSBREED percent values for multiple breeds for every animal, using the AnimInfo file format.

figure_2_border.png
Figure 2

Detailed workflow

Create an AnimInfo file

The structure of the AnimInfo XML file format is as following:

  • interbull: The root element of the Interbull XML file formats. It requires the XML attributes type and version, where the values should be animinfo and 1.0 respectively.

    • animals: The animals element defines the section which lists all animals and their AnimInfo data.

      • a: the animals section contains several a-elements which each represents a single animal. Every a-element should have an id-attribute which is the animal's international id (AID).

        • ANIMINFO TYPE: Every animal specified by the a-element may have one or more unique AnimInfo types specified, with each's respective attributes defined.

Examples of AnimInfo files can be found in section EXAMPLES.

Run Checking program

The correctness of the AnimInfo file is checked by a Python2 checking program called CheckAniminfo.py. The program with instructions are available from IDEA/Software https://idea.interbull.org/software/index. When no errors are found in the !Animininfo file, an AnimInfo zip file is created ready to be uploaded through the IDEA web interface. The AnimInfo zip file is called IB-ANIMINFO-{org code}-{YEAR-MONTH-DAY}T{HOUR-MINUTE-SECOND}.zip.

AnimInfo Upload

The Animinfo zip file can be uploaded by clicking on the AnimInfo -> Upload menu item (see figure 3) and then using the appropriate upload buttons.

figure_3_border.png
Figure 3

After upload, the file will be checked by the server-side CheckAnimInfo script. If no errors are found, the data will be passed onto the import functions in IDEA. After the data has been processed an email with feedback information will be sent to the uploading organization. The email contains general statistics about the upload; how many AnimInfo types and attributes processed, discarded and so on. Also included is an XML AnimInfo feedback file with more detailed information about the upload. The structure of the feedback XML file is:

  • interbull: Root element with type="animinfo_upload_feedback" and dscode equal to the data set code for the upload (similar to the file name, minus the initial IB- and the file ending).

    • processed: Containing element for processed (i.e. imported/updated) data. The attribute type describes what kind of information that was processed, usually "animal information".

      • action: Containing element for a certain type of processed data according to the action taken. The type attribute determines the type, usually "new" or "updated" for AnimInfo.

        • item: Describes a single item that was processed, and its attributes, which may include: aid for an animal international id, type for an AnimInfo type, attribute for an AnimInfo attribute.

    • discarded: Containing element for discarded data. The attribute type describes what kind of information that was processed, usually "animal information".

      • action: Containing element for a certain type of discarded data according to the action taken. The type attribute describes the reason for discarding, for example "infotype discarded due to animal missing".

        • item: Describes a single item that was discarded, and its attributes, which may include: aid for an animal international id, type for an AnimInfo type, attribute for an AnimInfo attribute.

The file is sent in a compact XML format without unnecessary whitespace. All decent XML-capable editors and tools can pretty print XML, which will structure the data in a good manner for easy reading. One good XML editor, XML Copy Editor (for Windows and Linux), can pretty print XML by pressing F11 or selecting the Pretty print option in the Tools menu. From the command line in Linux the xmllint command can be used to pretty print:

xmllint --format <filename.xml>

Other tools, including many text editors, have similar functionality. For programmatical, easy extraction of information out of an XML document like the AnimInfo feedback file, a good starting point is our short XML tutorial.

UPLOAD STATUS

IDEA will soon remove the ability to receive feedback through email, and instead switch to a dedicated page where you (and other members of your organization) can view all feedback relevant to your organization. This will be in the form of a table, where you can look back at current and past feedbacks, download the relevant files and so on. There will also be an RSS feed available, so you can set up notifications of new feedback as it becomes available, in a way similar to previous email feedback.

Communications from IDEA regarding the status (success or failure) of all type of uploads performed by your organization (pedigree, EBV, GEBV, performance, animinfo) are now listed in here and divided between “Successful” or “Failed” uploads. The information displayed are from a RSS feed system. Here the steps you shall do in order to display such feeds correctly:

  • Go to Upload Status
  • Select “Successful” (or Failed)
  • Click on “Create subscription feed link”
  • Click on “Copy subscription feed link”

If you think the link has been leaked/spread (remember that the link is supposed to be personal), you can remove it at any time by clicking on “Remove subscription feed link”. If that happens you shall create and copy a new subscription feed link.

With this new feedback system, information on all type of uploads will be available to each and every members of the same organization and not only to the person making the upload. Moving away from an email based feedback methodology and to an RSS based one, will make the feedback more stable and reliable, without risk of spam or mail server problems. Also, it makes it easier to programmatically handle feedback from the IDEA system.

You should copy your subscription feed link inside your email provider. Here is how you do it if you are using Outlook:

  • Right click on File
  • Right click on “Account Settings” from the Account Settings drop down menu
  • In the new window that opens click on “RSS feeds”
  • Click on “New” and paste the RSS feed link you have copied from IDEA.

Using Thunderbird:

  • Right click on the News Feed folder and choose Subscription (you can also add a sub-folder and add the subscription there)
  • Add your Subscription link into the Feed URL text box in the Subscription popup box and click Add

For the time being, IDEA emails and RSS feeds will co-exists to give time to all IDEA users to get acquainted with the RSS feed. From 1st January 2023 IDEA will provide solely feedback based on the RSS feeds.

Querying AnimInfo data

The AnimInfo data is accessible from 1) AnimInfo/Query/Report and from 2) Pedigree/Query.

From the AnimInfo Query/Report it is possible to get the information in AnimInfo in datafiles.

1) AnimInfo/Query/Report

  • To query AnimInfo for one or more animals, click on the AnimInfo → Query/Report menu item (see figure 4).

figure_4_border.png
Figure 4

Paste in any text containing animal international ID's. Here there are two options 1) get the output on the screen 2) get the result as attachment in XML or CSV fileformat in an email. If the result is preferred as an attachment, click in the box beside “Send query result in a file by email” and choose the fileformat (figure 5).

figure_5_border.png
Figure 5

In the AnimInfo query/Report menu it is also possible to get a report per Animal Information Type / Breed(s). The available types /breeds will be shown in the scroll down menu. Here it is also possible to get the result on the screen or as an attachment in an email (figure 6).

figure_6_border.png
Figure 6

2) Pedigree/Query

  • Query the animalid of interest and click on the link after "This animal has additional Animal Information:" (see figure 7)

figure_7_border.png
Figure 7

Result from Query

The result from the query will be presented in a table. The columns in the table are: AID, AnimInfo Type, AnimInfo Attribute, AnimInfo Value and Submitting Organization. The information can be filtered by using filter list boxes. Additionally, when doing a pedigree query there will be an indication on the animal presentation page with a link to the additional information associated with the animal (figure 8).

figure_8_border.png
Figure 8

Permissions

AnimInfo has an elaborate permissions system which can be used to allow or disallow uploading and viewing of AnimInfo information depending on AnimInfo type, Organization and AID. The current permission settings can be found by chose AnimInfo -> Permissions in IDEA (see figure 9).

figure_9_border.png
Figure 9

The permissions are presented in a table with an overview of all permissions pertaining to that organization's AnimInfo data. The columns are Organization, AnimInfo Type and Permission. Organizations have full access to all animal information types for the animals where they are the authorized organization, ie. they can always upload information to animals they own, and also read all uploaded information to these animals. For other organizations' animals the permission system applies.

Permissions can be of five types:

  • (r) – read access to all of the data
  • (rw) – read and write access, ie. one can both read all uploaded data from all organizations and upload own data
  • (w) – write access to upload data, and read access for that data, but no read access to other organizations' uploaded data
  • (d) – denied access, ie. can't read the value of the AnimInfo data

  • (x) – the permission is inherited from the default permissions for that AnimInfo type

When the Organization column reads "--DEFAULT" the row indicates the default permission for that AnimInfo type, as set by the Interbull Centre. Currently, only default permissions are allowed, and permissions set by the Interbull Centre. In the future organizations will be able to upload AnimInfo files with permission rules included, to further extend and modify the default permissions.

Examples

Crossbreed %RH genes example

Here is an example of an %RH genes / Crossbreed XML file that sets the CROSSBREED AnimInfo type for three animals (HOLUSAM000000000X11, HOLDEUF000000000Y22 and HOLUSAM000000000X45):

   1 <interbull type="animinfo" version="1.0">
   2   <animals>
   3     <a id="HOLUSAM000000000X11">
   4       <CROSSBREED percent="RHOL:50;" />
   5     </a>
   6     <a id="HOLDEUF000000000Y22">
   7       <CROSSBREED percent="RHOL:25;SIM:25;" />
   8     </a>
   9     <a id="HOLUSAM000000000X45">
  10       <CROSSBREED percent="RHOL:75;" />
  11     </a>
  12   </animals>
  13 </interbull>

Genetic trait

Below is an example of an XML file with information about genetic traits where:

  • a_id = international identification number
  • GENETIC_TRAIT= type
  • whff_xx= attribute
  • "BLF" etc = value

The code whff in the attribute indicates that the organization creating the file has used World Holstein Friesian (WHFF) business rules (http://www.whff.info/documentation/genetictraits.php#go1) , xx(in the attibute)=the gene abbreviation for the trait and the value shows the gene abbreviation and expression code(i.g BL=gene abbreviation and C= expression code ). Allowed values to use can be found on https://idea.interbull.org/pedigree/animinfotypes

   1 <interbull type="animinfo" version="1.0">
   2   <animals>
   3      <a id="HOLNLDF000000123456">
   4         <GENETIC_TRAIT whff_bl="BLF" />
   5      </a>
   6       <a id="HOLNLDM000000-1234">
   7         <GENETIC_TRAIT whff_mf="MFC"  />
   8      </a>
   9       <a id="HOLNLDF000000478102">
  10        <GENETIC_TRAIT whff_po="POS" />
  11      </a>
  12      <a id="HOLCANM000000311569">
  13        <GENETIC_TRAIT whff_bl="BLF" whff_mf="MFC" />
  14      <a/>
  15    </animals>
  16 </interbull>

Genotyped animals

This service has been developed for beef organizations. The information gives information on if an animal has been genotyped or not, if the genotypes is sharable and the tissue used for genotyping. The actual genotypes are not reported. The code for the snp chip used for genotyping will be added as soon as standardized codes have been agreed on. Allowed values for each type of information can be found on https://idea.interbull.org/pedigree/animinfotypes.

Below is an exampel of an XML file with information about genotyped animals where:

  • a_id = international identification number
  • GENO_BEEF= code for type of information being reported
  • pop = population code
  • genotyped = information on if the animal has been genotyped or not
  • share = information on if the genotypes is sharable or not
  • tissue= information on which tissue has been used for genotyping

   1 <interbull type="animinfo" version="1.0">
   2   <animals>
   3     <a id="LIMIRLM12314567890">
   4       <GENO_BEEF pop="IRL" genotyped="Y"  share="Y" tissue="E"  />
   5     </a>
   6     <a id="LIMIRLM1234567891">
   7       <GENO_BEEF pop="IRL" genotyped="Y" share="N" tissue="N" />
   8     </a>
   9     <a id="LIMIRLM1234567892">
  10       <GENO_BEEF pop="IRL" genotyped="Y" share="N" tissue="H" />
  11     </a>
  12     <a id="LIMIRLM1234567893">
  13       <GENO_BEEF pop="IRL" genotyped="Y" share="Y" tissue="M" />
  14     </a>
  15     <a id="LIMIRLM1234567894">
  16       <GENO_BEEF pop="IRL" genotyped="Y" share="Y" tissue="U" />
  17     </a>
  18     <a id="LIMIRLM1234567895">
  19       <GENO_BEEF pop="IRL" genotyped="Y" share="Y" tissue="S" />
  20     </a>
  21     <a id="LIMIRLM1234567896">
  22       <GENO_BEEF pop="IRL" genotyped="Y" share="Y" tissue="B" />
  23     </a>
  24   </animals>
  25 </interbull>

InterGenomics-Holstein publishable young bulls

This Animinfo type has been developed for InterGenomics-Holstein Contributors. InterGenomics-Holstein Contributors should use the "IGHOL_YOUNG_BULL" type to provide information on their genotyped young bulls in A.I. evaluated in the InterGenomcis-Holstein Service, specifying for which of them InterGenomics-Holstein Organisations have to publish gEBVs. For each genotyped young bull in A.I. identified as publishable, the Contributor should also specify in which country or countries its gEBVs have to be published.

Below is an example of an XML file with information about genotyped young bulls in A.I. evaluated in the InterGenomics-Holstein Service where:

  • a_id = international identification number
  • IGHOL_YOUNG_BULL = code for type of information being reported
  • publish = if the genotyped young bull in A.I. has to be published in at least one InterGenomics-Holstein country

  • countries = list of InterGenomics-Holstein countries (3 letter country code delimited by semicolon) where the gEBVs of the young bull in A.I. have to be published (i.e. IRL;ISR;KOR;SVN)

   1 <interbull type="animinfo" version="1.0">
   2   <animals>
   3     <a id="HOLITAM123456789000">
   4       <IGHOL_YOUNG_BULL publish="N" />
   5     </a>
   6     <a id="HOLITAM000123456789">
   7       <IGHOL_YOUNG_BULL publish="Y" countries="KOR;SVN" />
   8     </a>
   9   </animals>
  10 </interbull>

Combine types

A more complex example shows how to combine CROSSBREED information and GENO_BEEF information in one file.

   1 <interbull type="animinfo" version="1.0">
   2   <animals>
   3     <a id="CHAIRLF00000GW12345">
   4       <GENO_BEEF pop="IRL" genotyped="Y"  share="Y" tissue="E"  />
   5       <CROSSBREED percent="LIM:25;CHA:50;"/>
   6     </a>
   7     <a id="CHAIRLM231139123456">
   8       <GENO_BEEF pop="IRL" genotyped="Y" share="N" tissue="H" />
   9       <CROSSBREED percent="LIM:25;CHA:75;" />
  10     </a>
  11   </animals>
  12 </interbull>

public/IDEA_animinfo_manual (last edited 2024-01-17 15:55:20 by Valentina)