Releases: leifeld/dna
DNA 3.0.11
Instructions:
dna-3.0.11.jar
is the main DNA application. You need Java 11 or higher to use it, for example Adoptium Temurin OpenJDK 11. You can open the application with a double-click on the jar file or using java -jar dna-3.0.11.jar
on the terminal or command line.
rDNA_3.0.11.tar.gz
is the accompanying R package. It contains the DNA jar file mentioned above by default now.
sample.dna
is a toy database. The password for accessing the database is sample
for all coders, including the admin coder.
bibliography.pdf
is a bibliography listing 334 publications and theses using DNA.
Release notes:
- The DNA jar file is now packaged right into the rDNA package, which means you no longer have to download it using
dna_jar()
. Thedna_jar()
function therefore no longer downloads or compiles the jar file, it only reports its location and file name for use withdna_init()
. - Fixed the headless bug that was plaguing MacOS and HPC users when using rDNA.
- Bug fixes in the DNA database import from previous version 2.0 databases.
- Bug fixes in the creation of MySQL and PostgreSQL remote databases.
- Bug fix in
dna_barplot
. - Added
autoplot
functions as the default way of plotting various objects in the rDNA package.autoplot
requires theggplot2
package to be loaded and creates a default plot with the most sensible options, for example for a network, backbone, barplot etc. You can then further refine these plots usingggplot2
or manipulate the object you are plotting by replacing colours, labels etc before usingautoplot
. The help pages usually contain useful examples on how to do this. - Improved network plotting in rDNA using an
autoplot
function. Plotting is done using theggraph
package, and the plotting code was rewritten from scratch to be more useful. - Added
dna_getVariables()
function to rDNA. This function retrieves the variables present in a statement type. - Added
dna_multiclust
function to rDNA. This function applies about a dozen different clustering/community detection/subgroup analysis measures to a discourse network and reports the best-fitting solution as per the network modularity measure. - Added
dna_backbone
and an associatedautoplot
function to rDNA. These methods can partition concepts (or whatever you code as the second variable) into a backbone set and a redundant set using a simulated annealing algorithm. The backbone is supposed to preserve the structure of the actor network without much loss, and the redundant set contains concepts that can be removed without impairing the structure of the actor network significantly. See this working paper for a preview. You can also compute and save backbones in the graphical user interface of the DNA jar, but the visualisations are not available then and you have to inspect a JSON or XML file with the results. - Added
dna_phaseTransitions
and an associatedautoplot
function to rDNA. These methods can detect phases, states, and transitions between them in discourse networks over time and plot and diagnose them. See this working paper for a preview. More papers will follow. - Added a
dna_tidygraph
function to createtidygraph
objects. These objects can be plotted with theggraph
package, which is very flexible and is also the default package used for plottingdna_network
objects. Usingtidygraph
objects directly gives you more flexibility in plotting the networks the way you want but also requires more effort to specify the layout etc.tidygraph
objects are at the same time alsoigraph
objects, which means they can be used with community detection and other functions in theigraph
package. The help page fordna_tidygraph
also shows how to convert these objects intonetwork
objects for use with thestatnet
suite of packages using theintergraph
package. - Ported IRT scaling from DNA 2 to DNA 3 and improved it and added a new
autoplot
function. These functions can be used to scale actors and concepts on one or two ideological dimensions. See the paper in the Journal of European Public Policy for an example. - The Gradle build system was updated. You can now clone the GitHub repository to your local computer and build the latest DNA jar, rDNA,and bibliography with the command
gradlew build
on the terminal. The files will be compiled and saved in thebuild
directory. Other useful commands aregradlew clean
(to delete the built files),gradlew rDNACheck
(to check the built rDNA package), andgradlew rDNATest
(to execute unit tests for rDNA). - Updated the bibliography with now 334 entries. See the enclosed PDF file or the Markdown version of the bibliography.
- Added unit tests for rDNA.
DNA 3.0.10
Instructions:
dna-3.0.10.jar
is the main DNA application. You need Java 11 or higher to use it, for example the Adoptium OpenJDK 11.
rDNA_3.0.10.tar.gz
is the accompanying R package.
sample.dna
is a toy database. The password for accessing the database is sample
for all coders, including the admin coder.
bibliography.pdf
is a bibliography listing 259 publications and theses using DNA.
Release notes:
- MacOS bug fixed: On MacOS, the dialog windows for opening and saving databases and other files did not show any databases to select (see #244, #263, #267, and #268). This was due to a security issue in MacOS: DNA uses a Java Swing component called JFileChooser to display dialog windows for opening and saving files. MacOS does not trust this file dialog and only shows files to the native file chooser component. The new version therefore detects whether the user is on MacOS and, if so, uses a native AWT FileDialog instead, which uses the system's native file chooser, and thereby fixes the problem.
- Bug fix in the time window functionality in the
dna_network
function in rDNA. - Bug fix in the way the
combine
setting in one-mode network export aggregated duplicate statements. This was correct in version 3.0.8 but not anymore in 3.0.9 and has been fixed again. - New bibliography with currently 259 publications and theses using DNA. The release comes with a PDF file, but the most recent version is always available here as a Markdown file (accessible from the project landing page as well).
DNA 3.0.9
TL;DR
The most important new functions are categorical qualifier variables, local document search, and new rDNA functions for networks, attributes, and barplots.
Important bug fixes include the batch document importer and the multi-statement editor.
The sample.dna
database still has the password sample
. The next release will have more R functions for data management.
Installation instructions and requirements are the same as for v3.0.7.
New features and bug fixes
- Added categorical qualifier variables: In the network export (both in DNA and rDNA), it is now possible to use qualifier variables that are not boolean/binary or integer, but short text. For example, if you use the statement type for NPF Story Elements, you can connect two narrators or a narrator with a hero etc not just by co-occurrence in the same statement, but for instance only if they have the same value in another variable like "plot" or "villain" (the short text qualifier variable).
- Added a document filter and a short-cut to the global search function. In the DNA main window, you can now simply press CTRL+F if a database is open to show the text search function. If you select one or more documents in the table before you open the search window, you can check a box for displaying only those search results that are in the contained in the documents selected in the document table. I.e., you can turn your search into a within-document search. See also #252.
- New export defaults: Both in DNA and rDNA, I have set up the same sensible default parameter values for network export.
- Fixed bugs in the batch document importer. In particular, the parsed date was not saved properly in the imported documents and was replaced by the date and time of import instead, and the default regex terms for parsing meta data from file names did not correspond to the ones in DNA 2. The date issue has been fixed, and the regex terms have been replaced with more useful defaults. See #239 for details. However, after thinking about this more, I generally recommend using file names of the form
[title: some title] [author: some author] [section: some section].txt
(and similar structures for other meta data). These are easy to parse using regex terms, for example(?<=\[title: ).+?(?=\])
for matching the title,(?<=\[author: ).+?(?=\])
for matching the author, and(?<=\[section: ).+?(?=\])
for matching the section. In any case, the batch import of documents should work well now. - Bug fix in the multiple statement editor: In the right-click context menu of the statement table, the function for editing multiple statements (i.e., recoding them at once) only worked with the default statement types but produced an error if custom statement types were used. This has been fixed. See #240.
- Fixed an export bug: If the time window functionality in the network export was used and at least one of the time slices did not have any statements occurring, an error was thrown instead of producing an empty network.
- Fixed an export bug with normalization: When normalization was used, zeros in the output file were replaced by
NaN
. They are now proper zeros. - The
dna_network
function has been added to rDNA again. It is now possible to create networks from the R console and retrieve them as matrices just like with the graphical network export in DNA. The resulting network objects have distinct class names for one- and two-mode networks, but are in essencematrix
objects (just with additional attributes) and can be treated as such in R. There areas.matrix
methods to cast these objects into propermatrix
objects. The objects also come withprint
methods for pretty printing on the console. There is no plotting method yet for these objects. We aim to add this in the next release. But it is of course possible to use any network visualization package to display the data, for example thenetwork
,ggraph
, origraph
packages. - Added fancy progress bars to several functions in rDNA.
- Added a
dna_barplot
function to rDNA. The new function creates data necessary for creating barplots like in Leifeld and Haunss (2012, EJPR), Fergie et al. (2019, Addiction) and in some other papers. The data are saved in adna_barplot
object, which is just a data.frame with added attributes and can be treated as such. There is a fancyprint
method to display it nicely on the R console. The user can print and/or edit the data and then use theautoplot
method to create the actual diagram, with several options. This approach should give the user the greatest flexibility to change the data or create custom plots with the data. - Added a
dna_getAttributes
function to rDNA to retrieve all entities and their attribute values and colors from the DNA database. The resulting object is adna_attributes
object, but it is simply a data.frame (just with some additional attributes) and can be treated as such in R. In the future, we will add functions to edit entities and attributes in the database from R. - Several other bug fixes. See commit history on GitHub for details.
Further release notes
Please view the installation instructions and requirements for release version 3.0.7 for more details.
Like in previous versions, the password for all coders in the sample database is "sample
".
We are aiming to release the next version 3.0.10 in mid to late February 2023, with new rDNA functions for data management in R and some new analysis functions.
DNA 3.0.8
Some minor bug fixes since the last release a few days ago. Observe the commit history on 16 June 2022 for details. In particular:
- Fixed a bug with the retrieval of statements for editing multiple statements in DNA.
- Fixed some issues in the
dna_jar
function inrDNA
. - Fixing a nonsensical warning in
dna_saveConnectionProfile
. - The argument order of
dna_openDatabase
was changed.
Note that the password for the sample database is still sample
for all coders in the file.
DNA 3.0.7
TL;DR
DNA 3 is a major rewrite of DNA. It requires Java 11. The sample database requires the password sample
for all users. There are not a lot of functions in the rDNA R package yet, so use DNA 2.0 beta 25 for now if you require R. Otherwise DNA 3 is ready for production. There is no manual yet. Work on improving DNA 3 and especially rDNA will continue over the summer.
Installation and requirements
- DNA 3 requires Java 11 or higher (unlike DNA 2, which required Java 8 or higher). Please update your Java version if you have an old version. On the terminal or command line of your operating system, you can check which Java version you have by typing
java --version
. The recommended Java version is Adopt OpenJDK 11. - You can download the jar file and simply open it with a double-click if you have Java 11 installed on your computer.
- You can also start DNA from the command line or terminal of your operating system by navigating to the directory where the jar file is stored and typing
java -jar dna-3.0.7.jar
. Note that DNA will be closed when you close the terminal window. - MacOS users occasionally report problems. DNA should in principle work just fine on MacOS. But some users with old MacOS versions (e.g., Catalina) have reported that they can only open DNA from the terminal (see above). Other MacOS users have reported that they first have to allow the DNA jar file to be opened via double-click in their system settings. See here for instructions.
- On Linux/Unix systems, make sure you give the jar file executable permissions if you want to start it via double-click.
- rDNA from now on requires a jar file with the same version as rDNA. The new
dna_jar
function allows you to find the jar file on your computer or download it to your computer. It is recommended that you put the jar file into theinst/java/
sub-directory of yourrDNA
package folder in your local R library tree. Thedna_jar
function will attempt to do this for you, but you might just as well put a copy of the jar file there manually. - The sample database was updated to the new DNA 3 file format. Please use the password
sample
to log into the database. This password is valid for all coders present in the sample database. - The
.graphml
files exported by DNA can be read by visone. It is recommended to download the latest visone jar file. - If you encounter any issues, please do feel free to open an issue in the issue tracker.
New features of DNA 3.0
- Cleaner user interface, where many additional functions, such as regex highlighter or document editor, were moved into separate dialog windows which can be opened from the menu.
- DNA 3 works with three kinds of DNA databases: SQLite, MySQL (and the more recent MariaDB, which is basically a rebranded version of MySQL), and PostgreSQL. MySQL and PostgreSQL are remote databases that can be run on a server on the internet for collaborative coding while SQLite is a file-based local database. All three were in principle supported in DNA 2, but the remote databases never worked very well. DNA 3 now offers full and equal support of all three database formats.
- The table structure inside the databases has been improved for data safety and performance, and the databases are now accessed in a more secure way, where data loss (e.g., in the event of power outage or internet connection loss) is much less likely because data access is bundled in transactions.
- DNA 3 provides comprehensive coder management with passwords and coder permissions and allows users to show or hide the documents and statements owned by other users.
- Database access is in real time, which means changes are written immediately to the database. This means any changes are immediately available to other remote coders as well. (Though they have to refresh their data to see the changes).
- By default, DNA 3 comes with a new statement type: the NPF Story Element, which operationalises the core aspects of the Narrative Policy Framework.
- In DNA 3, you can create, edit, and delete statement types at any point in time, even after the database has been initially created.
- DNA 3 allows you to create and remove new attribute variables for storing additional meta-data about actors, concepts etc. Previously, only type, alias, and notes were hardcoded as attribute variables for each variable.
- It is possible to rename entities, such as actors or concepts, across all statements in the new attribute manager.
- DNA 3 has an editor for multiple statements at once to recode them more effectively.
- DNA 3 has a document editor, also for multiple documents at once, to recode documents more effectively.
- A message log will keep track of any error messages and any changes you make. You can export log messages to XML or JSON files.
- DNA 3 offers saving and opening connection profiles. They are like bookmarks for database connections for easier database access without having to re-enter the connection URL, password etc. each time. The details in the connection profiles are encrypted on your hard drive.
- DNA 2 documents and statements can be imported into DNA 3 databases (but not vice-versa).
Things that don't work yet
While DNA 3 is an improvement over DNA 2 in many ways, the following things have not been added back in yet:
- The rDNA R package has only a few rudimentary functions as of right now, which allow you to open and close databases and connection profiles, but there are no functions for creating networks and analysing the data in any way yet. This will be added step by step to future versions. If you require analysis in R, it is recommended that you work with DNA 2 for now. You can later convert the data to DNA 3 once rDNA has been updated with more useful functions.
- There is no manual yet. Some of the details from the DNA 2 manual may still be valid, but don't rely on it. Documentation will be created when time permits, but first rDNA needs to be improved.
- DNA 3 has the same network export functionality as DNA 2. Eventually, new network export functionalities will be added, and they will permit more powerful analyses.
DNA 2.0 beta 25
Changes since the last release:
- Added a new
dna_multiclust
function, which applies a dozen clustering and community detection techniques to a discourse network and computes modularity, for a single network or a time-window series of networks. If a time-window series of networks is used, the largest modularity score of all cluster solutions is saved in a separate list and can be plotted as a curve using the newdna_plotModularity
function. - Removed the
dna_timeWindow
function because its functionality is replaced bydna_multiclust
anddna_plotModularity
. - Added a new
dna_dendrogram
function, which computes the cluster solution with the highest modularity using thedna_multiclust
function and then plots a dendrogram for this cluster solution. It is also possible to set various colors and other settings for the dendrogram easily. - Added a new
dna_polarization
function, which applies a genetic algorithm to find the extent of polarization in a discourse network or a time-window series of networks. If a time-window series of networks is used to compute polarization, the newdna_plotPolarization
function can plot a) a curve for the polarization measure over time and b) convergence diagnostics of the genetic algorithm. - Stress majorization is now used as the default network layout in
dna_plotNetwork
, following changes in theggraph
andgraphlayouts
packages. - Some bugfixes.
DNA 2.0 beta 24
Changes since the last release:
- Coder management in rDNA using new functions
dna_addCoder
,dna_removeCoder
, anddna_updateCoder
. - Management of regular expressions in rDNA using new functions
dna_addRegex
,dna_getRegex
, anddna_removeRegex
. - Settings management in rDNA using new functions
dna_getSettings
anddna_updateSetting
. - Added "title" and "id" as additional document-level variables for the DNA network export via GUI and
dna_network
. - Permitting network export without a qualifier variable using
dna_network
. - Added
outfile
andfileFormat
arguments todna_network
to save networks directly to a file from R if desired. - Bugfixes in DNA and rDNA.
Install this version of the rDNA package with:
library("remotes")
install_github("leifeld/dna/[email protected]", INSTALL_opts = "--no-multiarch")
DNA 2.0 beta 23
Changes since the last release:
- Additional data management functions for the rDNA package, including
dna_getStatements
,dna_setStatements
,dna_addStatement
,dna_removeStatement
,dna_getStatementTypes
,dna_addStatementType
,dna_removeStatementType
,dna_renameStatementType
,dna_colorStatementType
,dna_getVariables
,dna_addVariable
,dna_removeVariable
,dna_renameVariable
, anddna_recastVariable
. - Changes in
dna_downloadJar
: The function now recognizes the latest stable release version on GitHub and downloads to the R library path by default. - Changes in
dna_init
: The function now selects the latest jar file in the library path automatically. If none is present, it searches the current working directory for a jar file. It is still possible to provide the filename to override this behavior. - Lots of bugfixes both in DNA and rDNA.
Install this version of the rDNA package with:
library("devtools")
install_url("https://github.com/leifeld/dna/releases/download/v2.0-beta.23/rDNA_2.1.13.tar.gz",
INSTALL_opts = "--no-multiarch")
DNA 2.0 beta 22
This new beta version contains...
- improved time window algorithms (implemented by @leifeld) for smoothed polarization measures over time (see the
dna_timeWindow
anddna_plotTimeWindow
functions in therDNA
package) and - a workflow for estimating one- or two-dimensional item response theory (IRT) models based on DNA data using the
MCMCpack
package (implemented by @TimHenrichsen) for ideological scaling of actors and concepts (seerDNA
functionsdna_scale1dbin
,dna_scale1dord
,dna_scale2dbin
,dna_scale2dord
,plot.dna_scale
,print.dna_scale
, anddna_plotScale
).
Install this version of the R
package with:
devtools::install_url("https://github.com/leifeld/dna/releases/download/v2.0-beta.22/rDNA_2.1.9.tar.gz", INSTALL_opts = "--no-multiarch")
DNA 2.0 beta 21
Added several new functions to rDNA, which is now a more complete tool for qualitative content analysis and discourse network analysis.
With this new release, rDNA is now more than just an R package to retrieve network data from DNA. Several new functions such as dna_cluster()
, dna_barplot()
, dna_plotFrequency()
, dna_plotDendro()
, dna_plotHeatmap()
, dna_plotHive()
, dna_plotCoordinates()
, dna_plotNetwork()
, dna_plotTimeWindow()
, dna_addDocument()
, dna_getDocuments()
, dna_removeDocument()
, dna_setDocuments()
and dna_getAttributes()
were implemented. This means that rDNA now covers many common steps of a discourse network analysis with dedicated functions in R.
The new functions are also covered in a new version of the manual.
This release also fixed several bugs in DNA and added the ability to specify the width of popup windows in the GUI.