scibasic

sciBASIC# is a kind of dialect language which is derive from the native VB.NET language, and written for the data scientist.

https://github.com/xieguigang/scibasic

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.1%) to scientific vocabulary

Keywords

cnn data-mining data-science graphquery hdf5 hqx machine-learning manifold microsoft-visualbasic netcdf network-visualization t-sne umap

Keywords from Contributors

genomics bioinformatics virtualcell virtual-cell single-cell scibasic r-language genome-annotation biological-data-analysis gcmodeller
Last synced: 6 months ago · JSON representation

Repository

sciBASIC# is a kind of dialect language which is derive from the native VB.NET language, and written for the data scientist.

Basic Info
  • Host: GitHub
  • Owner: xieguigang
  • License: gpl-3.0
  • Language: Visual Basic .NET
  • Default Branch: master
  • Homepage: http://sciBASIC.NET/
  • Size: 327 MB
Statistics
  • Stars: 74
  • Watchers: 17
  • Forks: 35
  • Open Issues: 2
  • Releases: 14
Topics
cnn data-mining data-science graphquery hdf5 hqx machine-learning manifold microsoft-visualbasic netcdf network-visualization t-sne umap
Created about 10 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

sciBASIC#: Microsoft VisualBasic for Scientific Computing

() Github All Releases GPL Licence DOI

[WARNING] This project is a work in progress and is not recommended for production use.

Probably some namespace and object name may changes frequently on each commit, and you are feel free to using the Object Browser in visual studio to adapted to the object not defined problem which was caused by these changes.....


sciBASIC# logo

Read the project documents: http://sciBASIC.NET/

Scientific Computing runtime for VisualBasic.NET

sciBASIC#: A Microsoft VisualBasic feature runtime for data science application on Windows/Linux/macOS And China Tianhe Super Computing Platform. It was mainly consists with a data frame system, a data science analysis system, a data graphics system and a general application core runtime.

sciBASIC#(read as scientific visualbasic or just sciBASIC sharp) is a Microsoft VisualBasic language feature runtime for your data science application which is running in the CLI environment on Windows/Linux/macOS Desktop/Server platform or supercomputer platform. This framework project includes a lot of mathematics utility tools and the utility code extension functions for the data sciences application which is programming in VisualBasic language, and it also extends the VisualBasic programming language syntax. Makes the VisualBasic programming style more modernized in the data science industry by using this runtime library framework.

Abount VisualBasic code style guidelines: + https://github.com/xieguigang/sciBASIC/tree/master/docs/vb_codestyle

Guides for using this framework, you can found the document and content index at the README.md(This guidelines document is currently compiling for users): + https://github.com/xieguigang/sciBASIC/tree/master/docs/guides


Runtime Installation

  • Compile & Application Development on this runtime required the latest VisualStudio 2017.
  • If you are running sciBASIC runtime on Windows, please makesure your operating system supports .NET framework 4.6
  • If you are running sciBASIC runtime on Linux/macOS, please install mono runtime at first by following the installation manual on mono-project website. And then the Microsoft VisualBasic core runtime is required, you can find this runtime file in this repository: Microsoft.VisualBasic.7z, just extract this 7z archive and put the Microsoft.VisualBasic.dll kernel in the application directory.

Install this framework via nuget package

For .NET Framework 4.6:

  • https://www.nuget.org/packages/sciBASIC#

```bash

For install latest stable release version:

PM> Install-Package sciBASIC

For install latest unstable beta version:

PM> Install-Package sciBASIC -Pre ```

Contacts

Foundation for VisualBasic.NET scientific computing softwares from China: foundation@sciBASIC.NET

Directory Structure

1. source projects
  • /CLI_tools : Some small utilities and example tools
  • /Data : sciBASIC# data framework system for data science, includes data frame, data I/O, natural language text processing and data object search framework.
  • /Data_science : sciBASIC# Mathmatica system, data graphics plot system & Data Mining library
  • /Microsoft.VisualBasic.Core : Microsoft VisualBasic General App core runtime
  • /mime : Various mime-type text or Xml doc parsers in VisualBasic.
  • /gr : sciBASIC# Artists: (graphic artist) VB.NET imaging graphics system
  • /www : Web related utilities code
  • /vs_solutions : sciBASIC framework Windows installer project.
2. docs for User
  • /guides : This framework code usage example and manual documents
  • /vb_codestyle : sciBASIC# Coding style standard document

Namespace

| |Namespace |Description | |--|---------------------------------------------|----------------------------------------------------------------------------------| | |Microsoft.VisualBasic.ApplicationServices |Application tool and Utils for build software in a more easy way | | |Microsoft.VisualBasic.CommandLine |CLI framework for VisualBasic App | |*|Microsoft.VisualBasic.Data |Raw data processing related code and charting plot library for data visualization | |*|Microsoft.VisualBasic.DataMining |sciBASIC data mining library | |*|Microsoft.VisualBasic.Imaging |sciBASIC graphics system based on the GDI+ API from System.Drawing | |*|Microsoft.VisualBasic.MachineLearning |sciBASIC machine learning library | |*|Microsoft.VisualBasic.Math |sciBASIC math library | | |Microsoft.VisualBasic.MIME |MIME type text document parser | | |Microsoft.VisualBasic.Scripting |String expression related API for CLI programming and scripting programming |

sciBASIC runtime can be split as two part: Part1 is the general application runtime, like scripting helper, commandline system, and text document parser; Another part of the runtime is the data science runtime, like math function, cluster function, or charting runtime for data visualization. All of the data science related namespace in sciBASIC are marked with asterisk.

FAQs

1. Which platform that I can using this framework? For writing x86/x64 server/Desktop Win32 CLI program.

2. Relationship between Microsoft VisualBasic.NET and sciBASIC? sciBASIC is fully compatible with the native VB.NET language, sciBASIC is a kind of dialect derive from the Microsoft VisualBasic.NET language.

3. Is there any interactive WinForm/WPF control for charting plot? One of this framework its primary target is aim at provides a drawing environment for your CLI program create high quality printable contentfor scientific manuscript. This framework is not too much involved with "interactive".

4. Any coding style suggestion by using sciBASIC framework? sciBASIC framework is a kind of functional programming runtime for VisualBasic language.

5. Major features Major features of the sciBASIC are: + Functional programming + Fluent style Method cascading + Linq pipeline + Parallel computing

ODEs scripting language feature

Example for solving a dynamics system using VisualBasic ODEs scripting language feature, demo created for the Lorenz system:

```vbnet Dim x, y, z As var Dim sigma# = 10 Dim rho# = 28 Dim beta# = 8 / 3 Dim t = (a:=0, b:=120, dt:=0.005)

Call Let$(list:=Function() {x = 1, y = 1, z = 1}) Call { x = Function() sigma * (y - x), y = Function() x * (rho - z) - y, z = Function() x * y - beta * z }.Solve(dt:=t) _ .DataFrame _ .Save($"{App.HOME}/Lorenz_system.csv") ```

Microsoft VisualBasic Trinity Natural Language Processor

TextRank

PageRank analysis on the text paragraph for find out the keyword, here is the pagerank result of the this example paragraph:

"the important pagerank. show on pagerank. have significance pagerank. implements pagerank algorithm. textrank base on pagerank."

GraphQuery

GraphQuery is a query language and execution engine tied to any backend service. It is back-end language independent.

```vbnet Imports Microsoft.VisualBasic.Data.GraphQuery Imports Microsoft.VisualBasic.Data.GraphQuery.Language Imports Microsoft.VisualBasic.MIME.application.json Imports Microsoft.VisualBasic.MIME.application.json.Javascript Imports Microsoft.VisualBasic.MIME.Markup.HTML

' define your graph query at here Dim queryText As String = "..." Dim query As Query = QueryParser.GetQuery(queryText) Dim engine As New Engine ' http get of the html document text from web server or local filesystem Dim url As String = "..." Dim doc As HtmlDocument = HtmlDocument.LoadDocument(url) Dim data As JsonElement = engine.Execute(doc, query) ' debug view of the graph query result Dim json As String = data.BuildJsonString(New JSONSerializerOptions With {.indent = True})

Call Console.WriteLine(json) ```

Read more about the graphquery language: GraphQuery

```bash graphquery { # parser function pipeline can be # in different line, # this will let you write graphquery # code in a more graceful style when # you needs a lot of pipeline function # for parse value data. bookID css("book") | attr("id")

title     css("title")
isbn      xpath("//isbn")
quote     css("quote")
language  css("title") | attr("lang")

# another sub query in current graph query
author css("author") {
    name css("name")
    born css("born")
    dead css("dead")
}

# this is a array of type character
character xpath("//character") [{
    name          css("name")
    born          css("born")
    qualification xpath("qualification")
}]

} ```

Image fast binarization using VisualBasic image extension API

Sub Binarization(ByRef curBitmap As Bitmap, Optional style As BinarizationStyles = BinarizationStyles.Binary)

```vbnet Imports Microsoft.VisualBasic.Imaging

Dim bitmap As Image = Image.FromFile("./etc/lena/f13e6388b975d9434ad9e1a41272d2421orig.jpg")

Call bitmap.Grayscale().SaveAs("./etc/lena/lena.grayscale.png", ImageFormats.Png) Call bitmap.GetBinaryBitmap .SaveAs("./etc/lena/lena.binary.png", ImageFormats.Png) Call bitmap.GetBinaryBitmap(BinarizationStyles.SparseGray) .SaveAs("./etc/lena/lena.gray.png", ImageFormats.Png) ```

|Normal|Binary|SparseGray|Grayscale| |------|------|----|---------| |||||

sciBASIC# Graphics Artist

data visualization of the KD-tree based KNN search result

Microsoft VisualBasic Data Science & Data Plots System

sciBASIC# Chart Plots System

sciBASIC Power the R# ggplot graphics library

The R# language is another scientific computing language which is designed for .NET runtime, R# is evolved from the R language. There is a famous graphics library called ggplot2 in R language, so keeps the same, there is a graphics library called ggplot was developed for R# language.

charting via R# ggplot

Another charting

Imports namespace for use the sciBASIC charting plot system api:

vbnet Imports Microsoft.VisualBasic.Data.ChartPlots

3D heatmap

```vbnet Dim func As Func(Of Double, Double, (Z#, Color#)) = _ Function(x, y) (3 * Math.Sin(x) * Math.Cos(y), Color:=x + y ^ 2)

Call Plot3D.ScatterHeatmap.Plot( func, "-3,3", "-3,3", New Camera With { .screen = New Size(3600, 2500), .ViewDistance = -3.3, .angleZ = 30, .angleX = 30, .angleY = -30, .offset = New Point(-100, -100) }) _ .SaveAs("./3d-heatmap.png") ```

Contour Heatmap

You can using a lambda expression as the plot data source:

```vbnet Dim f As Func(Of Double, Double, Double) = Function(x, y) x ^ 2 + y ^ 3

Call ScatterHeatmap _ .Plot(f, "(-1,1)", "(-1,1)", legendTitle:="z = x ^ 2 + y ^ 3") _ .SaveAs("./scatter-heatmap.png") ```

Stacked Barplot

The stacked barplot is a best choice for visualize the sample composition and compares to other samples data:

```vbnet Imports Microsoft.VisualBasic.Data.ChartPlots

' Plots metagenome taxonomy profiles annotation result using barplot Dim file = "./FigurePlot-Reference-Unigenes.absolute.level1.csv" ' Using color brewer color profiles Dim taxonomy As BarDataGroup = csv.LoadBarData(file, "Paired:c8")

Call BarPlot.Plot( taxonomy, New Size(2000, 1400), stacked:=True, legendFont:=New Font(FontFace.BookmanOldStyle, 18) ) _ .SaveAs("./FigurePlot-Reference-Unigenes.absolute.level1.png") ```

beta-PDF

```vbnet Public Function beta(x#, alpha#, beta#) As Double Return Pow(x, alpha - 1) * Pow((1 - x), _beta - 1) * Exp(lgamma(alpha + _beta) - lgamma(alpha) - lgamma(beta)) End Function

Public Function lgamma(x As Double) As Double Dim logterm As Double = Math.Log(x * (1.0F + x) * (2.0F + x)) Dim xp3 As Double = 3.0F + x

Return -2.081061F - x + 0.0833333F / xp3 -
    logterm + (2.5F + x) * Math.Log(xp3)

End Function ```

https://en.wikipedia.org/wiki/Beta_distribution

Heatmap

```vbnet Dim data = DataSet.LoadDataSet("./Quickcorrelationmatrix_heatmap/mtcars.csv")

Call data.CorrelatesNormalized() _ .Plot(mapName:="Jet", ' Using internal color theme 'Jet' mapLevels:=20, legendFont:=New Font(FontFace.BookmanOldStyle, 32)) _ .SaveAs("./images/heatmap.png") ```

Microsoft.VisualBasic.Mathematical.Plots.Heatmap::Plot(IEnumerable(Of NamedValue(Of Dictionary(Of String, Double))), Color(), Integer, String, Boolean, Size, Size, String, String, String) As Bitmap

Heatmap data source from R dataset mtcars and calculates the Pearson correlations:

R data(mtcars) write.csv(mtcars, "./Data_science/Mathematical/Quick_correlation_matrix_heatmap/mtcars.csv")


New VisualBasic Language Syntax in this runtime

First of all, imports the language feature namespace of VisualBasic

```vbnet

Region "Microsoft VisualBasic.NET language"

' sciBASIC# general application runtime ' Microsoft.VisualBasic.Architecture.Frameworkv3.022.0.76.201__8da45dcd8060cc9a.dll

End Region

Imports Microsoft.VisualBasic.Language ```

1. Inline value assign

Old:

```vbnet Dim s As String = ""

Do While Not s Is Nothing s = blablabla

' Do other staff Loop ```

New:

```vbnet Dim s As New Value(Of String)

Do While Not (s = blablabla) Is Nothing ' Do other staff Loop ```

2. List(Of ) Add

Old:

```vbnet Dim l As New List(Of String)

Call l.Add("123") Call l.AddRange(From x In 100.Sequence Select CStr(x)) ```

New:

```vbnet Dim l As New List(Of String)

l += "123" l += From x As Integer In 100.Sequence Select CStr(x) ```

New Integer(int) type in visualbasic
  • value ranges syntax

```vbnet Dim min As int = 1 Dim max As int = 200 Dim x% = 199

' Compares Call println(min <= x < max) ' True x += 10 ' 209 Call println(min <= x < max) ' False x = -1 Call println(min <= x < max) ' False ```

  • inline calculation and value assign

```vbnet Dim bitChunk As Byte() = New Byte(INT64 - 1) {} Dim p As int = Scan0

Call Array.ConstrainedCopy(rawStream, ++(p + INT64), bitChunk, Scan0, INT64) ProtocolCategory = BitConverter.ToInt64(bitChunk, Scan0)

Call Array.ConstrainedCopy(rawStream, ++(p + INT64), bitChunk, Scan0, INT64) Protocol = BitConverter.ToInt64(bitChunk, Scan0)

bitChunk = New Byte(INT64 - 1) {} Call Array.ConstrainedCopy(rawStream, p = (p + INT64), bitChunk, Scan0, INT64) BufferLength = BitConverter.ToInt64(bitChunk, Scan0) ```


Stargazers over time

Copyleft 2022, I@xieguigang.me (http://sciBASIC.NET/)

Owner

  • Name: この中二病に爆焔を!
  • Login: xieguigang
  • Kind: user
  • Location: Guilin, China (中國 桂林)
  • Company: @SMRUCC genomics Institute

Working on Engineered bacteria CAD design on its genome from scratch. Writing scientific computing software for Tianhe & Sunway TaihuLight supercomputer.

GitHub Events

Total
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 3
  • Push event: 252
  • Pull request event: 2
  • Create event: 1
Last Year
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 3
  • Push event: 252
  • Pull request event: 2
  • Create event: 1

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 12,563
  • Total Committers: 11
  • Avg Commits per committer: 1,142.091
  • Development Distribution Score (DDS): 0.273
Past Year
  • Commits: 1,690
  • Committers: 1
  • Avg Commits per committer: 1,690.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
xieguigang x****g@g****g 9,132
xieguigang x****g@g****m 2,728
关倩倩 a****a@g****g 450
guigang xie g****e@b****m 126
xieguigang g****s@s****g 112
谢桂纲 x****g@l****m 6
xieguigang x****g@g****m 5
Admin A****n@D****9 1
xieguigang g****s@g****g 1
關倩倩 e****a@l****e 1
dependabot[bot] 4****] 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 2
  • Total pull requests: 115
  • Average time to close issues: N/A
  • Average time to close pull requests: 20 minutes
  • Total issue authors: 2
  • Total pull request authors: 4
  • Average comments per issue: 6.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 114
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 0
  • Pull requests: 3
  • Average time to close issues: N/A
  • Average time to close pull requests: about 6 hours
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • VBAndCs (1)
  • YUANMENG-1 (1)
Pull Request Authors
  • xieguigang (106)
  • amethyst-asuka (11)
  • dependabot[bot] (3)
  • genetics-potato (2)
Top Labels
Issue Labels
Pull Request Labels
dependencies (3) .NET (2)

Packages

  • Total packages: 2
  • Total downloads:
    • nuget 44,373 total
  • Total dependent packages: 2
    (may contain duplicates)
  • Total dependent repositories: 3
    (may contain duplicates)
  • Total versions: 29
  • Total maintainers: 1
nuget.org: scibasic

1. Source code can be download from github.com: https://github.com/xieguigang/sciBASIC 2. Code style guideline for VisualBasic of this runtime library at codeproject article: http://www.codeproject.com/Articles/1101608/Code-style-guidelines-for-Microsoft-VisualBasic 3. Article about manipulate these document at codeproject: http://www.codeproject.com/Articles/1099296/Easy-Document-in-VisualBasic

  • Versions: 12
  • Dependent Packages: 2
  • Dependent Repositories: 1
  • Downloads: 15,886 Total
Rankings
Forks count: 3.4%
Stargazers count: 4.1%
Dependent packages count: 6.8%
Dependent repos count: 7.0%
Average: 7.2%
Downloads: 14.4%
Maintainers (1)
Last synced: 6 months ago
nuget.org: vb_appframework

Source code can be download from github.com: https://github.com/xieguigang/VisualBasic_AppFramework Code style guideline for VisualBasic of this runtime library at codeproject article: http://www.codeproject.com/Articles/1101608/Code-style-guidelines-for-Microsoft-VisualBasic Article about manipulate these document at codeproject: http://www.codeproject.com/Articles/1099296/Easy-Document-in-VisualBasic

  • Versions: 17
  • Dependent Packages: 0
  • Dependent Repositories: 2
  • Downloads: 28,487 Total
Rankings
Forks count: 3.4%
Stargazers count: 4.1%
Dependent repos count: 5.1%
Average: 8.7%
Downloads: 10.1%
Dependent packages count: 20.7%
Maintainers (1)
Last synced: 6 months ago

Dependencies

Data_science/Mathematica/images/ggFunctions/DESCRIPTION cran
  • R >= 3.1.0 depends
  • ggplot2 * depends
  • scales * depends
Data_science/Mathematica/data/Student's T-test/ttest-js/package.json npm
  • eslint ^6.6.0 development
  • tap ^6.3.0 development
  • distributions ^1.0.0
  • summary 0.3.x
Data/test/packages.config nuget
  • System.ValueTuple 4.0.0-rc3-24212-01
Data_science/MachineLearning/MachineLearning/QLearning/Maze-Q-Learning/packages.config nuget
  • System.ValueTuple 4.4.0
Data_science/Mathematica/Math/test/packages.config nuget
  • System.ValueTuple 4.4.0-preview1-25305-02
Data_science/Visualization/test/ChartingBase.Test/packages.config nuget
  • System.ValueTuple 4.3.0
Data_science/algorithms/CMeans/DEMO/packages.config nuget
  • System.ValueTuple 4.3.0
docs/guides/parameter_expression/Demo/packages.config nuget
  • System.ValueTuple 4.3.0
Data_science/Mathematica/CUDA/sciKernel/Cargo.toml cargo
Data_science/algorithms/Louvain/facebook_combined_graph/meta.json cpan
Data_science/algorithms/Louvain/testdata_graph/meta.json cpan
Data_science/algorithms/UnweightedFastUnfolding/meta.json cpan